[Java] la localisation des messages.

la localisation des messages. [Java] - Programmation

Marsh Posté le 08-03-2002 à 09:43:25    

salut,
 
je suis en train de faire une appli qui devra tourner sur des postes en anglais, français (France, Belgique, Suisse) et allemand. -> je prépare des fichiers properties pour les messages.
 
j'ai cependant quelques soucis...
 
j'utilise un ResourceBundle pour qu'il sélectionne le bon fichier de ressource. j'ai msg.properties pour l'anglais. et msg_fr.properties.
 
je fais un msg = ResourceBundle.getBundle("msg" ); où msg est un ResourceBundle.
 
pour spécifier la langue le tutoriel parle de:
   java ... -Duser.language=fr GnapGnap
pour choisir la langue... et beh ça marche pô. (il est aussi noté dans ce tutoriel que cette façon de faire est dépendante de l'implémentation de la JVM)
 
comment puis-je faire pour trouver de manière automatique la "langue" par défaut de la plateforme ?  
(j'ai regardé dans java.util.Locale et dans java.lang.System mais je n'ai pas trouvé de méthode permettant de connaître cela)
 
(je suis sous Linux mais ça doit être du Linux/Windows JVM compatible ;) )
 
merci de m'éclairer !


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 08-03-2002 à 09:43:25   

Reply

Marsh Posté le 08-03-2002 à 09:54:02    

pas possible je crois
 
tu es obligé de le passe en paramètre via -D
 
ou de le demander à l'utilisateur la première fois qu'il lance ton prog.
 
Lorqu'il a choisi tu peux crée un fichier dans son répertoire home (System.getProperty("user.home" )).
 
Lorsque tu démarres ton prog tu regardes si le fichier existe et contient la langue. Si oui tu demandes rien, sinon tu demandes et tu crées le fichier.
 
Clair?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 08-03-2002 à 10:07:49    

Clair ? oui ;)
 
je voulais justement éviter cela :)
bah! j'vais mettre une property en dur alors.
(je dois justement faire une GUI pour qques properties, ça sera dedans)
 
merci !


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 08-03-2002 à 10:20:39    

bin ce que je te propose passe par un fichier de properties. Pour que ce soit plus propre, mets le dans le home directory comme ca chaque user a ses propres préférences.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 08-03-2002 à 10:31:35    

Sinon, pour tes fichiers de properties localisés, il me semble judicieux de faire plutôt des fichiers  
 
toto_<lang>_<COUNTRY>.properties (ex : toto_fr_FR.properties)
 
et de faire un lien de toto.properties vers le fichier de ta langue par défaut : si tu dois changer de langue par défaut, tu sera moins emmerdé!

Reply

Marsh Posté le 08-03-2002 à 11:05:44    

DarkLord> ce ne sera pas utile paske ce n'est qu'un seul user qui a la main dessus. (serveur de publication)  
 
c'est pour formater la langue une seule fois (edit: des messages d'erreurs). donc property. mais j'ai réussi à faire passer un paramètre via -Duser.language. en fait, je prends en main Ze affaire et réalise la sélection.  
 
gfive> exactement, j'en suis là pour l'instant. j'ai ajouté le code 'country'.  
 
comment puis-je faire un lien ? un lien UNIXment parlant ? (paske ça doit tourner aussi sous Windows (-> simple copie de fichier alors ?)  
 
je compte faire ceci: 2 params -Dbidule.lang -Dbidule.country si non spécifié(s), j'utilise msg.properties (anglais), country = UK.  
 
c'est OK ?

 

[jfdsdjhfuetppo]--Message édité par TBone--[/jfdsdjhfuetppo]


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 08-03-2002 à 11:10:07    

Pour le lien, sous Unix, tu te met dans le répertoire de tes fichiers properties, et tu tapes la commande :
 
ln -s toto_<lang>_<COUNTRY>.properties toto.properties
 
Sous Windows, évidement, t emmerdé! :D

Reply

Marsh Posté le 08-03-2002 à 11:24:24    

c'est bien ce que je pensais :D;)


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 08-03-2002 à 15:23:12    

je suis une brele :gun:
 
System.out.println("Host locale: " + Locale.getDefault().toString());


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 08-03-2002 à 15:24:33    

pour etre complet:  
 
javadoc:  
public static Locale getDefault()  
[...]  
Note that the initial setting will match the host system.  
 
j'sais pas lire ou quoi ? (j'suis passé dessus avant de poster)  :gun:

 

[jfdsdjhfuetppo]--Message édité par TBone--[/jfdsdjhfuetppo]


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 08-03-2002 à 15:24:33   

Reply

Marsh Posté le 08-03-2002 à 15:38:37    

nous aussi parce qu'on a pas pu t'aider ... Enfin moi perso j'ai jamais été confronté à ce genre de problèmes.


---------------
Just because you feel good does not make you right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed