On peut utiliser la solution bourine du "tableau de traduction" :
var tabLangue = new Array;
tabLangue["pres_error"] = "Le formulaire n'est pas correctement rempli";
tabLangue["pres_duree"] = "La durée doit être une valeur numérique";
Mais dès qu'il faut intercaler des variables dans les traductions ça devient un enfer!.
J'ai finalement pris mon courage à deux mains et ai pondu une petite classe basée sur [prototype|http://www.prototypejs.org|en] (1.6) qui permet justement d'intégrer très facilement des variables dans les chaines à traduire. Ceux qui ont déjà utilisé gettext ne devrait pas être dépaysé :
var i18n = new I18n();
i18n.load(lang_fr);// On charge l objet de traduction
alert(i18n._('confirm',12)); // clé + argument pour remplacer les %x
alert(i18n._('players','Jean','50')) ;
Les objets de traduction se présentent sous cette forme :
var = lang_fr{
'confirm' : 'Voulez vous supprimer %0 utilisateurs',
'players' : 'Le player de %0 lui à couté %1 euros',
}
Si la classe vous intéresse vous pourrez trouver la source ici : Internationalisation
Aucun commentaire:
Enregistrer un commentaire