Les ResourceBundle et l'Arabe
Bonjour,
J'utilise les ResourceBundle avec succés. En effet, les menus et messages sont affichés en français ou en anglais selon le locale par défault de l'ordinateur. J'ai décidé d'ajouter une langue: l'Arabe. J'ai donc ajouté un fichier MyApp_ar.properties. Voilà le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
try {
resources = ResourceBundle.getBundle("resources.MyApp",new Locale("ar"));
} catch (MissingResourceException mre)
{System.exit(1);}
try {
InputStream in = new ByteArrayInputStream(resources.getString("fileLabel").getBytes("UTF-8" ) );
InputStreamReader chaine = new InputStreamReader(in, "UTF-8" );
BufferedReader br = new BufferedReader ( chaine ) ;
char b[]=new char[100];
chaine.read(b,0,30);
String s=String.valueOf(b);
} catch (Exception mre) {} |
Le string s est ensuite affiché sur un JLabel. Le problème est que ce qui est affiché ne ressemble à rien et n'est sûrement pas ce qui est écrit dans le fichier de propriété. Je suis passé sous debugger (sous Eclipse) et j'ai inspecté le contenu de la variable s avec de l'afficher sur le JLabel, même résultat.
J'ai changé mon code en remplaçant la ligne :
Code:
1 2
|
InputStream in = new ByteArrayInputStream(resources.getString("fileLabel").getBytes("UTF-8" ) ); |
par la ligne :
Code:
1 2
|
InputStream in = new ByteArrayInputStream(******.getBytes("UTF-8" ) ); |
La variable s contient cette fois-ci la bonne chaine en arabe sous le debugger et lorsqu'elle est affichée sur JLabel.
Est ce possible que les resourcesBundle puissent choisir le bon fichier propriètés mais ne sait pas le lire en unicode ? J'ai du mal à le croire, il y a peut être quelque chose que je n'ai pas compris.
Merci d'avance.