Internationalisation

cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010 - 10 juin 2005 à 10:14
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010 - 13 juin 2005 à 14:41
Bonjour,

Pour internationaliser mon application, j'ai des fichiers ApplicationResources.properties dans plusieurs langues.
Dans mon code, je fais :

Locale locale = Locale.getDefault();
ResourceBundle res = ResourceBundle.getBundle
("ApplicationResources", locale);

Lors de l'execution, j'obtiens une erreur du type :
java.util.MissingResourceException: Can't find bundle for base name ApplicationResources, locale fr

Est-ce un probleme du a l'emplacement de mes fichiers ApplicationResources ? si oui, où dois-je les mettre ??

Merci
Jerome

12 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
10 juin 2005 à 11:03
Salut,
tes fichiers doivent être dans le classpath ...

++
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
10 juin 2005 à 11:07
Le classpath, c'est bien le dossier ou il y a tt met fichiers .class ???
0
cs_gattous Messages postés 100 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2007
10 juin 2005 à 14:06
non, c une variable d'environnement, la jvm peut ne pas prendre compte
des fichiers présents ds le même dossier ke tes .class. Tu peux faire
aussi (pour exécuter): java -cp ".;chemin\vers\lesresources" maclasse.

autre solution : archive ton appli ds un jar qui contient, à part les
.class, les fichiers resources, et le dossier META-INF qui contient le
fichier MANIFEST.mf qui doit contenir la ligne suivante :
Main-class:nom de la classe à exécuter. Aprés tu fais java -jar
"archive.jar". Enfin c'est ce ke je veux pour mes applications pour ne
pas trop m'engourdir avec le classpath.
0
cs_gattous Messages postés 100 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2007
10 juin 2005 à 14:13
je m'excuse pour la grave erreur ke je viens de commettre la dessus, j'ai totalement oublié ke je suis ds la partie jsp-servlets.
Le classpath de ton appli web est le contenu des dossiers WEB-INF\lib
et WEB-INF\classes. Essaie d'abord de mettre tes resourcesbundles
(ApplicationResources.propertie) sous WEB-INF/classes, sinon mets les
comme archive jar ds WEB-INF/lib. ça devra marcher. je m'excuse encore
pour la grave erreur que j'ai commise.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_gattous Messages postés 100 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2007
10 juin 2005 à 14:18
peut etre tu devras avoir un fichier ApplicationResources_fr.properties ??????
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
10 juin 2005 à 14:34
Mes fichiers sont dans WEB-INF/classe et ça na marche pas

et j'ai bien un fichier ApplicationResource_fr.properties

ça fait 2 jours que je suis dessus, ça commence a m'enerver cette histoire d'internationalisation.

En fait j'ai déja réussi a le faire au niveau de l'affichage dans le navigateur, mais le servlet crée en plus un fichier PDF, et c'est dans ce fichier que je veut internationaliser aussi.

C'est possible de faire ça, ou bien je cherche a faire un truc impossible ???
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
10 juin 2005 à 15:38
J'ai essayé de mettre le fichiers dans WEB-INF/lib, WEB-INF/classes, d'ajouter le repertoire où ils se trouvent à mon classpath...........ça ne marche tjrs pas

Je ne sais vraiment plus quoi faire...
0
cs_gattous Messages postés 100 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2007
10 juin 2005 à 17:45
je vois pas pourquoi ce serait impossible. mais dis moi, quel est le
nom exact de la classe de ta servlet ki doit utiliser
l'ApplicationResources?
0
cs_gattous Messages postés 100 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 7 octobre 2007
11 juin 2005 à 16:39
attends, une kestion, ton fichier est "ApplicationResource_fr.properties" ou ApplicationResources_fr.properties"?
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
11 juin 2005 à 16:43
Le fichier est bien ApplicationResources.properties,

c'est bien le même que dans le programme
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
11 juin 2005 à 16:44
La classe de la servlet qui utilise est ApplicationResources
0
cs_grhum59 Messages postés 35 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 18 mai 2010
13 juin 2005 à 14:41
Bonjour, voici le code de ma classe qui utilise (enfin qui est sensée utiliser) mes fichiers ApplicationResources :


public class ApplicationResources {


String REFERENCE=null;


String CDRGP=null;


String LBPRD1=null;


String STRGC=null;




ApplicationResources(){




try{


Locale locale = Locale.getDefault();


String pays = locale.getCountry();


String langue = locale.getLanguage();


System.out.println("pays : "+pays);


System.out.println("langue : "+langue);


locale = new Locale(pays,"");


ResourceBundle res = ResourceBundle.getBundle ("ApplicationResources", locale);




System.out.println("Et voila, on a la bundle !!");


REFERENCE = (String)res.getObject("index.prompt.reference");


CDRGP = (String)res.getObject("index.CDRGP.mess");


LBPRD1 = (String)res.getObject("index.LBPRD1.mess");


STRGC = (String)res.getObject("index.STRGC.mess");


}


catch(Exception e){


REFERENCE = "Mega erreur";


}


}


}

Mes fichiers resources sont appelés :
ApplicationResources.properties
ApplicationResources_fr.properties
ApplicationResources_en.properties
etc........

Si quelqu'un voit le problème, son aide est la bienvenue, merci.
0
Rejoignez-nous