Tipus | biblioteca informàtica, utilitat i paquet GNU |
---|---|
Versió inicial | 1995 |
Versió estable | |
Llicència | GNU GPL 3.0 o posterior GNU LGPL 2.1 o posterior |
Part de | Projecte GNU |
Característiques tècniques | |
Sistema operatiu | GNU/Linux, BSD, Microsoft Windows, macOS, Unix-like i multiplataforma |
Escrit en | C |
Format de fitxer de lectura | |
Format de fitxer d'escriptura | |
Equip | |
Creador/s | Ulrich Drepper |
Desenvolupador(s) | Projecte GNU |
Més informació | |
Lloc web | gnu.org… (anglès) |
Free Software Directory | Gettext |
Guia d'usuari | Guia d'usuari |
| |
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.
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 ""
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.
L'usuari, sobre sistemes tipus Unix, estableix la variable d'entorn LANG, i el programa mostrarà les cadenes en l'idioma seleccionat, si hi ha un arxiu .mo adequat.