For faster navigation, this Iframe is preloading the Wikiwand page for gettext.

gettext

Gettext
Parte de Proyecto GNU
Información general
Tipo de programa biblioteca de software
Autor Ulrich Drepper
Desarrollador Proyecto GNU
Modelo de desarrollo Abierto
Lanzamiento inicial 1994
Licencia
Información técnica
Programado en C
Versiones
Última versión estable 0.22.5 (info) ( 22 de febrero de 2024 (4 meses y 28 días))
Archivos legibles
  • GNU Gettext Machine Object (big endian)
  • GNU Gettext Machine Object (litte endian)
Archivos editables
  • GNU Gettext Machine Object (big endian)
  • GNU Gettext Machine Object (litte endian)
Enlaces

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.22.4

Flujo de trabajo

[editar]
Flujo de trabajo

Programador

[editar]

Primero es necesario modificar el código fuente para poder usar las llamadas de GNU gettext. Esta modificación consiste en usar, como parámetro de la función gettext, las cadenas de texto que el usuario verá. Para ahorrar tiempo de escritura y espacio, esta función es usualmente asignada a _, en el código C

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

Se convierte en:

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

Además de C, GNU gettext tiene las siguientes implementaciones: C++, Objective C, sh script, bash script, Python, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Pascal, wxWidgets (a través de la clase WxLocale), YCP (the YaST2 language), Tcl, Perl, PHP, y Pike. El uso es similar al de C para muchos de estos.

xgettext se ejecuta sobre el código fuente para producir un archivo .pot, o plantilla, cuando contiene una lista de todas las cadenas de texto traducibles extraída del código fuente. Una entrada en el archivo .pot se puede ver como:

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

Traductor

[editar]

El traductor genera un archivo .po desde la plantilla usando el programa msginit, y comienza a traducirlo. msginit inicializa el fichero con las traducciones, por lo tanto, si deseamos crear una traducción al español, ejecutaríamos lo siguiente:

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

Eso generaría el fichero es.po. Una entrada sencilla se verá como la siguiente:

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

El traductor tendrá que editarlas, o a mano o con una herramienta de traducción como Poedit. Cuando esto esté hecho, la entrada ahora se verá así:

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

Finalmente, los ficheros .po son compilados en un fichero binario .mo con msgfmt. De forma que queden listos para ser distribuidos con el paquete de software.

Usuario

[editar]

El usuario, sobre sistemas tipo Unix, establece la variable de entorno LANGUAGE, y el programa mostrará las cadenas en el idioma seleccionado, si es que hay un archivo .mo para ello.

Enlaces externos

[editar]
{{bottomLinkPreText}} {{bottomLinkText}}
gettext
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?