Bonjour,
Je travaille actuellement sur un programme en Java que je cherche à internationaliser en français, anglais et chinois avec un menu permettant de changer de langue à volonté.
Mon problème est que lorsque je lance le jar par moi même, je ne peux changer de langue qu'une seule fois (si j'essaie de rechanger rien ne se passe, ni plantage, ni exception) alors que quand je lance le programme via l'IDE (NetBeans 6.1) je peux changer de langue à volonté sans aucun soucis.
Code :
- private void menuItm_engActionPerformed(java.awt.event.ActionEvent evt) {
- ResourceBundle.clearCache();
- Locale en=new Locale("en_EN" );
- Locale.setDefault(en);
- bundle=ResourceBundle.getBundle("youhua01/Bundle",en);
- updateBundle(en);
- }
- private void menuItm_zhActionPerformed(java.awt.event.ActionEvent evt) {
- ResourceBundle.clearCache();
- Locale zh=new Locale("zh_CN" );
- Locale.setDefault(zh);
- bundle=ResourceBundle.getBundle("youhua01/Bundle", zh);
- updateBundle(zh);
- }
- private void menuItm_fraActionPerformed(java.awt.event.ActionEvent evt) {
- ResourceBundle.clearCache();
- Locale fr= new Locale("fr_FR" );
- Locale.setDefault(fr);
- bundle=ResourceBundle.getBundle("youhua01/Bundle", fr);
- updateBundle(fr);
- }
- private void updateBundle(Locale loc)
- {
- this.setTitle(bundle.getString("MainFrame.title" ));
- this.jTabbedPane1.setTitleAt(0, bundle.getString("MainFrame.tab_sys.text" ));
- this.jTabbedPane1.setTitleAt(1, bundle.getString("MainFrame.tab_opt.text" ));
- this.main_menu.setText(bundle.getString("MainFrame.main_menu.text" ));
- this.menu_lang.setText(bundle.getString("MainFrame.menu_lang.text" ));
- this.menuItm_eng.setText(bundle.getString("MainFrame.menuItm_eng.text" ));
- this.menuItm_zh.setText(bundle.getString("MainFrame.menuItm_zh.text" ));
- this.menuItm_fra.setText(bundle.getString("MainFrame.menuItm_fra.text" ));
- this.menuItm_exit.setText(bundle.getString("MainFrame.menuItm_exit.text" ));
-
- tab_sys.updateBundle(loc);
- tab_opt.updateBundle(loc);
- }
|
J'utilise donc un ResourceBundle associé à trois fichiers Properties (Bundle.properties, Bundle_fr_FR.properties, Bundle_zh_CN.properties).
Voilà, donc si quelqu'un à une idée pour résoudre mon problème..