Article complet: Utiliser des fichiers UTF-8 pour l'internationalisation

25/10/2009

Permalink 23:42:15, Catégories: Java, Récapitulatif, Spring, Spring, 324 mots   French (FR) , Baptiste Wicht

[Java][Spring] Utiliser des fichiers UTF-8 pour l'internationalisation

Comme vous le savez peut-être l'internationalisation à base de ResourceBundle ne supporte que des fichiers .properties encodé en ISO-8859-1, il faut donc encoder les caractères spéciaux sous la forme \uxxx ce qui n'est pas très lisible lorsque vous utilisez des languages comme l'arabe ou le chinois. De plus, si vous voulez ou devez utiliser des fichiers .properties encodés en UTF-8 vous êtes bloqués dès que vous devez utiliser des caractères spéciaux.

Une première solution est de passer par des fichiers XML en spécifiant l'encodage UTF-8.

Néanmoins, Spring propose une solution avec la classe ReloadableResourceBundleMessageSource. En effet, avec cette classe on peut spécifier l'encodage utilisé pour les fichiers directement dans le mesageSource. En plus de cela, cette classe suppporte également le rechargement des fichiers properties soit à intervalle régulier soit en utilisant la méthode clearCache().

Il faut faire attention en passant à cette classe que les liens vers le(s) basename(s) se fait en utilisant des ressources Spring, donc en suivant la nomenclature de ces dernières.

Voici un exemple d'utilisation avec Spring :

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
   <property name="basenames"> 
      <list> 
        <value>classpath:org/project/i18n/messages</value> 
        <value>classpath:org/project/i18n/errors</value> 
     </list> 
   </property> 
   <property name="cacheSeconds" value="-1" /> 
   <property name="fileEncodings" value="UTF-8" /> 
   <property name="defaultEncoding" value="UTF-8" /> 
</bean>

Mettre cacheSeconds à -1 permet d'indiquer de ne pas chercher à recharger les fichiers .properties.

Social Bookmarking:

                                     

Commentaires:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0
Commentaire de: hugo123 [Membre]
Ah tiens j'ai eu à me cogner ce genre de problématique il y a pas longtemps pour un portage en chinois. De notre côté on est resté sur des fichiers ascii classiques avec de l'encodage unicode géré par un éditeur. D'ailleurs j'ai détaillé ici : http://hakanai.free.fr/index.php/the-news/47-resourcebundle-chinois
Permalien 27/10/2009 @ 18:56
Commentaire de: Baptiste Wicht [Membre] · http://baptiste-wicht.developpez.com
Effectivement, c'est une solution aussi :)

Par contre, le désavantage, c'est que le fichier n'est pas de plus lisibles avec tout ces échappements. Alors que mes fichiers sont parfaitement lisibles sans aucun échappement.
Permalien 27/10/2009 @ 19:43

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Blog de Baptiste Wicht

Blog de Baptiste Wicht

Avec ce blog, je vais vous tenir au courant de l'avancée de mes différents projets et de mes nouveaux tutoriels. Je vais aussi essayer de publier des news sur l'informatique en général et sur Java.

My English website
Site en français

Rechercher

<  Novembre 2011  >
Lun Mar Mer Jeu Ven Sam Dim
  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        

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web