Sebastien Cesbron:

> J'ai utilis� le principe de la classe MessageFormat de Struts pour g�rer 
>l'internationalisation via des fichiers de properties toto_fr.properties, 
>toto_en.properties, ...


Elle est differente de la classe standard java.text.MessageFormat ?


> C'est donc je pense la mani�re classique de g�rer l'internationalisation en java 
>(dites le moi si je me trompe).


MessageFormat + ResourceBundle.


> Le probl�me maintenant c'est que j'ai un ensemble de fichiers qui vont devoir rester 
>coh�rents entre eux.


Autant que possible ;-).

> Mon id�e serait de maintenir le fichier fran�ais en m�me temps que je code et de 
>faire ensuite �voluer les autres � partir de ce fichier en fran�ais (ce n'est pas moi 
>qui g�re les traductions).


C'est ce que je fais aussi. A la difference que mes clefs sont les 
messages en francais. Je n'ai donc pas de fichier pour le francais.

> Je voulais savoir si vous connaissiez des �diteurs qui permettent de g�rer un 
>ensemble de fichiers � traduire (du style Multilizer pour ceux qui connaissent).


Non.


> Sinon avez vous d�j� solutionn� ce genre de probl�me ?


Oui.

> et si oui comment ?


Je compare mes deux fichiers de proprietes. Je regarde celles qui 
manquent dans l'un ou l'autre et j'envoie le tout au traducteur.
Ca marche tant qu'on reste dans le bon encoding.

D'ailleurs j'en profite: je recherche pour Alma et JDistro des 
traducteurs (benevoles) pour l'espagnol, l'italien et le portugais 
(voire d'autres langues).

Guillaume

----

import java.io.*;
import java.util.*;

public class Mixe
{
   public static void main(String[] _args)
   {
     try
     {
       String dr=_args[0];
       String lx=_args[1];

       Properties en=new Properties();
       Properties px=new Properties();

       en.load(new FileInputStream
          ("../sources/com/memoire/"+dr+"/"+dr+"_en.txt"));
       px.load(new FileInputStream
          ("../sources/com/memoire/"+dr+"/"+dr+"_"+lx+".txt"));

       System.out.println("---------------------------------");
       System.out.println("Mixe "+dr+" "+lx);
       System.out.println(System.getProperty("user.name"));
       System.out.println(new Date());
       System.out.println("---------------------------------");

       Enumeration e;

       System.out.println();
       System.out.println("[MISSING TRANSLATIONS]");
       e=en.keys();
       while(e.hasMoreElements())
       {
         String k=(String)e.nextElement();
        if(px.get(k)==null)
         {
          System.out.println(k+"="+en.get(k));
         }
       }

       System.out.println();
       System.out.println("[SUPERFLOUS TRANSLATIONS]");
       e=px.keys();
       while(e.hasMoreElements())
       {
         String k=(String)e.nextElement();
        if(en.get(k)==null)
         {
          System.out.println(k+"="+px.get(k));
         }
       }

       System.out.println();
       System.out.println();
     }
     catch(Throwable th)        { System.err.println(th); }
   }
}

Répondre à