Translate Toolkit & Pootle

Tools to help you make your software local

User Tools


Gettext PoファイルからTMX翻訳メモリファイルへの変換。TMXは、LISA (Localization Industry Standards Association)によって作られた翻訳メモリ交換規約です。


po2tmx [options] --language <target> <po> <tmx>


<po> is a PO file
<tmx> is a TMX file


--version プログラムのバージョンなどを表示します。
-h, --help ヘルプメッセージなどを表示します。
--manpage 万ページベースのヘルプを出力します。
--progress=PROGRESS 進歩(dots(ドット), none, bar(バー), names(名前), verbose(詳細) )を表示します。
--errorlevel=ERRORLEVEL 右のエラーレベル(none, message, exception, traceback)の表示をします。
-iINPUT, --input=INPUT po,pot書式をINPUTから読み込みます。
-xEXCLUDE, --exclude=EXCLUDE EXCLUDEの名前にマッチする名前をinputパスから除外します。
-oOUTPUT, --output=OUTPUT OUTPUTにTMX書式のファイルを書き出します。
--psyco=MODE psycoを使うと動作やモードが高速化します: none, full, profile
-lLANG, --language=LANG ターゲット言語コードを設定 (e.g. af-ZA) [required]
--source-language=LANG ソース言語コードを設定 (default: en)

po2tmx -l xh browser.po browser.tmx

Xhosa (xh) 言語の翻訳済みPOファイルbrowser.poからTMX filebrowser.tmxの作成


マークアップ 除去

po2tmx conforms to TMX v1.4 without stripping markup. See the tmx conformance page for more details.

It has not been widely tested so your mileage may vary.

TMX and PO in OmegaT

In some tools, like OmegaT, PO files are parsed without expanding escaped sequences, even though such tools use TMX for translation memory. Keep this in mind when using po2tmx, because po2tmx converts \n and \t to newlines and tabs in the TMX file. If such a TMX file is used while translating PO files in OmegaT, matching will be less than 100%.

In other tools, such as Swordfish, the PO comment “no-wrap” is interpreted in the same way as the equivalent function in XML, which may also lead to mismatches if TMXes from po2tmx are used.

There is nothing wrong with po2tmx, but if used in conjunction with tools that handle PO files differently, it may lead to less than perfect matching.


TMX with only unique segments

To create a TMX with no duplicates (in other words, only unique strings), use msgcat to first create a large PO file with non-uniques removed.

Steps for MS Windows:

1. Create a text file (say, allfiles.txt) that contains the paths of all the PO files (in Linux just use the “find” command). The file should contain one path per line (relative or absolute). In MS Windows, you can use PikyBasket. In MS Windows, make sure the file has no BOM.

2. Do: msgcat -f allfiles.txt -u -o bigpofile.po

3. Now do po2tmx on that bigpofile.po

The Toolkit's TMX versus other tools

Here is a page on support for toolkit tmx by other tools (mostly MS Windows).