Difference between revisions of "Converter .po e .ts a .tmx"
(→Converter varios ficheiros .po a un só ficheiro .tmx) |
m (→Converter varios ficheiros .po a un só ficheiro .tmx) |
||
(27 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_. | + | 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> | ||
+ | |||
== Traballo básico == | == Traballo básico == | ||
=== Converter un só ficheiro .po a .tmx === | === Converter un só ficheiro .po a .tmx === | ||
− | Neste caso empregaremos as ferramentas «''translate-toolkit''», | + | 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: | :*En Debian: | ||
::<code>apt-get install translate-toolkit python python-dev</code> | ::<code>apt-get install translate-toolkit python python-dev</code> | ||
Line 16: | Line 17: | ||
↓ ↓ ↓ ↓ ↓ | ↓ ↓ ↓ ↓ ↓ | ||
↓ ↓ ↓ ↓ nome que terá o ficheiro «.tmx» resultante | ↓ ↓ ↓ ↓ nome que terá o ficheiro «.tmx» resultante | ||
− | ↓ ↓ ↓ código do idioma final ( | + | ↓ ↓ ↓ código do idioma final (como parámetro da opción -l) |
↓ ↓ opción (obrigatoria) para indicar o idioma final (do .tmx) | ↓ ↓ opción (obrigatoria) para indicar o idioma final (do .tmx) | ||
↓ nome do ficheiro «.po» orixinal | ↓ nome do ficheiro «.po» orixinal | ||
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. | + | Empregamos como exemplo a obtención dun ficheiro «.tmx» que conteña as traducións do Ubuntu 12.04 Precise |
− | :1. | + | :'''1.''' Imos á páxina: |
::https://translations.launchpad.net/ubuntu/precise/+language-packs | ::https://translations.launchpad.net/ubuntu/precise/+language-packs | ||
− | ::á dereita | + | ::á 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 | + | ::Premendo na data/hora accedemos á descarga do ficheiro .tar.gz |
− | :2. | + | :'''2.''' Unha vez descargado, descomprimímolo e buscamos o «noso paquete de idioma» e accedemos a el |
− | ::<code>cd /rosetta- | + | ::<code>cd /rosetta-precise/gl</code> |
− | :3. | + | :'''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. | + | :'''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 > | + | ::<code>find LC_MESSAGES/ -name "*.po" > lista_ficheiros_Ubuntu1204.gl.txt</code> |
− | :5. | + | :'''5.''' A seguir construiremos un único ficheiro «.po» |
− | ::<code>msgcat -f | + | ::<code>msgcat -f lista_ficheiros_Ubuntu1204.gl.txt -u -o TM_TodoUbuntu1204.gl.po</code> |
− | :6. | + | :'''6.''' E, para rematar, construímos o ficheiro «.tmx» resultante |
− | ::<code>po2tmx -l gl | + | ::<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}} | ||
== Operacións complexas == | == Operacións complexas == | ||
+ | Documentación de referencia: | ||
+ | *http://code.google.com/p/sgarlatur/wiki/MergingTMXs | ||
+ | |||
+ | |||
+ | === 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: | ||
+ | ::http://www.omegat.org/en/resources.html | ||
+ | Premendo na entrada '''TMXMerger''' (á dereita), lévanos á descarga dun ficheiro .zip | ||
+ | |||
+ | ou | ||
+ | ::<code>wget http://www.omegat.org/resources/TMXMerger.zip</code> | ||
+ | Unha vez descargado, descomprimímolo en ~/ (o noso «Cartafol persoal», así o recomendo, aínda que poderemos descomprimilo onde nos pete) | ||
+ | ::<code>unzip TMXMerger.zip -d ~/</code> | ||
+ | Executamos: | ||
+ | ::<code>java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMXorixe1.tmx TMXorixe2.tmx [TMXorixe3.tmx]Final.tmx</code> | ||
+ | |||
+ | |||
+ | === 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» | ||
+ | |||
+ | Dádelle permiso de execución con <code>chmod +x nome-script</code> | ||
+ | |||
+ | Executade o script (<code>./nome-script</code>), 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 ==== |
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
Line 75: | Line 140: | ||
done | done | ||
− | + | java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMX/*.tmx Total.tmx | |
− | |||
− | java -jar ~/TMXMerger/TMXMerger-1.1.jar source=gl TMX/*.tmx | ||
</pre> | </pre> |
Latest revision as of 11:58, 4 November 2014
This HowTo is available in
Contents
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:
Premendo na entrada TMXMerger (á dereita), lévanos á descarga dun ficheiro .zip
ou
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