Gettext

De Viquipèdia
Dreceres ràpides: navegació, cerca

gettext és la biblioteca GNU d'internacionalització (i18n). Sovint s'empra per a escriure programes amb interfície en múltiples idiomes. La darrera versió és la 0.18.

Flux de treball[modifica | modifica el codi]

Programador[modifica | modifica el codi]

Primer cal modificar el codi font per poder usar les crides de gettext de GNU. Aquesta modificació consisteix a usar, com a paràmetre de la funció gettext, les cadenes de text que veurà l'usuari. Per estalviar temps d'escriptura i espai, aquesta funció és usualment assignada a _, de manera que en el codi C

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

Es converteix en:

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

A més de C, gettext de GNU té, entre d'altres, les següents implementacions: C++, Objective-C, script sh, script Bash, Python, CLisp GNU, Lisp d'Emacs, Smalltalk GNU, Java, awk GNU, Pascal, wxWidgets (a través de la classe WxLocale), YCP (el llenguatge YaST), Tcl, Perl, PHP, Pike, Ruby i R. L'ús és similar al de C per a molts d'aquests llenguatges.

xgettext s'executa sobre el codi font per produir un arxiu de plantilla .pot, que conté una llista de totes les cadenes de text traduïbles extreta del codi font. Una entrada de l'arxiu .pot ser una cosa com:

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

Traductor[modifica | modifica el codi]

El traductor genera un arxiu .po des de la plantilla amb el programa msginit, i comença a traduir-lo. msginit inicialitza el fitxer amb les traduccions. Per tant, per crear una traducció al català, executaríem el següent:

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

Això generaria el fitxer ca.po. Una entrada senzilla es veuria així:

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

El traductor ha d'editar les entrades, a mà o amb una eina de traducció com poEdit. Quan això estigui fet, l'entrada es veurà així:

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

Finalment, els fitxers .po són compilats en un fitxer binari .mo amb msgfmt. Així, queden enllestits per ser distribuïts amb el paquet de programari.

Usuari[modifica | modifica el codi]

L'usuari, sobre sistemes tipus Unix, estableix la variable d'entorn LANGUAGE, i el programa mostrarà les cadenes en l'idioma seleccionat, si hi ha un arxiu .mo adequat.

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Gettext Modifica l'enllaç a Wikidata