| 1 | [[TOC(heading=Índice)]] |
| 2 | |
| 3 | = Traducción de mensajes usando GNU gettext = |
| 4 | |
| 5 | [https://www.gnu.org/software/gettext/ GNU gettext] es un conjunto de herramientas que permite una fácil traducción a varios idiomas los mensajes que se muestran al usuario. Se recomienda empezar a utilizar GNU gettext para estandarizar el proceso de internacionalización de OpenGnsys, el cual deberá estar instalado tanto en el servidor principal como en la máquina que vaya a utilizarse para el desarrollo del proyecto. |
| 6 | |
| 7 | Aunque GNU gettext está diseñado inicialmente para que los mensajes originales se redacten en inglés, permite usar cualquier otro idioma como base, por lo tanto __OpenGnsys utilizará el castellano como idioma original para los mensajes de texto__. |
| 8 | |
| 9 | |
| 10 | == Configuración == |
| 11 | |
| 12 | La siguiente table muestra los parámetros básicos de configuración de GNU gettext. |
| 13 | |
| 14 | ||= Componente =||= Programado en =||= Dominio =||= Directorio =|| |
| 15 | ||Browser del cliente||C++||{{{browser}}}||{{{/opt/opengnsys/lib/locale}}} (cliente)|| |
| 16 | |
| 17 | Para localizar el fichero de traducción, cada componente debe incluir en la configuración de gettext el dominio de texto y el directorio de idiomas. El camino completo del fichero será: ''{{{DirectorioIdiomas/xx}}}''{{{/LC_MESSAGES/}}}''{{{Dominio}}}''{{{.mo}}}, siendo ''{{{xx}}}'' las siglas del idioma ({{{ca}}} para catalán, {{{en}}} para inglés o {{{es}}} para castellano). |
| 18 | |
| 19 | |
| 20 | == Preparar el código fuente == |
| 21 | |
| 22 | Los programas deben modificarse para que gettext pueda localizar las cadenas que debe traducir, según el lenguaje de programación utilizado. |
| 23 | |
| 24 | === C o C++ === |
| 25 | |
| 26 | Modificaciones a incluir en un programa C/C++: |
| 27 | * Zona de inclusión de código: |
| 28 | {{{ |
| 29 | #include <libintl.h> |
| 30 | }}} |
| 31 | * Inicio de la función principal {{{main}}}: |
| 32 | {{{ |
| 33 | setlocale (LC_ALL, ""); |
| 34 | bindtextdomain ("Dominio", "DirectorioIdiomas"); |
| 35 | textdomain ("Dominio"); |
| 36 | }}} |
| 37 | |
| 38 | |
| 39 | |
| 40 | (seguir...) |