GNU gettext

GNU gettext
gettext
Official gnu.svg
Développeur Projet GNU
Dernière version 0.18.1 (4 juin 2010[1]) [+/−]
Environnement Multiplate-forme
Type Bibliothèque logicielle
Licence GNU GPL
Site web (en) Site officiel

gettext est la bibliothèque logicielle du projet GNU qui sert à l'internationalisation de logiciels (i18n). Elle est couramment utilisée pour écrire des programmes multilingues.

Sommaire

Processus

Programmeur

Le code source est d'abord modifié pour utiliser les appels à la fonction GNU gettext. Pour la plupart des langages, ceci se fait en insérant les chaînes destinées à l'utilisateur dans la fonction gettext. Pour gagner du temps de saisie et clarifier le code, l'alias de substitution _ est habituellement utilisé pour cette fonction de sorte que le code C :

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

devienne

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

gettext utilise alors la chaîne fournie comme clef de recherche de traductions et renvoie la chaîne d'origine si aucune traduction n'est disponible, à la différence de systèmes comme catgets ou de l'utilisation de Loadstring sous Microsoft Windows, où une identité de programmation est utilisée (souvent un entier).

Outre le C, la fonction GNU gettext est implémentée en : C++, Objective C, SH script, bash script, Python, Objective Caml, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Ruby, Java, GNU awk, Pascal, wxWidgets (par wxLocale), YCP (langage de YaST2), Tcl, Perl, PHP, Pike, et R. Dans la plupart des cas, son utilisation s'y apparente à celle du C.

xgettext est appliquée aux sources pour produire un fichier .pot, ou modèle, qui contient une liste de toutes les chaînes traduisibles extraites du code. Pour l'exemple ci-dessus, une entrée du fichier .pot ressemblerait à ceci :

#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""

Commentaires pour les traducteurs

Si le développeur désire donner au traducteur une indication pour une chaîne spécifique, il peut le faire dans le code source à l'aide d'une étiquette (TAG) destinée à xgettext, pour lui permettre de filtrer ces indications et de les mettre dans le fichier .pot. Ces indications seront montrées par KBabel et PoEdit.

 printf(_("My name is %s.\n"), my_name);
 // TRANSLATORS: Please let %s as it is, because it is exchanged by the program.
 // Thank you for contributing to this project.

Dans cet exemple, l'étiquette est // et doit être fournie à xgettext pour lui permettre d'extraire les commentaires pour les traducteurs lors de la construction du fichier .pot. D'autres caractères peuvent être utilisés comme étiquette du moment qu'ils sont utilisés de manière cohérente dans tout le code.

xgettext -c=//

Avec les commentaires, le fichier .pot ressemblerait à ceci :

#. TRANSLATORS: Please let %s as it is, because it is exchanged by the program.
#. Thank you for contributing to this project. 
#: src/name.c:36
msgid "My name is %s.\n"
msgstr ""

Traducteur

Le traducteur dérive un fichier .po du modèle en utilisant le programme msginit puis remplit les traductions. msginit initialise les traductions de sorte que pour créer une traduction en français, par exemple, il faut exécuter :

msginit --locale=fr --input=name.pot

Ceci engendre fr.po. Un exemple d'entrée serait :

#: src/name.c:36
msgid "My name is %s.\n"
msgstr "My name is %s.\n"

Le traducteur doit les corriger, à la main ou à l'aide d'un outil de traduction comme PoEdit. Ceci fait, l'entrée prendrait la forme suivante :

#: src/name.c:36
msgid "My name is %s.\n"
msgstr "Je m'appelle %s.\n"

Finalement, les fichiers .po sont compilés en fichiers binaires .mo avec msgfmt. Ils sont alors prêts à être distribués dans le paquet logiciel.

Utilisateur

L'utilisateur, sur des systèmes de type Unix, ajuste la variable d'environnement LANG ou, si la langue doit être différente de LANG, LC_MESSAGES et le programme affiche alors les chaînes dans la langue sélectionnée, si un fichier .mo est présent et si les locales de la langue en question sont installées.

Notes et références

  1. (en) GNU gettext 0.18.1 réalisé le 4 juin 2010.

Voir aussi

Liens externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article GNU gettext de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • GNU gettext — Entwickler Das GNU gettext Team (Maintainer: Bruno Haible) Aktuelle Version 0.18.1.1 (6. Juni 2010) Betriebssystem Unix artige Betriebssysteme, Windows (s. Weblinks) Kategorie …   Deutsch Wikipedia

  • GNU gettext — Infobox Software name = gettext developer = The GNU Project latest release version = 0.17 latest release date = November 11, 2007 operating system = Cross Platform genre = Development, Translation license = LGPL (library), GPL (tools), GFDL/GPL… …   Wikipedia

  • GNU gettext — …   Википедия

  • gettext — Developer(s) Various Stable release 0.18 (GNU gettext) / May 9, 2010 (GNU gettext) Operating system Cross platform Type Internationalization and localization …   Wikipedia

  • Gettext — GNU gettext Entwickler: Das GNU gettext Team (Maintainer: Bruno Haible) Aktuelle Version: 0.17 (27. November 2006) Betriebssystem: Unix artige Betriebssysteme, Windows (s. Weblinks) …   Deutsch Wikipedia

  • gettext — GNU gettext Тип локализация программного обеспечения Автор Ульрих Дреппер Разработчики сообщество Написана на C Интерфейс командная строка Операционная система Linux и др …   Википедия

  • Gettext — est la bibliothèque GNU d internationalisation (i18n). Elle est couramment utilisée pour écrire des programmes multilingues. Sommaire 1 Processus 1.1 Programmeur 1.1.1 Commentaires pour les traducteurs …   Wikipédia en Français

  • Gettext — es la biblioteca GNU de internacionalización (i18n). Comúnmente se usa para escribir programas con interfaz en varios idiomas. La última versión es la 0.18. Contenido 1 Flujo de trabajo 1.1 Programador 1.2 Traductor 1.3 …   Wikipedia Español

  • GNU build system — GNU logo The GNU build system, also known as the Autotools, is a suite of programming tools designed to assist in making source code packages portable to many Unix like systems. It can be difficult to make a software program portable: the C… …   Wikipedia

  • GNU Smalltalk — Développeur Projet GNU Dernière version stable …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”