Gettext

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
gettext
programari
Logotip
Tipus Entorn de desenvolupament integrat
Desenvolupador Projecte GNU
Última versió 0,21 (27 de juliol de 2020)
Sistema operatiu Multiplataforma
Llenguatge C.
Llicència GNU GPL v3 + i GNU Lesser General Public License, versió 2.1 o posterior
( llicència gratuïta )
Lloc web www.gnu.org/software/gettext/

Les utilitats gettext de GNU són un paquet d’eines dissenyades per permetre la internacionalització (i18n) i la localització del programari o per simplificar la traducció de missatges adreçats a l’usuari en qualsevol idioma desitjat.

Compatibilitat

Havent estat dissenyat per permetre la traducció de tot el sistema operatiu GNU, gettext és compatible amb un gran nombre de llenguatges de programació i scripting: C, C ++, orientat a objectes C, script Bash, Python, clsip GNU, Emacs Lisp, GNU Smalltalk , Java, GNU awk, Pascal, WxWidgets, YCP, Tcl, PHP, Pike i molt més.

Mètode d'ús

Desenvolupador

Flux de treball

Primer heu d’utilitzar la funció GNU gettext dins del codi font. Això passa de manera diferent en funció del llenguatge de programació adoptat per al vostre projecte, però segueix regles comunes per als llenguatges més comunament adoptats. Aquests requereixen que el programador inclogui la cadena del missatge a traduir dins de la funció gettext . Per raons pràctiques, sovint s’utilitza la forma curta _ . Així, el següent codi en C:

 printf ( gettext ( "El meu nom és% s \ n " ), el meu_nom );

es convertiria en:

 printf ( _ ( "El meu nom és% s \ n " ), el meu_nom );

Posteriorment, l'ordre xgettext filtrarà el codi que busca la funció gettext que s'acaba d'inserir, per crear el fitxer de plantilla .pot , basat en les cadenes extretes de les fonts. Un exemple de fitxer .pot per a un codi que conté les línies anteriors seria:

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

Traductor

El traductor obtindrà un fitxer .po del fitxer de plantilla fent ús del programa msginit . Això generarà un fitxer segons la traducció que es realitzarà, que utilitzarà el llenguatge utilitzat pel programador en cas de no traducció. Per exemple, per a una traducció al francès:

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

El programa crearà el fitxer fr.po, amb un contingut similar al següent:

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

En aquest moment, el traductor només haurà de traduir la cadena a la línia de definició, manualment o mitjançant programes especials com poEdit . El resultat serà així:

 #: src / name.c: 36
msgstr "El meu nom és% s \ n"
msgstr "Je m'appelle% s \ n"

Un cop finalitzats, els fitxers .po es compilaran en fitxers .mo binaris mitjançant l'ordre msgfmt , i després estaran preparats per a la seva distribució juntament amb el paquet de programari del desenvolupador.

Usuari

L'usuari només haurà d'executar el programa, ja que utilitzarà la traducció del fitxer .mo corresponent al valor de la variable d'entorn LANGUAGE, normalment predefinida en totes les distribucions de programari lliure .

Altres projectes

Enllaços externs

Programari lliure Portal de programari lliure : accediu a les entrades de Viquipèdia relacionades amb programari lliure