Guía de tradución de programas

Fundamentos do estándar Gettext

O estándar Gettext baséase en que o código fonte do programa inclúe separadamente as súas mensaxes en inglés e as correspondentes traducións, nun ficheiro de texto independente, logo a tradución só precisa este ficheiro (descargarase dende aquí na maioría dos casos).A extensión dos ficheiros de texto Gettext é:

  • *.pot para os planteis onde se atopan as mensaxes orixinais en inglés
  • *.po para os ficheiros onde ademáis das mensaxes orixinais se atopan as súas correspondentes traducións

Unha vez se ten o ficheiro de texto traducido (coa extensión *.po ) éste compílase co resto do programa e se xera un ficheiro binario *.mo que contén as mensaxes traducidas para que o programa as poida interpretar en tempo de execución. A nós só nos interesará obter os planteis *.pot correspondentes a un programa determinado, traducilos e gravalos coa extensión *.po e enviar este ficheiro ao cordinador do grupo de tradución correspondente ou, no caso de ser un programa individual non pertencente a ningunha suite como KDE, Gnome, FSF ... enviarllo ao propio autor do programa. O cordinador ou o autor do programa, segundo o caso, incluirá a tradución feita na distribución oficial do programa.

Estes ficheiros teñen unha sintaxe específica bastante doada de entender. Ademais, lonxe de ser totalmente preciso entendela para desenvolver as traducións (aínda que si convinte para os aspectos avanzados do proceso de tradución) existen na atualidade programas gráficos que simplifican moito o traballo. Falarase despois destes programas, pero antes vaise a explicar a sintaxe básica dos ficheiros gettext e o uso dalgunhas ferramentas para manipulalos.

Se abres un destes ficheiros poderás ver en primeiro lugar a cabeceira:

 # TÍTULO DESCRITIVO do PROGRAMA TRADUCIDO.
 # Autor da tradución <autor@datradución.com>, ANO.
 #
 #, fuzzy
 msgid ""
 msgstr ""
 Project-Id-Version: Versión do programa\n"
 POT-Creation-Date: 1999-08-21 08:11+0200\n"
 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 Last-Translator: Derradeiro Tradutor <derradeiro@tradutor.org>\n"
 Language-Team: Lingua <enderezo@dogrupodetradución.org>\n"
 MIME-Version: 1.0\n"
 Content-Type: text/plain; charset=CHARSET\n"
 Content-Transfer-Encoding: UTF-8\n"

Aquí van datos xerais sobre a tradución, como se pode ver: autor, datas, equipo de tradución, codificación, nome do programa ... Todos datos que non se verán na execución do programa. O resto do ficheiro consta de moitas entradas semellantes a ésta:

 #: src/getopt.c:582 ''
 #, c-format ''
 msgid "%s: option %s' is ambiguous\n" 
 msgstr "" 

Cada unha destas entradas consta dunha mensaxe orixinal no msgid e un campo msgstr onde ti manualmente ou a través dun programa de tradución meterás a correspondete versión en galego da mensaxe. No nóso caso quedaría:

 #: src/getopt.c:582
 #, c-format'
 msgid "%s: option %s' is ambiguous\n"
 msgstr "%s: a opción %s' é ambigua\n" 

¿Que son eses caracteres especiais? Os caracteres coma %s, %1, %2 adoitan substituir un termo que o programa introducirá a modo de variábel de execución, e polo tanto se deixan como están. Tamén se presenta a cotío o símbolo & intercalado nunha palabra. Este símbolo substitúe ao guión subíndice que se coloca nas entradas dos menús dos programas debaixo dunha letra, para indicar o atallo de teclado correspondente (Ctrl+Letra) a esa entrada de menú. Polo tanto, unha palabra como “G&o” traduciríase como “&Ir” (véxase que se pode mudar a posición do & e polo tanto hai que coidar que nun mesmo menú non coincidan as letras dos atallos de teclado).

Escolle o programa e tradúceo

Unha vez se entra a formar parte do grupo de colaboradores dun dos subproxectos de Trasno (contacta co coordinador do grupo que che interesa) xa estás listo/a para pórte a traducir un programa (suponse que se ten feito xa unha asignación por parte do coordinador dun grupo). Tamén é posíbel que só te interese traducir algún programa solto que non se inscriba en ningún dos grupos de tradución xa existentes. En calquera xeito, o que aquí se tenta explicar serve para calquera tipo de programa que ature a súa “internacionalización” polo método Gettext (na maioría dos programas da atualidade úsase este estándar).

Se estás pensando en traducir un programa dalgúns dos grupos de tradución como Gnome, KDE, FSF ou das distribucións, estes ficheiros xa se atopan na páxina correspondente a cada un deles para seren descargados. No caso de que desexes traducir un programa non adscrito a estes apartados terás que descargar o seu código fonte: o ficheiro de texto onde se inclúen as mensaxes para seren traducidas adoita atoparse nos cartafoles Programa-v1.1/po/, coas extensións anteriormente ditas.

Supoñamos que xa temos descargado o ficheiro *.pot* (se é unha tradución nova) ou o ficheiro *.po (se se anova unha tradución ou se revisa). Neste suposto, hai que decantarse por dúas vías: facer a tradución manualmente con editor de textos ou usar un programa específico como KBabel, GTranslator ou poEdit. Recoméndase usar un dos últimos programas porque, ademais de simplificar moito o proceso (máis comodidade) adxuntan funcións especiais (compilación, correción ortográfica, xestor de catálogos) que posibilitan un uso máis avanzado que o que podería fornecer un editor de textos sinxelo.

Revisa, proba e manda a tradución

No caso de que se estea a empregar un programa gráfico como KBabel ou GTranslator, non é preciso compilar o ficheiro *.po traducido e logo probar coa instalación do programa asociado, xa que KBabel e GTranslator fornecen unha serie de validacións que supervisan a validez do traballo feito: a verificación ortográfica (se se dispón de corrector ortográfico), a comprobación da sintaxe e outras comprobacións (aceleradores, puntuación, formas plurais, copias do inglés, mensaxes en branco ...) que se poden executar, por exemplo no caso do KBabel, dende o menú Ferramentas e Validación. Unha vez feitas todas estas verificacións e corrixidos os posibeis erros, xa se pode enviar o ficheiro *.po ao cordinador do grupo (se o programa está dentro dun dos proxectos de tradución) ou ao autor do programa (se o programa é independente).

Non obstante, tamén é posíbel facer unha compilación do ficheiro *.po para obter un ficheiro *.mo que se poderá usar para comprobar en tempo real (executando o programa) a validez da tradución. Isto recoméndase se existen dúbidas de interpretación, por exemplo, ou para acurtar oracións que destrúan as proporcións dos menús, entre outras cousas (tamén se queres ter inmediatamente a versión galega instalada no teu ordenador, sen agardar á publicación). Para facer isto, has de ter instalado o paquete GNU Gettext. Nel inclúese o programa msgfmt, que é o que vas empregar. Seguindo coa suposición de que o paquete é o chamado ficheiro.po, para probar este paquete escribe a orde:

 msgfmt -vvv -c ficheiro.po -o /dev/null

Deste xeito, se hai algún fallo, dirache cal é, en que liña está, etc. Cando xa teñas probada a tradución, podes compilala, para instalala no teu ordenador e usala ativamente. Para iso, executa estes dous comandos (o segundo coma root, a non ser que teñas configurado o teu ordenador de forma que o poidas evitar):

 msgfmt ficheiro.po -o ficheiro.mo
 mv ficheiro.mo /usr/share/locale/gl/LC_MESSAGES

Se o cartafol /usr/share/locale/gl/LC_MESSAGES/ non existe, créao no teu ordenador. Despois, para emprega-lo novo ficheiro, escribe a orde:

 export LC_MESSAGES=gl_ES 

Pódela poñer nos scripts de inicio do teu usuario (.bash_profile, .login, etc...), para non a ter que escribir cada vez que queiras emprega-la versión traducida.

Mantén anovada a tradución

Os programas están en continuo desenvolvemento, polo que as traducións non fican estáticas e precísase anovalas con asiduidade de xeito que se adapten ás novas funcionalidades que lle foran engadidas ao programa. Para manter as súas traducións anovadas recoméndase empregar un respositorio local con todos os programas do grupo de tradución co que colabore (vaia ás instrucións específicas de cada grupo para máis información) ou no seu canto descargar os ficheiros novos ficheiros *.pot de forma individual e manual. Se quere usar o respositorio, acuda á axuda específica de cada grupo para aprender a configuralo e executar as anovacións cando lle sexa convinte.

Se non pode usar o respositorio e precisa obter manualmente a nova versión ficheiro dende a rede, entón precisará facer o seguinte. Imaxine que ten o ficheiro traducido de nome ficheiro.po e desexa anovalo para adaptalo ás novas versións do programa. Descargue o ficheiro plantel ficheiro.pot dende a páxina do grupo de tradución ou dende a páxina do programa se é un programa axeno a estes grupos. Queremos xerar un ficheiro que chamaremos ficheironovo.po que conterá a versión nova do programa pero que recicle, dentro do posíbel, as mensaxes antigas que xa tiveramos traducidas e sexan aínda aproveitabeis. Executaremos entón:

 msgmerge  ficheiro.po ficheiro.pot -o ficheironov.po

Xerarase un ficheironovo.po que contén todas as mudanzas que se fixeran durante o desenvolvemento do programa dende a derradeira tradución. Neste proceso inseriranse posibelmente novas mensaxes e, asemade, aparecerán unhas mensaxes antigas marcadas coa etiqueta fuzzy (confusas), o que significa que mudaron o seu contido e polo tanto precísase revisar a tradución para adaptala de novo. O resto das mensaxes serán reutilizadas e non precisarán revisión.

 
trasno/guia.txt · Última modificación: 2007/07/19 16:43 por unho
 
Recent changes RSS feed Driven by DokuWiki