Editing Introdución á tradución de software

From Proxecto Trasno

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The system administrator who locked it offered this explanation: Esta wiki está temporalmente en modo de só lectura

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
'''Faltan puntos por rematar. Antento ao ler a páxina'''
 
 
 
 
== Conceptos previos ==
 
== Conceptos previos ==
=== O inglés como lingua da computación ===
+
=== O Inglés como lingua da computación ===
O fin do [http://en.wikipedia.org/wiki/Second_European_colonization_wave_(19th_century-20th_century) período colonial] e o resultado das [http://en.wikipedia.org/wiki/World_war1 grandes guerras do século XX] fixeron que a lingua de uso internacional, que ata ven entrado o pasado século fora o francés, pasara a ser o inglés, pois os Estados Unidos de Norte América colócanse coma a nova gran potencia mundial. Se a finais do século XIX e comezos do XX os primeiros grandes [http://en.wikipedia.org/wiki/History_of_computing_hardware avances na enxeñaría e informática] comezaron no mundo anglo-xermano, despois da primeira gran guerra os avances prodúcense no lado dos EUA. O resultado da segunda guerra mundial, que pon na quebra as economías europeas, e o resultado da guerra fría, permítenlle aos EUA consolidarse coma un potencia tecnolóxica. Con isto, non é de estrañar que o inglés sexa a lingua estándar na computación.
+
O fin do [http://en.wikipedia.org/wiki/Second_European_colonization_wave_(19th_century-20th_century)| período colonial] e o resultado das [http://en.wikipedia.org/wiki/World_war1 grandes guerras do século XX] fixeron que a lingua de uso internacional, que ata ven entrado o pasado século fora o francés, pasara a ser o inglés, pois os Estados Unidos de Norte América colócanse coma a nova gran potencia mundial. Se a finais do século XIX e comezos do XX os primeiros grandes [http://en.wikipedia.org/wiki/History_of_computing_hardware| avances na enxeñaría e informática] comezaron no mundo anglo-xermano, despois da primeira gran guerra os avances prodúcense no lado dos EUA. O resultado da segunda guerra mundial, que pon na quebra as economías europeas, e o resultado da guerra fría, permítenlle aos EUA consolidarse coma un potencia tecnolóxica. Con isto, non é de estrañar que o inglés sexa a lingua estándar na computación.
  
 
=== Internacionalización e localización ===
 
=== Internacionalización e localización ===
Line 12: Line 9:
  
 
O proceso de axustar o software xa internacionalizado a unha lingua ou rexión cultural concreta chámase '''localización''' e abreviase como '''l10n'''.  
 
O proceso de axustar o software xa internacionalizado a unha lingua ou rexión cultural concreta chámase '''localización''' e abreviase como '''l10n'''.  
A i18n das aplicacións é un requisito previo á localización. Por medio da localización créanse versión da aplicación sen necesidade de cambiar o [http://en.wikipedia.org/wiki/Source_code código fonte] da aplicación. Isto conséguese externalizando as mensaxes de texto ou imaxes específicas que logo os localizadores se encargarán de cambialos segundo a lingua ou os convenios culturais de cada rexión.  
+
A i18n das aplicacións é un requisito previo á localización. Por medio da localización créanse versión da aplicación sen necesidade de cambiar o [http://en.wikipedia.org/wiki/Source_code| código fonte] da aplicación. Isto conséguese externalizando as mensaxes de texto ou imaxes específicas que logo os localizadores se encargarán de cambialos segundo a lingua ou os convenios culturais de cada rexión.  
  
 
O proceso de '''globalización''' (g11n) emprégase habitualmente para englobar os procesos de internacionalización e localización. O proceso abrangue ao deseño, implementación e localización. Nalgún momento dado empregouse a abreviatura g11n para referirse á ''galeguización'', mais a coincidencia da abreviatura coa de globalization fai desaconsellable o seu emprego.
 
O proceso de '''globalización''' (g11n) emprégase habitualmente para englobar os procesos de internacionalización e localización. O proceso abrangue ao deseño, implementación e localización. Nalgún momento dado empregouse a abreviatura g11n para referirse á ''galeguización'', mais a coincidencia da abreviatura coa de globalization fai desaconsellable o seu emprego.
  
  
=== O identificador ''locale'' ===
+
=== O "locale" ===
As linguas están recollidas nunha serie de estándares internacionais co fin de identificalas. A serie [http://en.wikipedia.org/wiki/ISO_639 ISO 639] recolle asignan códigos identificacións cada lingua descrita. Estes códigos son empregados en varios ámbitos informáticos.
+
As linguas están recollidas nunha serie de estándares internacionais co fin de identificalas. A serie [http://en.wikipedia.org/wiki/ISO_639| ISO 639] recolle asignan códigos identificacións cada lingua descrita. Estes códigos son empregados en varios ámbitos informáticos.
  
 
A ISO 639 consiste da 639-1, 639-2, 639-3 e 639-5. Foron redactados en diferentes momentos con variacións debido a unha ou outra necesidade, como a de ampliar  sistema de codificación ata poder acoller as arredor de 6000 linguas vivas que se estima existen, ademais de linguas extintas e artificias. A ISO 639 identifica a cada idioma cun código de dúas letras mentres que a 639-2 define un código de tres letras. Así o galego recibe os identificadores gl e glg na 639-1 e 639-2, respectivamente. Outros exemplos importantes a ter en conta son:  
 
A ISO 639 consiste da 639-1, 639-2, 639-3 e 639-5. Foron redactados en diferentes momentos con variacións debido a unha ou outra necesidade, como a de ampliar  sistema de codificación ata poder acoller as arredor de 6000 linguas vivas que se estima existen, ademais de linguas extintas e artificias. A ISO 639 identifica a cada idioma cun código de dúas letras mentres que a 639-2 define un código de tres letras. Así o galego recibe os identificadores gl e glg na 639-1 e 639-2, respectivamente. Outros exemplos importantes a ter en conta son:  
  
 
{| class="wikitable" style="text-align:left; margin: 1em auto 1em auto"
 
{| class="wikitable" style="text-align:left; margin: 1em auto 1em auto"
!ISO 639-1 !!ISO 639-2 !! Name  
+
!ISO 639-1!!ISO 639-2!!Name
 
|-
 
|-
 
|gl||glg||Galician||
 
|gl||glg||Galician||
Line 55: Line 52:
 
|inglés británico||en_GB||
 
|inglés británico||en_GB||
 
|-
 
|-
|portugués continental  ||pt_ES||
+
|portugués continental||pt_ES||
 
|-
 
|-
 
|portugués brasileiro||pt_BR||
 
|portugués brasileiro||pt_BR||
Line 64: Line 61:
 
O locale en_US actúa habitualmente como predefinido na maioría dos sistemas, pois é o de orixe.  
 
O locale en_US actúa habitualmente como predefinido na maioría dos sistemas, pois é o de orixe.  
  
Cada lingua ten ademais un sistema de escritura que pode variar. As linguas poden ter sistemas alfabéticos, coas súas diferentes tipografías, ou sistemas iconográficos pero os ordenadores traballan con díxitos. Con isto, cada carácter tipográfico leva un número asociado nun estándar de representación específico. Esta asociación chámase código de caracteres. '''Códigos de caracteres''' (''eng''. charset) hai múltiples, coma o ASCII ou a ISO-8859-1. O sistema [http://en.wikipedia.org/wiki/Unicode Unicode] é un estándar industrial de representación de códigos de caracteres deseñado para acoller a todos os símbolos e textos posibles te todos os sistemas de escritura do mundo. O ''Unicode Transformation Format'' (UTF) é de amplo uso en programas internacionalizados. Os formatos UTF-8 e UTF-16 son probablemente os máis empregados. O UTF-8 recolle correctamente o código de caracteres do galego pois é compatible coas escrituras latinas e o ASCII.
+
Cada lingua ten ademais un sistema de escritura que pode variar. As linguas poden ter sistemas alfabéticos, coas súas diferentes tipografías, ou sistemas iconográficos pero os ordenadores traballan con díxitos. Con isto, cada carácter tipográfico leva un número asociado nun estándar de representación específico. Esta asociación chámase código de caracteres. '''Códigos de caracteres''' (''eng''. charset) hai múltiples, coma o ASCII ou a ISO-8859-1. O sistema [http://en.wikipedia.org/wiki/Unicode| Unicode] é un estándar industrial de representación de códigos de caracteres deseñado para acoller a todos os símbolos e textos posibles te todos os sistemas de escritura do mundo. O ''Unicode Transformation Format'' (UTF) é de amplo uso en programas internacionalizados. Os formatos UTF-8 e UTF-16 son probablemente os máis empregados. O UTF-8 recolle correctamente o código de caracteres do galego pois é compatible coas escrituras latinas e o ASCII.
  
 
== Ciclo de desenvolvemento e Sistemas de control de versións ==
 
== Ciclo de desenvolvemento e Sistemas de control de versións ==
Here goes some rough intro to CVS, and some very brief intro to basic svn and git commands
 
 
En moitos casos, senón en todos, os ficheiros de tradución hai que obtelos directamente dende os repositorios do proxecto empregando e logo remitilos mediante algún  sistema de control de versións. Inda que algúns proxectos están a implantar sistemas para xestionar isto por medio da web, é máis que recomendable coñecer o básico dos principais CVS e así poder entender as instruccións que se nos poidan dar.
 
 
Sistemas amplamente empregados nos proxectos son SVN e Git, inda que é posible que nos encontremos con outros sistemas coma Bazaar ou Mercurial.
 
 
 
=== SVN ===
 
=== SVN ===
É imperativo afacerse cunha copia de SVN e instalala. Dependendo do sistema operativo, o proceso pode variar lixeiramente.
 
 
* En Windows e Mac OSX, descárguese o executable dende o [http://subversion.tigris.org/getting.html proxecto SVN]
 
* En Debian
 
<pre>
 
aptitude install subversion
 
</pre>
 
* En openSUSE
 
<pre>
 
zypper install subversion
 
</pre>
 
* En Fedora
 
<pre>
 
yum install subversion
 
</pre>
 
 
Todas as distribucións Linux e BSD inclúen nos repositorios subversion.
 
 
 
=== Git ===
 
=== Git ===
* [http://git-scm.com/book/en/Getting-Started-Git-Basics Getting Started - Git Basics] (tutorial)
 
  
 
== Fluxo da localización e Gettext ==
 
== Fluxo da localización e Gettext ==
  
'''{POT TEMPLATES YET TO BE MENTIONED}'''
+
Poderiase pensar que o fluxo de localización segue un patrón no que o desenvolvedor envía as traducións a un ficheiro que logo o localizador de cada idioma traduce, tendo como resultado tantos paquetes de programa cun ficheiro de lingua asociado como o número de linguas ás que se localizara. Isto ben pode ser o caso da tradución dun documento de texto ou unha páxina HTML, que produce un ficheiro completo para cada lingua. Porén, as tradución de software non se realizan dun xeito estático senón que se fan de xeito ''dinámico''. As traducións dun programa debúxanse en tempo de execución. En realidade as aplicacións progámanse para que escollan as ''cadeas'' de texto que aparecen en cada momento dende un ficheiro coas traducións a lingua (hai un por lingua) que o usuario especificou nas súas preferencias. Isto é o que se chama ''tradución dinámica'''.
 
 
 
 
 
 
Poderíase pensar que o fluxo de localización segue un patrón no que o desenvolvedor envía as traducións a un ficheiro que logo o localizador de cada idioma traduce, tendo como resultado tantos paquetes de programa cun ficheiro de lingua asociado como o número de linguas ás que se localizara. Isto ben pode ser o caso da tradución dun documento de texto ou unha páxina HTML, que produce un ficheiro completo para cada lingua. Porén, as tradución de software non se realizan dun xeito estático senón que se fan de xeito ''dinámico''. As traducións dun programa debúxanse en tempo de execución. En realidade as aplicacións prográmanse para que escollan as ''cadeas'' de texto que aparecen en cada momento dende un ficheiro coas traducións a lingua (hai un por lingua) que o usuario especificou nas súas preferencias. Isto é o que se chama ''tradución dinámica'''.
 
  
 
Independentemente de que a tradución se faca dun xeito dinámico ou estático, hai un ficheiro de cadeas en inglés para ser traducidas. Inda que este ficheiro simplemente contén texto precisase que todos os localizadores empreguen o mesmo formato de texto e poidan eles e os desenvolvedores manter o sistema de tradución continuamente ao longo do desenvolvemento da aplicación. Para evitar estes problemas no software libre desenvolveuse un formato de ficheiro específico para o proceso. Existen varias ferramentas, independentes, que se programaron para traducir, validar e converter este formato a outros formatos, independentemente de que sexa texto da interface gráfica, documentación, páxinas man, notas de lanzamento ou contido web.  
 
Independentemente de que a tradución se faca dun xeito dinámico ou estático, hai un ficheiro de cadeas en inglés para ser traducidas. Inda que este ficheiro simplemente contén texto precisase que todos os localizadores empreguen o mesmo formato de texto e poidan eles e os desenvolvedores manter o sistema de tradución continuamente ao longo do desenvolvemento da aplicación. Para evitar estes problemas no software libre desenvolveuse un formato de ficheiro específico para o proceso. Existen varias ferramentas, independentes, que se programaron para traducir, validar e converter este formato a outros formatos, independentemente de que sexa texto da interface gráfica, documentación, páxinas man, notas de lanzamento ou contido web.  
  
No sistema de tradución [http://en.wikipedia.org/wiki/Gettext Gettext] este formato é o PO, que é o formato máis amplamente empregado para a localización de software libre.Este formato está pensado para  
+
No sistema de tradución Gettext este formato é o PO, que é o formato máis amplamente empregado para a localización de software libre.Este formato está pensado para  
  
 
* '''Tradución estáticas intermedias''': datos de texto estático, como a documentación de software, que se converte do formato orixinal a PO, tradúcese e convertese de novo ao formato orixinal. Co este resultado prodúcense os documentos finais que o usuario vaia a ver.
 
* '''Tradución estáticas intermedias''': datos de texto estático, como a documentación de software, que se converte do formato orixinal a PO, tradúcese e convertese de novo ao formato orixinal. Co este resultado prodúcense os documentos finais que o usuario vaia a ver.
* '''Traducións dinámicas intermedias''': algunhas aplicación manteñen as cadeas da interface no seu propio formato, como é o caso de Mozilla ou OpenOffice. Estes formatos reconvértense en ficheiro de tradución PO para que sexan traducidos e logo vólvense a converter no formato de orixe para que sexan empregados en tempo real polas aplicacións.  
+
* '''Traducións dinámicas intermedias''': algunhas aplicación manteñen as cadeas da interface no seu propio formato, como é o caso de Mozilla ou OpenOffice. Estes formatos reconvértense en ficheiro de tradución PO para que sexan traducidos e logo volvense a converter no formato de orixe para que sexan empregados en tempo real polas aplicacións.  
* '''Traducións nativas dinámicas''': moitas aplicacións empregan o formato PO como formato nativo para as cadeas da interface co cal non hai necesidade de conversións intermedias. Isto inclúe aos entornos de escritorio KDE e Gnome, as ferramentas GNU etc. Para poder empregalos en tempo real os ficheiros PO compílanse a ficheiros binarios MO.  
+
* Traducións nativas dinámicas: moitas aplicacións empregan o formato PO como formato nativo para as cadeas da interface co cal non hai necesidade de conversións intermedias. Isto inclúe aos entornos de escritorio KDE e Gnome, as ferramentas GNU etc. Para poder empregalos en tempo real os ficheiros PO compílanse a ficheiros binarios MO.  
  
É importante esta distinción xa que dependendo do uso, poden aparecer elementos incrustados asociados ao código que se traduce. Para as cadeas da interface poden aparecer directivas de formato namentres na documentación pode aparecer marcado do tipo HTML. Asi que o tradutor ten coñecer que se está a traducir con ese ficheiro PO.  
+
É importante esta distinción xa que dependendo do uso, poden aparecer elementos incrustados asociadoas ao código que se traduce. Para as cadeas da interface ponden aparecer directivas de formato namentres na documentación pode aparecer marcado do tipo HTML. Asi que o tradutor ten coñecer que se está a traducir con ese ficheiro PO.  
  
 
O formato PO é un formato compacto, facilmente lexible  e editable sen necesidade de ferramentas especializadas. Isto implica que inda que hai ferramentas especializadas, pódese empregar un simple editor de texto para facer a tradución. Inda así os tradutores deben coñecer a estrutura do formato!.  
 
O formato PO é un formato compacto, facilmente lexible  e editable sen necesidade de ferramentas especializadas. Isto implica que inda que hai ferramentas especializadas, pódese empregar un simple editor de texto para facer a tradución. Inda así os tradutores deben coñecer a estrutura do formato!.  
  
=== Características básicas do formato PO ===
 
  
O formato PO é un formato de texto simple que leva a extensión ''.po'' . O ficheiro PO contén un número de mensaxes, en parte segmentos de texto independentes para traducir, que foron agrupados nun só ficheiro por algún motivo lóxico de estruturación da tradución. Por exemplo, unha aplicación soa, calquera, probablemente agrupe todas as mensaxes de texto da interface nun só ficheiro PO, toda a documentación outro. Igualmente, esta aplicación podería subdividir a tradución en varios ficheiros PO por módulos, a documentación dividida por capítulos etc. Os ficheiros PO tamén se coñecen coma ''catálogos de mensaxes''.
 
  
==== Corpo do ficheiro ====
+
http://www.linuxselfhelp.com/gnu/gettext/html_chapter/gettext_1.html
Un segmento intermedio dun ficheiro PO ten unha estrutura coma a seguinte:
 
 
 
<pre>
 
#: finddialog.cpp:38
 
msgid "Globular Clusters"
 
msgstr ""
 
 
#: finddialog.cpp:39
 
msgid "Gaseous Nebulae"
 
msgstr ""
 
 
#: finddialog.cpp:40
 
msgid "Planetary Nebulae"
 
msgstr ""
 
</pre>
 
 
 
Cada mensaxe contén a etiqueta '''msgid''' seguida do texto en inglés e entre comiñas. A etiqueta '''msgstr''' marca a cadea que se supón que é a tradución á lingua de destino, a lingua á que se traduce; igualmente entre comiñas. Unha vez se realiza a tradución o segmento sería coma o seguinte:
 
 
 
<pre>
 
#: finddialog.cpp:38
 
msgid "Globular Clusters"
 
msgstr "Cústers globulares"
 
 
#: finddialog.cpp:39
 
msgid "Gaseous Nebulae"
 
msgstr "Nebulosas gaseosas"
 
 
#: finddialog.cpp:40
 
msgid "Planetary Nebulae"
 
msgstr "Nebulosa planetaria"
 
</pre>
 
 
 
É posible deixar traducións sen realizar e tecnicamente non supón un problema. Mais nese caso o usuario final verá unha interface parcialmente traducida, onde as cadeas que non se traduciron móstranse en inglés.
 
 
 
Cada mensaxe no ficheiro PO contén un comentario de referencia á orixe, que é a liña que comeza co ''#:'' . Informa onde se atopa esa frase no código fonte da aplicación, ou a parte onde se atopa se é un documento de calquera outra clase.
 
 
 
Pódese dicir, inda que non sempre é certo, que cada mensaxe no ficheiro PO está identificada inequivocamente pola cadea ''msgid''. Isto implica que se hai que informar sobre dunha cadea en concreto,por exemplo, porque haxa un erro tipográfico no texto inglés; hai que dar a información ''msgid'' da cadea da que se fala. Igualmente, non pode haber dúas mensaxes coa mesma ''msgid'' no mesmo ficheiro PO. Se unha mesma cadea aparece varias veces no código fonte recollerase nunha soa no ficheiro PO e cun comentario #: no que se pon a lista de todos os puntos do código onde esa cadea aparece. Os programadores ponde introducir comentarios para informar os tradutores do contexto. Exemplos disto:
 
 
 
<pre>
 
#. i18n: A classical test phrase, with all letters of the English alphabet.
 
#. Replace it with a sample text in your language, such that it is
 
#. representative of language's writing system.
 
#: kdeui/fonts/kfontchooser.cpp:382
 
msgid "The Quick Brown Fox Jumps Over The Lazy Dog"
 
msgstr ""
 
</pre>
 
 
 
onde se nos di que esa frase non está pensada para que se traduza literalmente.
 
 
 
<pre>
 
#. Tag: title
 
#: skycoords.docbook:73
 
msgid "The Horizontal Coordinate System"
 
msgstr ""
 
</pre>
 
 
 
ou esta onde se nos informa de que a frase corresponde a un título.
 
 
 
Igualmente os tradutores poden introducir comentarios nas súas traducións:
 
 
 
<pre>
 
# Wikipedia says that ‘etrurski’ is our name for this script.
 
#: viewpart/UnicodeBlocks.h:151
 
msgid "Old Italic"
 
msgstr "etrurski"
 
</pre>
 
 
 
==== Cabeceiro ====
 
 
 
O formato PO leva un '''cabeceiro''' no que se fan unha serie de declaracións, entre elas e como para calquera texto, o formato de codificación. O máis recomendable é usar unha codificación UTF-8, o cal é estritamente necesario se van aparecer caracteres non ASCII.
 
 
 
Un exemplo de cabeceiro:
 
 
 
<pre>
 
# translation of someprogram.po to galician
 
# Copyright (C) 2009 Free Software Foundation, Inc.
 
# Nome do Tradutor <correo@dotradutor.com>, 2009.
 
msgid ""
 
msgstr ""
 
"Project-Id-Version: kmail\n"
 
"Report-Msgid-Bugs-To: http://some.web.org\n"
 
"POT-Creation-Date: 2009-12-23 06:57+0100\n"
 
"PO-Revision-Date: 2009-10-06 18:46+0200\n"
 
"Last-Translator: Nome do Tradutor <correo@dotradutor.com>\n"
 
"Language-Team: Galician <proxecto@trasno.net>\n"
 
"MIME-Version: 1.0\n"
 
"Content-Type: text/plain; charset=UTF-8\n"
 
"Content-Transfer-Encoding: 8bit\n"
 
"X-Generator: Lokalize 1.0\n"
 
"Plural-Forms: nplurals=2; plural=n != 1;\n"
 
</pre>
 
 
 
A entrada "Plural-Forms" cuantifica o número de plurais que a lingua de destino ten. Algunhas cadeas precisarán de varias traducións en función do número de plurais de cada lingua. Esta entrada ten sempre a forma:
 
 
 
<pre>
 
Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;
 
</pre>
 
 
 
onde ''nplurals'' é o numero de plurais e ten que se corresponder cun valor enteiro natural: e onde ''plurals'' é a expresión en sintaxe da linguaxe C. Esta entrada admite a variable ''n''. ALgúns exemplos sinxelos dependendo dos plurais de cada lingua:
 
 
 
{| class="wikitable" style="text-align:center; margin: 1em auto 1em auto"
 
! Número de plurais
 
! Plural-Form
 
! Exemplos de linguas
 
|-
 
|0||nplurals=1; plural=0||Xaponés, Coreano, Turco||
 
|-
 
|1||nplurals=2; plural=n != 1|| Inglés, Alemán, Galego, Portugés, Castelán||
 
|-
 
|2||nplurals=2; plural=n>1||Francés, Portugués brasileiro||
 
|-
 
|3||nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2||Letón||
 
|}
 
 
 
==== Directivas de formato ====
 
 
 
Cando algún programa, poñamos un xestor de ficheiros, nos informa de "Quere eliminar o ficheiro apuntamentos.txt?", ese "apuntamentos.txt" foi engadido en tempo de execución da aplicación. Nestes casos o texto orixinal que ve o tradutor conterá directivas de formato, subcadeas que a aplicación substitúe por argumentos apropiados no momento e que lle serven para construír a mensaxe que o usuario ve. Obsérvese:
 
 
 
<pre>
 
#: skycomponents/constellationlines.cpp:106
 
#, kde-format
 
msgid "No star named %1 found."
 
msgstr "Non se atopou o nome da estrela %1."
 
</pre>
 
 
 
A directiva de formato nesta mensaxe é ''%1''. As directivas de formato dependen da aplicación que se considere. Por exemplo, namentres en KDE se soe empregar %1 e Gnome sóese facer uso de %s pois é habitual para aplicacións en C. Outra directiva frecuente é %d e emprégase con enteiros. Un caso de directiva en Python:
 
 
 
<pre>
 
#: skycomponents/constellationlines.cpp:106
 
#, python-format
 
msgid "No star named %(starname)s found."
 
msgstr "Nema zvezde po imenu %(starname)s."
 
</pre>
 
 
 
aquí a directiva é %(starname)s.
 
 
 
As directivas non deben ser cambiadas pois senón a aplicación non fará a substitución e moi probablemente derivará nun peche desta. Cada directiva da cadea orixinal debe atoparse intacta na cadea traducida. As directivas de formato poden precisar de se colocar na frase na posición que lle corresponda gramaticalmente na lingua de orixe. Tamén se hai varias directivas haberá que reordenalas para que sigan a estrutura gramatical correcta da lingua de destino:
 
 
 
<pre>
 
#: kxsldbgpart/libxsldbg/xsldbg.cpp:256
 
#, kde-format
 
msgid "%1 took %2 ms to complete."
 
msgstr "Levoulle %2 acabar a %1."
 
</pre>
 
 
 
Cando hai varias directivas de formato iguais na cadea que están numeradas ou nomeadas pódese, habitualmente, eliminar os duplicados na tradución. Isto pode ser o caso no que se intruduce un pronome para referirse a ese elemento ao que se refire a directiva:
 
 
 
<pre>
 
#: hypothetical.cpp:100
 
#, kde-format
 
msgid "%1 is the blah, blah, blah. With %1 you can blah, blah."
 
msgstr "%1 é bla bla bla. Con el podes bla bla bla."
 
</pre>
 
 
 
e inversamente, pódese repetir a directiva inda cando non apareza repetida na cadea en inglés.
 
 
 
==== Marcado de texto ====
 
As aplicación ás veces mostran texto en texto non simple; isto é, con negriñas, cursivas, tamaños de letra máis grande etc. O tradutor este texto encóntrao cun determinado tipo de marcadok, con as palabras, frases ou paragrafos enteiros están incluídos dentro de etiquetas especiais. Exemplos disto:
 
 
 
<pre>
 
msgid "<b>Name:</b>"
 
msgstr ""
 
</pre>
 
⁠<pre>
 
msgid "<qt>Current map:<br/><b>%1</b></qt>"
 
msgstr ""
 
</pre>
 
 
Neste caso o marcado é do tipo XML as etiquetas están para nun formato do estilo <etiqueta>...</etiqueta>, onde ... é o texto que é etiquetado. As etiquetas <b>...</b> poñen o texto en negriña, por exemplo.
 
 
 
Outros marcados habituais da documentación son do estilo <title>...</title> e pertencen ai formato XML Docbook.
 
 
 
Polo xeral, hai que reproducir exactamente o tipo de etiquetas tal que aparecen na cadea de orixe e baixo ningunha circunstancia traducir a etiqueta en si (ese <title> ou <emphasis>). Pódese, iso si, modificar o marcado do texto, sempre e cando se saiba correctamente o que se fai.
 
 
 
Nos PO de interfaces gráficas aparecen partes no texto orixinal que semellan marcado do tipo XML:
 
 
 
<pre>
 
#: utils/katecmds.cpp:180
 
#, kde-format
 
msgid "Missing argument. Usage: %1 <value>"
 
msgstr ""
 
</pre>
 
 
 
Ese <value> non é unha etiqueta senón que texto que o usuario ve. En realidade é unha marca de substitución que lle indica ao usuario que argumento debería ir nese lugar. As marcas de substitución son susceptibles de ser traducidas máis hai que ter tino de non traducir unha etiqueta de marcado de texto cando por confundila cunha marca de substitución.
 
 
 
Cando se atopen marcas que non se coñecen deberíase buscar información para saber que función teñen e que uso se lle dá.
 
 
 
== XLIFF stuff and translation memories ==
 
All about XLIFF... tough not relevant in FLOSS l10n *yet*(?). So very very brief intro; then it's all 'bout memories coz ya know, we all use 'em
 
  
 
== Aplicacións para a tradución ==
 
== Aplicacións para a tradución ==
 
Editores de texto vs ferramentas especializadas
 
Editores de texto vs ferramentas especializadas
 
=== Aplicacións de escritorio ===
 
=== Aplicacións de escritorio ===
* [http://translate.sourceforge.net/wiki/virtaal/index Virtaal]
+
* Poedit
* [http://userbase.kde.org/Lokalize Lokalize]
+
* Virtaal
* [http://projects.gnome.org/gtranslator/ GTranslator]
+
* Lokalize
* [http://www.omegat.org/ OmegaT]
 
 
 
 
=== Aplicacións en liña ===
 
=== Aplicacións en liña ===
 
* Pootle
 
* Pootle
* [https://www.transifex.com/ Transifex]
 
* [https://launchpad.net/ Launchpad]
 

Please note that all contributions to Proxecto Trasno are considered to be released under the Attribution-Share Alike 3.0 Unported (see Proxecto Trasno:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)