Difference between revisions of "Translating gettext"

From Apertium
Jump to navigation Jump to search
Line 53: Line 53:
==See also==
==See also==
* [[Format handling]]
* [[Format handling]]
* [https://github.com/rory/apertium-po-l10n apertium-po-l10n] by Rory McCann, [http://www.technomancy.org/language/apertium-auto-translate-gettext/ apertium-po described here]


[[Category:Tools]]
[[Category:Tools]]

Revision as of 18:03, 23 March 2011

Apertium does not have a built-in format handler for gettext / .po-files; however, there are excellent tools available which can use Apertium to translate these files. For command-line and batch usage, Pology is recommended; if you want Apertium to give suggestions in a po-editor, try Virtaal.

Pology

The simplest and best command-line method of translating gettext po-files with Apertium is by using the Python package Pology. Follow the instructions on the link to set it up, then do something like:

 $ pomtrans -s en -t es apertium es.po 

This assumes the source language of es.po is "en". However, you might want to translate from Swedish to Danish using the files sv.po and da.po. In that case, you need to supply the "-p" argument:

 $ pomtrans -s sv -t da -p sv.:da. apertium da.po

In case you want to use a mode that's not named like "sl-tl", like "nb-nn_a", use the -M option:

 $ pomtrans -s nb -t nn -p nn.:nb. -M nb-nn_a apertium nn.po

(this again assumes that there's an nb.po file in the same directory)

You might also want to specify the path to apertium (eg. if you installed apertium in /usr/local, not /usr), and the accelerator Key; the full command then becomes:

 $ pomtrans -s nb -t nn -p nn.:nb. -M nb-nn_a -T /usr/local/bin/apertium -a "&" apertium nn.po

pomtrans can also work recursively on directories, and will mark any MT output as fuzzy, while skipping already-translated text. See the docs/user/lingo.docbook for some excellent documentation.

pospell

A combination of pospell and Apertium can also be used to translate gettext .po files.

I had some trouble with this when I tried, pology worked perfectly however. --unhammer 08:44, 15 September 2010 (UTC)

pospell is part of the spellutils package, available through apt-get, macports, emerge, urpmi...

Example

$ cat sv.po | pospell -n - -f -p apertium -- sv-da -u > da.po

Thus if you put

#!/bin/sh
pospell -n - -f -p apertium -- -u "$@"

into a file called eg. "apertium-po", and chmod +x apertium-po, you can do

$ cat sv.po | apertium-po sv-da > da.po


Virtaal

Or you could just use the .po file editor Virtaal, which has an Apertium plugin. (So far this only works with the web service, but later version might be able to use local installations.)

See also