Changes between Version 4 and Version 5 of DocumentacionUsuario1.1.0/TraduccionGettext


Ignore:
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
  • DocumentacionUsuario1.1.0/TraduccionGettext

    v4 v5  
    77Aunque 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__.
    88
     9GNU gettext utiliza 3 tipos de ficheros:
     10 * {{{.pot}}}: plantilla de mensajes.
     11 * {{{.po}}}: ficheros de traducción.
     12 * {{{.mo}}}: ficheros de traducción compilados.
    913
    1014== Configuración ==
     
    2832Modificaciones a incluir en un programa C/C++:
    2933 * Zona de inclusión de código:
    30  {{{
     34 {{{#!c
    3135#include <libintl.h>
    3236}}}
    3337 * Inicio de la función principal {{{main}}}:
    34  {{{
     38 {{{#!c
    3539setlocale (LC_ALL, "");
    3640bindtextdomain ("Dominio", "DirectorioIdiomas");
     
    4751Script de configuración de Gettext:
    4852 * Definir las variables:
    49  {{{
     53 {{{#!sh
    5054TEXTDOMAIN="Dominio"
    5155TEXTDOMAINDIR=DirectorioIdiomas
    5256}}}
    5357 * Definir una función {{{__}}} con la llamada a {{{gettext}}}, incluyendo:
    54  {{{
     58 {{{#!sh
    5559STRING=$1; shift
    5660printf "$(gettext "$TEXTDOMAIN" "$STRING")" $@
     
    5963Modificaciones a incluir en un script BASH:
    6064 * Incluir la función de configuración (se recomienda usar el fichero {{{locale.sh}}} en el directorio de librerías):
    61  {{{
     65 {{{#!sh
    6266source CaminoScriptConfiguraciónGettext
    6367}}}
     
    7175
    7276
    73 == Crear fichero de cadenas ==
     77== Crear fichero de plantilla ==
    7478
    7579Una vez preparado el código fuente para el uso de Gettext, debe generarse el fichero maestro de cadenas (por defecto, {{{messages.pot}}}), ejecutando:
    7680
    7781 * C o C++:
    78    {{{
    79 xgettext -C --from-cod=utf-8 FicherosScripts -o FicheroCadenas.pot
     82   {{{#!sh
     83xgettext -C --from-cod=utf-8 FicherosCódigo -o PlantillaCadenas.pot
    8084}}}
    8185 * BASH:
    82    {{{
    83 xgettext -L Shell -k__ --from-cod=utf-8 FicherosScripts -o FicheroCadenas.pot
     86   {{{#!sh
     87xgettext -L Shell -k__ --from-cod=utf-8 FicherosScripts -o PlantillaCadenas.pot
    8488}}}
    8589 * PHP:
     
    8993== Traducción ==
    9094
     95Editar 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.
    9196
    92 == Generar el fichero final ==
     97Por ejemmplo,
    9398
     99||= Fichero original =||= Fichero modificado =||
     100{{{#!td
     101 {{{#!c
     102#: ../src/main.cpp:20
     103msgid "Uso: %s -qws http://sitioweb.com/\n"
     104msgstr ""
     105 }}}
     106}}}
     107{{{#!td
     108 {{{#!c
     109#: ../src/main.cpp:20
     110msgid "Uso: %s -qws http://sitioweb.com/\n"
     111msgstr "Usage: %s -qws http://website.com/\n"
     112 }}}
     113}}}
     114
     115
     116== Actualizar fichero de traducción ==
     117
     118Tras 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 {{{
     120msgmerge -U Fichero.po Plantilla.pot
     121}}}
     122
     123== Generar fichero compilado ==
     124
     125Para generar cada fichero compilado a partir de los ficheros de texto traducidos, ejecutar:
     126 {{{#!sh
     127msgfmt Fichero.po -o Fichero.mo
     128}}}
     129
     130Cada 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