La fonction `gettext` est conçu pour permettre la traduction de l'ensemble du système GNU / Linux. C'est précisément pour cette raison, il est 100% compatible avec un grand nombre de langages de programmation et des langages de script: C, C + +, C #, Bash, Python, GNU clsip, Emacs Lisp, GNU Smalltalk, Java, GNU awk, Pascal, wxWidgets, YCp , Tcl, PHP, Pike, et d'autres.

D'abord nous allons voir comment utiliser `gettext` dans le code source. Les modalités d'application varient en fonction du langage de programmation utilisé pour votre projet, mais la syntaxe est presque toujours la même, du moins pour les langages de programmation populaires: la fonction contient simplement la chaîne de message à traduire. Il convient de noter que presque toujours utilise la forme courte, ce qui correspond simplement à un trait de soulignement. De cette façon, le code suivant dans C:

printf(gettext("My name is %s\n"), mio_nome);

devient:

printf(_("My name is %s\n"), mio_nome);

Plus tard, la commande sera xgettext filtrer le code pour trouver le gettext fonction venez d'insérer, pour créer le fichier de modèle. Pot sur la base des chaînes extraites de la source. . Un exemple d'un pot de fichier pour un code contenant les lignes ci-dessus est la suivante:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr ""

Pour commencer la traduction est utilisée dans le programme `` msginit. Déplacement du fichier. Petite `et` msginit est possible de générer un nouveau fichier contenant le squelette de la nouvelle. Bit dans la langue cible. Par exemple, pour traduire le fichier en italien en_EN.po il suffit d'exécuter la commande suivante:

locale = fr_FR-msginit-entrée = en_EN.po

Le programme permettra de créer le fichier, it_IT.po dont le contenu sera similaire à ce qui suit:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "My name is %s\n"

À ce stade, le traducteur n'a pas à faire est de traduire la chaîne à la suite de la msgstr. La traduction peut être fait avec n'importe quel éditeur de directement à partir de la ligne de commande, ou en utilisant des programmes spécifiques comme poEdit . Le résultat ressemblera à ce qui suit:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "Mi chiamo %s\n"

. Une fois les fichiers de traduction Po doivent être compilées dans le fichier binaire Mo par l'intermédiaire du msgfmt `.:

msgfmt it_IT.po

Partagez ce contenu:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter