Changes between Version 4 and Version 5 of DocumentacionUsuario1.1.0/TraduccionGettext
- Timestamp:
- May 5, 2017, 10:29:14 AM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DocumentacionUsuario1.1.0/TraduccionGettext
v4 v5 7 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 8 9 GNU gettext utiliza 3 tipos de ficheros: 10 * {{{.pot}}}: plantilla de mensajes. 11 * {{{.po}}}: ficheros de traducción. 12 * {{{.mo}}}: ficheros de traducción compilados. 9 13 10 14 == Configuración == … … 28 32 Modificaciones a incluir en un programa C/C++: 29 33 * Zona de inclusión de código: 30 {{{ 34 {{{#!c 31 35 #include <libintl.h> 32 36 }}} 33 37 * Inicio de la función principal {{{main}}}: 34 {{{ 38 {{{#!c 35 39 setlocale (LC_ALL, ""); 36 40 bindtextdomain ("Dominio", "DirectorioIdiomas"); … … 47 51 Script de configuración de Gettext: 48 52 * Definir las variables: 49 {{{ 53 {{{#!sh 50 54 TEXTDOMAIN="Dominio" 51 55 TEXTDOMAINDIR=DirectorioIdiomas 52 56 }}} 53 57 * Definir una función {{{__}}} con la llamada a {{{gettext}}}, incluyendo: 54 {{{ 58 {{{#!sh 55 59 STRING=$1; shift 56 60 printf "$(gettext "$TEXTDOMAIN" "$STRING")" $@ … … 59 63 Modificaciones a incluir en un script BASH: 60 64 * Incluir la función de configuración (se recomienda usar el fichero {{{locale.sh}}} en el directorio de librerías): 61 {{{ 65 {{{#!sh 62 66 source CaminoScriptConfiguraciónGettext 63 67 }}} … … 71 75 72 76 73 == Crear fichero de cadenas==77 == Crear fichero de plantilla == 74 78 75 79 Una vez preparado el código fuente para el uso de Gettext, debe generarse el fichero maestro de cadenas (por defecto, {{{messages.pot}}}), ejecutando: 76 80 77 81 * C o C++: 78 {{{ 79 xgettext -C --from-cod=utf-8 Ficheros Scripts -o FicheroCadenas.pot82 {{{#!sh 83 xgettext -C --from-cod=utf-8 FicherosCódigo -o PlantillaCadenas.pot 80 84 }}} 81 85 * BASH: 82 {{{ 83 xgettext -L Shell -k__ --from-cod=utf-8 FicherosScripts -o FicheroCadenas.pot86 {{{#!sh 87 xgettext -L Shell -k__ --from-cod=utf-8 FicherosScripts -o PlantillaCadenas.pot 84 88 }}} 85 89 * PHP: … … 89 93 == Traducción == 90 94 95 Editar manualmente los ficheros de traducción y realizar las modificaciones necesarias para incluir la traducción de los mensajes, teniendo en cuenta que las líneas marcadas con {{{msgid}}} incluyen las cadenas originales y las que tienen {{{msgstr}}} son las que deben mosificarse para realizar la traducción. 91 96 92 == Generar el fichero final == 97 Por ejemmplo, 93 98 99 ||= Fichero original =||= Fichero modificado =|| 100 {{{#!td 101 {{{#!c 102 #: ../src/main.cpp:20 103 msgid "Uso: %s -qws http://sitioweb.com/\n" 104 msgstr "" 105 }}} 106 }}} 107 {{{#!td 108 {{{#!c 109 #: ../src/main.cpp:20 110 msgid "Uso: %s -qws http://sitioweb.com/\n" 111 msgstr "Usage: %s -qws http://website.com/\n" 112 }}} 113 }}} 114 115 116 == Actualizar fichero de traducción == 117 118 Tras realizar modificaciones de código y volver a generar un nuevo fichero de cadenas, debe ejecutarse el siguiente comando para actualizar cada fichero de traducción: 119 {{{ 120 msgmerge -U Fichero.po Plantilla.pot 121 }}} 122 123 == Generar fichero compilado == 124 125 Para generar cada fichero compilado a partir de los ficheros de texto traducidos, ejecutar: 126 {{{#!sh 127 msgfmt Fichero.po -o Fichero.mo 128 }}} 129 130 Cada fichero compilado debe copiarse al directorio de idiomas del dominio con el siguiente nombre ''{{{DirectorioDominio}}}''{{{/}}}''{{{Idioma}}}''{{{/LC_MESSAGES/}}}''{{{Dominio}}}''.mo. Por ejemplo, el fichero compilado con la traducción al inglés de los mensaje del Browser del cliente deberá localizarse en {{{/opt/opengnsys/lib/locale/en/MESSAGES/browser.mo}}} 131