Application multilingue
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai réalisé une application avec NetBeans que je traduis maintenant en plusieurs langues. Je voudrais que l'application s'initialise avec la langue courante du système. Alors petit aperçu de comment je procède.
Lors de l'initialisation :
J'ai par exemple deux fichiers "Language", l'un "Language.properties" contient la langue par défaut (français dans mon cas), l'autre "Language_it.properties" contient la traduction en italien.
Si avant d'appeler ce code je fais :
C'est bon, le programme s'initialise donc en italien.
De même si je lance le programme avec :
java -Duser.language=it -jar app.jar
L'interface se traduit bien en italien.
Maintenant je veux tester ce qu'il va choisir par défaut. Donc, je ne spécifie aucune locale, rien, je joue avec les paramètres de Windows. Donc je vais dans les options régionales, je change le format en Italien (Italie), je règle même la langue pour les programmes non unicode etc, et la valeur retournée est toujours fr_FR ou fr_BE (j'ai un PC Windows 8.1 en Belgique). Comment faire pour tester correctement? Il ne prend que la langue de Windows? Je voudrais être sûr que sur un PC en italien, l'application s'initialise bien dans la bonne langue sans que l'utilisateur doive intervenir.
Si quelqu'un a quelque chose à ajouter, ça pourrait m'éclairer.
J'ai réalisé une application avec NetBeans que je traduis maintenant en plusieurs langues. Je voudrais que l'application s'initialise avec la langue courante du système. Alors petit aperçu de comment je procède.
Lors de l'initialisation :
System.out.println(Locale.getDefault().toString());
language = ResourceBundle.getBundle("i18n.Language");
translateUserInterface();
J'ai par exemple deux fichiers "Language", l'un "Language.properties" contient la langue par défaut (français dans mon cas), l'autre "Language_it.properties" contient la traduction en italien.
Si avant d'appeler ce code je fais :
Locale.setDefault(Locale.forLanguageTag("it"));
C'est bon, le programme s'initialise donc en italien.
De même si je lance le programme avec :
java -Duser.language=it -jar app.jar
L'interface se traduit bien en italien.
Maintenant je veux tester ce qu'il va choisir par défaut. Donc, je ne spécifie aucune locale, rien, je joue avec les paramètres de Windows. Donc je vais dans les options régionales, je change le format en Italien (Italie), je règle même la langue pour les programmes non unicode etc, et la valeur retournée est toujours fr_FR ou fr_BE (j'ai un PC Windows 8.1 en Belgique). Comment faire pour tester correctement? Il ne prend que la langue de Windows? Je voudrais être sûr que sur un PC en italien, l'application s'initialise bien dans la bonne langue sans que l'utilisateur doive intervenir.
Si quelqu'un a quelque chose à ajouter, ça pourrait m'éclairer.
A voir également:
- Application multilingue
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Desinstaller application windows - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Windows application démarrage - Guide
- Miroir application - Guide
Bon, j'ai bien quelques contacts en Italie, je pourrais demander de tester mais bon je voulais quand même m'assurer sur ma machine.
Le seul "piège" à éviter c'est de ne pas considérer "it" mais "it_IT", or vu tes tests ça a l'air de fonctionner avec "fr_Fr" et "fr_BE" qui prennent bien "fr" donc il ne devrait pas y avoir de problème.
En effet, si je passe en ligne de commande java -Duser.language=it
il affiche alors :
it_BE
Et il prend quand même le fichier _it
J'ai aussi une solution plus radicale, le faire en Klingon et donner un dictionnaire.