cs_anisj1m
Messages postés92Date d'inscriptionjeudi 3 août 2006StatutMembreDernière intervention22 janvier 2009
-
17 oct. 2007 à 10:09
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
17 oct. 2007 à 20:40
bonjour;
je vient de debuter avec les Ressource Bundles; bon j'ai trouver un
exemplpe dans le site labo-sun; j'ai suivi toutes les etapes mais a la
fin j'ai eu des erreurs:
mon projet contient ces fichiers:
une frame simple:
<!-- BEGIN TEMPLATE: bbcode_code -->
// Point d’entrée de l’application
publicstaticvoid main(String[] args){
MyFrame fenetre = new MyFrame();
}
public MyFrame(){
// Initialisation standard
super("Application Internationale");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Création du LanguageChooser
languageChooser = new LanguageChooser(this);
// Création du label
labelHello = new JLabel();
getContentPane().add(labelHello);
// Création de la barre de menu
menuBar = new JMenuBar();
menuLanguage = new JMenu();
menuFr = new JMenuItem("Francais");
menuFr.setActionCommand("menuFr");
menuFr.addActionListener(languageChooser);
menuLanguage.add(menuFr);
menuEn = new JMenuItem("English");
menuEn.setActionCommand("menuEn");
menuEn.addActionListener(languageChooser);
menuLanguage.add(menuEn);
menuBar.add(menuLanguage);
setJMenuBar(menuBar);
// On initailise les valeurs des labels, menus
paintLabelWithLanguage();
// On affiche la fenêtre
setVisible(true);
}
/*
* Méthode qui initialise le texte des différents labels et menus en
* fonction de la langue
*/
protectedvoid paintLabelWithLanguage(){
menuLanguage.setText(LanguageChooser
.getAnInternationalizeString("menuLanguage"));
labelHello.setText(LanguageChooser
.getAnInternationalizeString("labelHello"));
}
}
<!-- END TEMPLATE: bbcode_code -->la classe LanguageChooser
<!-- BEGIN TEMPLATE: bbcode_code -->
// Methode appelee lorsqu’on selectionne un menu
publicvoid actionPerformed(ActionEvent arg0){
// On a selectionne le menu anglais
if(arg0.getActionCommand().equals("menuEn")){
// On choisi le fichier anglais
resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale.US);
}
// Sinon on choisi le francais
elseif(arg0.getActionCommand().equals("menuFr")){
// On choisi le francais
resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale.FRANCE);
}
//On modifie les labels avec la nouvelle langue
frame.paintLabelWithLanguage();
}
/*
* Methode statique qui permet de recuperer un String du fichier de langue
* en fonction de la cle passee en parametre
*/
publicstatic String getAnInternationalizeString(String key){
// On retourne la valeur associee a la cle
return resourceBundle.getString(key);
}
}
<!-- END TEMPLATE: bbcode_code -->et les proprietes:
Language_fr_FR.properties
<!-- BEGIN TEMPLATE: bbcode_code -->
<!-- END TEMPLATE: bbcode_code -->et enfin la fameuse erreur:
<!-- BEGIN TEMPLATE: bbcode_code -->
Code :
<!--[if !IE]><--><!----><!--[endif]--><!--[if IE]>
<![endif]-->
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name language, locale fr_FR
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:837)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:806)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:577)
at p.LanguageChooser.(LanguageChooser.java:20)
at p.MyFrame.(MyFrame.java:26)
at p.MyFrame.main(MyFrame.java:16)
KenZara
Messages postés112Date d'inscriptionvendredi 24 décembre 2004StatutMembreDernière intervention20 décembre 2011 17 oct. 2007 à 10:47
Bonjour,
Tu nous as pas donné plus de détail sur tes .properties. Sont-ils à la racine ou ds un répertoire différent de celui de tes classes.
L'idéal pour que ton code fonctionne est de placer tes .class et .properties comme suit:
A noter que tes properties contiennent ce que tu veux afficher, en parcourant ton code, il me semble qu'il s'agit de "MenuLanguage" et "LabelHelllo", donc dans la version francaise tu auras: "MenuLangage" et "LabelSalut" par exemple.
Tu auras donc:
MenuLanguage = Menu Langage /* Ton texte francais*/
LabelHello = Salut /* Ton texte francais*/
Je pense que c'est dans ce sens là.
Vérifie bien que tes .properties sont bel et bien dans le répertoire ou se trouve tes .class
KenZara
Messages postés112Date d'inscriptionvendredi 24 décembre 2004StatutMembreDernière intervention20 décembre 2011 17 oct. 2007 à 12:20
Bonjour,
Euh, ce que je t'ai filé ça a marché? Et puis :( on ne dit pas "je veux" s'il te plait, limite tu nous demandes de faire le travail à ta place, ce qui n'est pas admis ici.
Sinon, d'un autre point de vue, je pense que t'es venu avec un problème au départ, donc la moindre des choses c'est de dire si la solution a été la bonne ou pas. Et si tu as un autre problème ca serait mieux que tu l'exposes en étant hyper précis.