Difference between revisions of "Converter .po e .ts a .tmx"

From Proxecto Trasno
m (Facer un só .tmx a partires de varios ficheiros .tmx)
m (Converter varios ficheiros .po a un só ficheiro .tmx)
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
<center>
 
<center>
Este como está disponible en [[File:flag_es.png]] castellano en el [http://www.galpon.org/wiki/index.php/Convertir_.po_a_.tmx ''wiki'' de '''Galpon'''].<br>
+
Este como está disponible en [[File:flag_es.png]] castellano en el [http://www.galpon.org/wiki/index.php/Convertir_.po_y_.ts_a_.tmx ''wiki'' de '''Galpon'''].<br>
This HowTo is available in [[File:flag_en.png]] english in the [[Convert .po to .tmx|''in '''this''' wiki'']].
+
This HowTo is available in [[File:flag_en.png]] english in the [[Convert .po and .ts to .tmx|''in '''this''' wiki'']].
 
</center>
 
</center>
  
Line 22: Line 22:
 
  orde de conversión po a(to) tmx
 
  orde de conversión po a(to) tmx
 
</pre>
 
</pre>
 +
 +
 +
=== Traballando con ficheiros .ts como orixinais ===
 +
Ás veces atopamonos con que os ficheiros de tradución teñen o formato de '''QtLinguist''', o formato '''.ts'''. Este formato, para poder convertelo a TMX debe pasar antes polo formato .po (eu non coñezo outro método fiábel).
 +
 +
Normalmente os que traballamos con ese formato, xa temos instalado o '''Qt 4 Linguist''' de non ser así, para seguir estes pasos terás que instalalo. En debian:
 +
: <code>apt-get install qt4-dev-tools</code>.
 +
 +
Para converter un ficheiro '''.ts''' a un ficheiro '''.po''' abrimos nun terminal o cartafol no que temos o ficheiro '''.ts''', e nel (no terminal) executamos:
 +
: <code>lconvert -i ficheiro.ts -o ficheiro.po</code>
 +
Con isto obteremos un ficheiro '''.po''', mais debemos ter coidado cos seguintes pasos, o máis importante '''non''' abrilo con '''POEdit''', xa que faise un lío coa codificación UTF-8 e veremos que os tiles e demais están en ''ascii''. Vaiamos a modo e fagamos o seguinte:
 +
* Abrimos o ficheiro cun editor de texto simple como Vi(m), Nano, Leafpad, Gedit, Kate. etc, no principio, onde as cabeceiras, veremos esta entrada:
 +
#, fuzzy
 +
msgid ""
 +
msgstr ""
 +
"X-Virgin-Header: remove this line if you change anything in the header.\n"
 +
"X-Language: gl\n"
 +
* Substituimos/borramos esas liñas para que nos queden así:
 +
#, fuzzy
 +
msgid ""
 +
msgstr ""
 +
""
 +
* Unha vez gardado, poderemos abrilo co Virtaal co que xeraranse as cabeceiras oportunas (supoño que outros aplicativos de CAT como Lokalize ou OmegaT tamén o farán, mais non puiden comprobalo)
 +
* Temos outra alternativa, modificar directamente co editor de texto simple e substituir por:
 +
#, fuzzy
 +
msgid ""
 +
msgstr "" 
 +
"Last-Translator: Pepe Perez <pepe@perez.com>\n"
 +
"Language-Team: proxecto@trasno.net\n"
 +
"Language: gl\n"
 +
"Content-Type: text/plain; charset=UTF-8\n"
 +
"Content-Transfer-Encoding: 8bit\n"
 +
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 +
: Con isto xa poderemos abrilo coa ferramenta CAT que nos pete, para axustar calquera dos datos das cabeceiras.
 +
* A partires de aquí tratámolo como un ficheiro '''.po''' calquera.
  
  
 
=== Converter varios ficheiros .po a un só ficheiro .tmx ===
 
=== Converter varios ficheiros .po a un só ficheiro .tmx ===
 
Empregamos como exemplo a obtención dun ficheiro «.tmx» que conteña as traducións do Ubuntu 12.04 Precise
 
Empregamos como exemplo a obtención dun ficheiro «.tmx» que conteña as traducións do Ubuntu 12.04 Precise
:'''1.-''' Imos á páxina:
+
:'''1.''' Imos á páxina:
 
::https://translations.launchpad.net/ubuntu/precise/+language-packs
 
::https://translations.launchpad.net/ubuntu/precise/+language-packs
 
::á dereita fixámonos en:
 
::á dereita fixámonos en:
 
:::Latest language packs
 
:::Latest language packs
 
:::Base pack:  '''<font color="#2554C7">2012-05-08 10:57:58 UTC</font>'''
 
:::Base pack:  '''<font color="#2554C7">2012-05-08 10:57:58 UTC</font>'''
::Premendo na data/hora accedemos á descarga du ficheiro .tar.gz
+
::Premendo na data/hora accedemos á descarga do ficheiro .tar.gz
:'''2.-''' Unha vez descargado, descomprimímolo e buscamos o «noso paquete de idioma» e accedemos a el
+
:'''2.''' Unha vez descargado, descomprimímolo e buscamos o «noso paquete de idioma» e accedemos a el
 
::<code>cd /rosetta-precise/gl</code>
 
::<code>cd /rosetta-precise/gl</code>
:'''3.-''' A fin de traballar nun cartafol no que non teñamos que andar perdidos entre un feixe de ficheiros, faremos todo o traballo nesta localización desde o terminal.
+
:'''3.''' A fin de traballar nun cartafol no que non teñamos que andar perdidos entre un feixe de ficheiros, faremos todo o traballo nesta localización desde o terminal.
:'''4.-''' O primeiro que imos facer é construír un ficheiro cun listado de todos os ficheiros «.po» que teñamos
+
:'''4.''' O primeiro que imos facer é construír un ficheiro cun listado de todos os ficheiros «.po» que teñamos
::<code>find LC_MESSAGES/*.po > TodoUbuntu1204.txt</code>
+
::<code>find LC_MESSAGES/ -name "*.po" > lista_ficheiros_Ubuntu1204.gl.txt</code>
:'''5.-''' A seguir construiremos un único ficheiro «.po»  
+
:'''5.''' A seguir construiremos un único ficheiro «.po»  
::<code>msgcat -f TodoUbuntu1204.txt -u -o TodoUbuntu1204.po</code>
+
::<code>msgcat -f lista_ficheiros_Ubuntu1204.gl.txt -u -o TM_TodoUbuntu1204.gl.po</code>
:'''6.-''' E, para rematar, construímos o ficheiro «.tmx» resultante
+
:'''6.''' E, para rematar, construímos o ficheiro «.tmx» resultante
::<code>po2tmx -l gl TodoUbuntu1204.po TodoUbuntu1204.tmx</code>
+
::<code>po2tmx -l gl TM_TodoUbuntu1204.gl.po TM_TodoUbuntu1204.gl.tmx</code>
 
{{Nota|Nestes pasos anteriores só empregamos as ferramentas «''translate-toolkit''» indicadas no paso anterior}}
 
{{Nota|Nestes pasos anteriores só empregamos as ferramentas «''translate-toolkit''» indicadas no paso anterior}}
  
Line 48: Line 83:
  
  
=== Facer un só .tmx a partires de varios ficheiros .tmx ===
+
=== Facer un só .tmx a partir de varios ficheiros .tmx ===
 
Para este proceso necesitamos dispor dun complemento de OmegaT chamado '''TMXMerger''', para obtelo imos á páxina:
 
Para este proceso necesitamos dispor dun complemento de OmegaT chamado '''TMXMerger''', para obtelo imos á páxina:
 
::http://www.omegat.org/en/resources.html
 
::http://www.omegat.org/en/resources.html
Line 60: Line 95:
 
::<code>java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMXorixe1.tmx TMXorixe2.tmx [TMXorixe3.tmx]Final.tmx</code>
 
::<code>java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMXorixe1.tmx TMXorixe2.tmx [TMXorixe3.tmx]Final.tmx</code>
  
=== Automatizando o proceso ===
+
 
Cando como no exemplo anterior co Ubuntu 12.04 Precise atopámonos con 1.67 ficheiros, temos que buscar algunha solución máis práctica. A min a mellor que se me ocorreu foi a de facer un «script» que automatice todo o proceso.
+
=== Automatizar o proceso ===
 +
Cando como no exemplo anterior co Ubuntu 12.04 Precise atopámonos con máis de1.600 ficheiros, temos que buscar algunha solución máis práctica. A min a mellor que se me ocorreu foi a de facer un «script» que automatice todo o proceso.
  
 
Para elo, copiade o seguinte contido nun editor de texto simple como Vi(m), Nano, Leafpad, Gedit, Kate. etc... e dádelle o nome que vos pareza mellor, e gardádeo nun cartafol, nun nivel superior a aquel no que teñades os «.po»
 
Para elo, copiade o seguinte contido nun editor de texto simple como Vi(m), Nano, Leafpad, Gedit, Kate. etc... e dádelle o nome que vos pareza mellor, e gardádeo nun cartafol, nun nivel superior a aquel no que teñades os «.po»

Latest revision as of 11:58, 4 November 2014

Este como está disponible en
Error creating thumbnail: Unable to save thumbnail to destination
castellano en el wiki de Galpon.
This HowTo is available in
Error creating thumbnail: Unable to save thumbnail to destination
english in the in this wiki.


Traballo básico[edit]

Converter un só ficheiro .po a .tmx[edit]

Neste caso empregaremos as ferramentas «translate-toolkit», para elo, se non dispomos delas, teremos que instalalas xunto coas de desenvolvemento «python» e «python-dev»

  • En Debian:
apt-get install translate-toolkit python python-dev

É tan sinxelo como executar, nun terminal, a seguinte orde:

	po2tmx ficheiro.po -l gl ficheiro.tmx

	   ↓        ↓       ↓  ↓      ↓
	   ↓        ↓       ↓  ↓      nome que terá o ficheiro «.tmx» resultante 
	   ↓        ↓       ↓  código do idioma final (como parámetro da opción -l)           
	   ↓        ↓       opción (obrigatoria) para indicar o idioma final (do .tmx) 
	   ↓        nome do ficheiro «.po» orixinal
	   orde de conversión po a(to) tmx


Traballando con ficheiros .ts como orixinais[edit]

Ás veces atopamonos con que os ficheiros de tradución teñen o formato de QtLinguist, o formato .ts. Este formato, para poder convertelo a TMX debe pasar antes polo formato .po (eu non coñezo outro método fiábel).

Normalmente os que traballamos con ese formato, xa temos instalado o Qt 4 Linguist de non ser así, para seguir estes pasos terás que instalalo. En debian:

apt-get install qt4-dev-tools.

Para converter un ficheiro .ts a un ficheiro .po abrimos nun terminal o cartafol no que temos o ficheiro .ts, e nel (no terminal) executamos:

lconvert -i ficheiro.ts -o ficheiro.po

Con isto obteremos un ficheiro .po, mais debemos ter coidado cos seguintes pasos, o máis importante non abrilo con POEdit, xa que faise un lío coa codificación UTF-8 e veremos que os tiles e demais están en ascii. Vaiamos a modo e fagamos o seguinte:

  • Abrimos o ficheiro cun editor de texto simple como Vi(m), Nano, Leafpad, Gedit, Kate. etc, no principio, onde as cabeceiras, veremos esta entrada:
#, fuzzy
msgid ""
msgstr ""
"X-Virgin-Header: remove this line if you change anything in the header.\n"
"X-Language: gl\n"
  • Substituimos/borramos esas liñas para que nos queden así:
#, fuzzy
msgid ""
msgstr ""
""
  • Unha vez gardado, poderemos abrilo co Virtaal co que xeraranse as cabeceiras oportunas (supoño que outros aplicativos de CAT como Lokalize ou OmegaT tamén o farán, mais non puiden comprobalo)
  • Temos outra alternativa, modificar directamente co editor de texto simple e substituir por:
#, fuzzy
msgid ""
msgstr ""  
"Last-Translator: Pepe Perez <pepe@perez.com>\n"
"Language-Team: proxecto@trasno.net\n"
"Language: gl\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
Con isto xa poderemos abrilo coa ferramenta CAT que nos pete, para axustar calquera dos datos das cabeceiras.
  • A partires de aquí tratámolo como un ficheiro .po calquera.


Converter varios ficheiros .po a un só ficheiro .tmx[edit]

Empregamos como exemplo a obtención dun ficheiro «.tmx» que conteña as traducións do Ubuntu 12.04 Precise

1. Imos á páxina:
https://translations.launchpad.net/ubuntu/precise/+language-packs
á dereita fixámonos en:
Latest language packs
Base pack: 2012-05-08 10:57:58 UTC
Premendo na data/hora accedemos á descarga do ficheiro .tar.gz
2. Unha vez descargado, descomprimímolo e buscamos o «noso paquete de idioma» e accedemos a el
cd /rosetta-precise/gl
3. A fin de traballar nun cartafol no que non teñamos que andar perdidos entre un feixe de ficheiros, faremos todo o traballo nesta localización desde o terminal.
4. O primeiro que imos facer é construír un ficheiro cun listado de todos os ficheiros «.po» que teñamos
find LC_MESSAGES/ -name "*.po" > lista_ficheiros_Ubuntu1204.gl.txt
5. A seguir construiremos un único ficheiro «.po»
msgcat -f lista_ficheiros_Ubuntu1204.gl.txt -u -o TM_TodoUbuntu1204.gl.po
6. E, para rematar, construímos o ficheiro «.tmx» resultante
po2tmx -l gl TM_TodoUbuntu1204.gl.po TM_TodoUbuntu1204.gl.tmx
Nota: Nestes pasos anteriores só empregamos as ferramentas «translate-toolkit» indicadas no paso anterior

Operacións complexas[edit]

Documentación de referencia:


Facer un só .tmx a partir de varios ficheiros .tmx[edit]

Para este proceso necesitamos dispor dun complemento de OmegaT chamado TMXMerger, para obtelo imos á páxina:

http://www.omegat.org/en/resources.html

Premendo na entrada TMXMerger (á dereita), lévanos á descarga dun ficheiro .zip

ou

wget http://www.omegat.org/resources/TMXMerger.zip

Unha vez descargado, descomprimímolo en ~/ (o noso «Cartafol persoal», así o recomendo, aínda que poderemos descomprimilo onde nos pete)

unzip TMXMerger.zip -d ~/

Executamos:

java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMXorixe1.tmx TMXorixe2.tmx [TMXorixe3.tmx]Final.tmx


Automatizar o proceso[edit]

Cando como no exemplo anterior co Ubuntu 12.04 Precise atopámonos con máis de1.600 ficheiros, temos que buscar algunha solución máis práctica. A min a mellor que se me ocorreu foi a de facer un «script» que automatice todo o proceso.

Para elo, copiade o seguinte contido nun editor de texto simple como Vi(m), Nano, Leafpad, Gedit, Kate. etc... e dádelle o nome que vos pareza mellor, e gardádeo nun cartafol, nun nivel superior a aquel no que teñades os «.po»

Dádelle permiso de execución con chmod +x nome-script

Executade o script (./nome-script), e tomadeo con paciencia.

Nota: MOI IMPORTANTE, o traballo con este paquete de Ubuntu 12.04 Precise, precisa, para el só 1GB de memoria, polo que en equipos cortiños de memoria pode levarlle moito tempo.


Código do script[edit]

#!/bin/sh

POdir=LC_MESSAGES
#POdir=PO

if [ ! -f ~/TMXMerger/TMXMerger-1.1.jar ]; then
    echo ""
    echo "AVISO:"
    echo ""
    echo "ten que obter o ficheiro TMXMerger.zip"
    echo "e descomprimilo no seu directorio persoal"
    echo ""
    echo "Pode obtelo en:"
    echo "    http://www.omegat.org/en/resources.html"
    echo ""
    exit
fi


find $POdir/ *.po  > POlist
sed -i "s+$POdir\/++" POlist
sed -i "s+.po++" POlist

[ -d TMX ] || mkdir TMX

cat POlist | while read poname

do
  po2tmx $POdir/$poname.po -l gl TMX/$poname.tmx
done

java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMX/*.tmx Total.tmx