Bonjour à tous, je débute la programmation en java et la programmation en général. J'ai cherché comment mettre un programme tout simple en java et il se pose devant déjà quelques soucis. Sur le site du laboratoire de sun de supinfo j'ai trouvé un morceau de code pour avoir plusieurs langues. J'ai essayer ce code sur mon eclipse et ça ne marche pas.Voila le message d'erreur:


Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name language, locale fr_FR
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at LanguageChooser.<init>(LanguageChooser.java:20)
at MyFrame.<init>(MyFrame.java:24)
at MyFrame.main(MyFrame.java:14)


et voila le code:
Language_fr_FR.properties :

Language_fr_FR.properties :
menuLanguage=Langue
labelHello=Bonjour le Monde!

Language_en_US.properties

Language_en_US.properties :
menuLanguage=Language
labelHello=Hello World!
LanguageChooser.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;
import java.util.ResourceBundle;
 
public class LanguageChooser implements ActionListener {
 
// Nom du fichier properties (sans les codes ISO)
private static final String LANGUAGE_FILE = "language";
 
private static ResourceBundle resourceBundle;
 
// La fenetre
private MyFrame frame;
 
public LanguageChooser(MyFrame aFrame) {
frame = aFrame;
resourceBundle = ResourceBundle.getBundle(LANGUAGE_FILE, Locale
.getDefault());
}
 
// Methode appelee lorsqu’on selectionne un menu
public void 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
else if (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
*/
public static String getAnInternationalizeString(String key) {
// On retourne la valeur associee a la cle
return resourceBundle.getString(key);
}
 
 
}
 
MyFrame.java :
 
import javax.swing.*;
 
public class MyFrame extends JFrame {
// Déclaration des différents composants
private JLabel labelHello;
private JMenuBar menuBar;
private JMenu menuLanguage;
private JMenuItem menuFr;
private JMenuItem menuEn;
private LanguageChooser languageChooser;
 
// Point d’entrée de l’application
public static void 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
*/
protected void paintLabelWithLanguage() {
menuLanguage.setText(LanguageChooser
.getAnInternationalizeString("menuLanguage"));
labelHello.setText(LanguageChooser
.getAnInternationalizeString("labelHello"));
}
}
Voila si quelqu'un pouvait aider un pauvre noob je lui en serais très reconnaissant. Bonne journée à tous