31 votes

Traduction en JavaScript comme gettext en PHP ?

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.

2voto

dsas Points 879

Il existe un script perl script appelé po2json qui permet de générer du json à partir d'un fichier .po.

1voto

S Vilcans Points 313

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.

1voto

tnga Points 172

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") ) ;

0voto

Daniel Kossmann Points 31

WordPress dispose d'une solution intéressante pour cela, utilisant PHP et JS : http://codex.wordpress.org/I18n_for_WordPress_Developers#Handling_JavaScript_files

0voto

abumalick Points 416

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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X