J'utilise gettext
dans mon code PHP, mais j'ai un gros problème. Tous mes fichiers JavaScript ne sont pas affectés par la traduction, est-ce que quelqu'un peut me dire un moyen facile d'obtenir les traductions dans la langue choisie dans JavaScript aussi.
Réponses
Trop de publicités?Celui que j'utilise est http://jsgettext.berlios.de/ (en miroir sur http://sourceforge.net/projects/jsgettext.berlios/ ) et cela semble faire l'affaire. Mais alors j'utilise une combinaison de GWT et JavaScript.
Pour l'implémentation JavaScript de l'API GNU gettext, ces liens peuvent également être utiles :
http://tnga.github.io/lib.ijs
http://tnga.github.io/lib.ijs/docs/iJS.Gettext.html
//set the locale in which the messages will be translated
iJS.i18n.setlocale("fr_FR.utf8") ;
//add domain where to find messages data. can also be in .json or .mo
iJS.i18n.bindtextdomain("domain_po", "./path_to_locale", "po") ;
//Always do this after a `setlocale` or a `bindtextdomain` call.
iJS.i18n.try_load_lang() ; //will load and parse messages data from the setting catalog.
//now print your messages
alert( iJS.i18n.gettext("messages to be translated") ) ;
//or use the common way to print your messages
alert( iJS._("another way to get translated messages") ) ;
WordPress dispose d'une solution intéressante pour cela, utilisant PHP et JS : http://codex.wordpress.org/I18n_for_WordPress_Developers#Handling_JavaScript_files
Cette bibliothèque semble être la meilleure implémentation de getText en javascript :
http://messageformat.github.io/Jed/
https://github.com/messageformat/Jed
exemple de la documentation :
<script src="jed.js"></script>
<script>
var i18n = new Jed({
// Generally output by a .po file conversion
locale_data : {
"messages" : {
"" : {
"domain" : "messages",
"lang" : "en",
"plural_forms" : "nplurals=2; plural=(n != 1);"
},
"some key" : [ "some value"]
}
},
"domain" : "messages"
});
alert( i18n.gettext( "some key" ) ); // alerts "some value"
</script>
- Réponses précédentes
- Plus de réponses