PoEditが.phpファイルからのものと同様に、.xmlファイルから自動的に文字列を取り出して.po/.potファイルに格納する方法を知っていますか。
XML構造は次のようになります。
<?xml version="1.0" encoding="iso-8859-1"?>
<options>
<page id="content" label="Content Options" icon="4">
<section id="post" label="Content Options">
<option id="title" type="checkbox" default="yes" label="Show post title"></option>
<option id="comments" type="checkbox" default="yes" label="Show comments link"></option>
<option id="thumb_size" type="select" default="default" label="Thumbnail Size">
<value id="default" label="Default Size, (%s)" vars="default_size"></value>
<value id="100x100" label="Small (100x100)"></value>
<value id="150x150" label="Medium (150x150)"></value>
<value id="200x200" label="Large (200x200)"></value>
</option>
</section>
</page>
</options>
"label"属性内の文字列はgettextパーサか何かによって検出されるべきです...
XLIFF
やTMX
のようなローカライズされたXMLフォーマットを使うべきです。XLIFFを.poに変換するためのツールがあります。
ソースXMLを変更できない場合、いくつかの選択肢がありますが、実際にこのXML情報をどのように出力するかによって異なります。
_()
gettextをXMLに挿入し、それを出力時に解析します。また、このツールを見て、そしてxml - > poを変換できるコマンドラインのpythonツールがいくつかあります。 http://itstool.org/
あなたがそれを試してみたい場合は、あなたはそれにあなたのフォーマットのカスタムITSルールファイルを与える必要があります。投稿したスニペットには、次の規則が適用されます。
<its:rules
xmlns:its="http://www.w3.org/2005/11/its"
its:version="1.0">
<its:translateRule translate="yes" selector="//@label"/>
</its:rules>
これをoptions.itsという名前で保存してから、次のようにitstoolを実行します。
itstool -i options.its -o somefile.pot somefile.xml
翻訳者が翻訳してPOファイル(たとえばxx.po)を渡したら、それをmoファイルにコンパイルしてから、itstoolを使用してマージします。
msgfmt -o xx.mo xx.po
itstool -m xx.mo -i options.its -o somefile.xx.xml somefile.xml
詳しくは、ドキュメントを確認してください。 http://itstool.org/documentation/