close
Warning:
Failed to sync with repository "ogBrowser-Git": (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xA6 I...' for column 'message' at row 1"); repository information may be out of date. Look in the Trac log for more information including mitigation strategies.
- Timestamp:
-
May 5, 2017, 10:29:14 AM (8 years ago)
- Author:
-
ramon
- Comment:
-
Continuar secciones de traducción, actualización y generación
Legend:
- Unmodified
- Added
- Removed
- Modified
-
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 FicherosScripts -o FicheroCadenas.pot |
| 82 | {{{#!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.pot |
| 86 | {{{#!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 | |