gettext

gettext
gettext
Developer(s) Various
Stable release 0.18 (GNU gettext) / May 9, 2010 (GNU gettext)
Operating system Cross-platform
Type Internationalization and localization
License Various free software licenses (GNU gettext)

In computing, gettext is an internationalization and localization (i18n) system commonly used for writing multilingual programs on Unix-like computer operating systems. The most commonly-used implementation of gettext is GNU gettext, released by the GNU Project in 1995.

Contents

History

gettext was originally written by Sun Microsystems in the early 1990s. The GNU Project released GNU gettext, a free software implementation of the system in 1995.[1]

Operation

Programming

Source code is first modified to use the GNU gettext calls. This is, for most programming languages, done by wrapping strings that the user will see in the gettext function. To save on typing time, and to reduce code clutter, this function is commonly aliased to _, so that the C code:

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

would become:

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

Comments (starting with ///) placed directly before strings thus marked are made available as hints to translators by helper programs.

gettext then uses the supplied strings as keys for looking up alternative translations, and will return the original string when no translation is available. This is in contrast to systems like catgets or the use of LoadString under Microsoft Windows where a programmatic ID (often an integer) is used.

xgettext is run on the sources to produce a .pot file, or template, which contains a list of all the translatable strings extracted from the sources.

For example, an input file with a comment might look like:

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

xgettext is run using the command:

xgettext --add-comments=/

The resultant .pot file looks like this with the comment:

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

Translating

The translator derives a .po file from the template using the msginit program, then fills out the translations. msginit initializes the translations so, for instance, for a French language translation, the command to run would be:

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

This will create fr.po. The translator then edit the resultant file, either by hand or with a translation tool like Poedit, or Emacs with its editing mode for .po files. An edited entry will look like:

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

Finally, the .po files are compiled into binary .mo files with msgfmt. These are now ready for distribution with the software package.

Running

The user, on Unix-type systems, sets the environment variable LC_MESSAGES, and the program will display strings in the selected language, if there is an .mo file for it.

Implementations

In addition to C, GNU gettext has the following implementations: C++, Objective-C, Pascal/Object Pascal, sh script, bash script, Python, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Haskell, wxWidgets (through the wxLocale class), YCP (the YaST2 language), Tcl, Perl, PHP, Pike, Ruby, and R.[citation needed]

See also

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Gettext — Тип библиотека для интернационализации Разработчик Ульрих Дреппер Написана на Си ОС различные Версия …   Википедия

  • 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

  • Gettext — es la libreria GNU de internacionalizacion (i18n). Es comunmente usada para escribir programas multilenguaje. La ultima version es la 0.14 …   Enciclopedia Universal

  • 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 и др …   Википедия

  • GNU gettext — gettext Développeur Projet GNU Dernière version 0.18.1 ( …   Wikipédia en Français

  • 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 — 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 — …   Википедия

Share the article and excerpts

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