Django makemessage は i18n ファイルを生成し、翻訳をより簡単にすることができます。
tornado は CSV 形式と gettext 形式の両方に対応していますが、appengine で使用するため、CSV 形式しか使用できません。
そのため、コードとテンプレートのスキャンに基づいて竜巻ベースのこれらの CSV ファイルを生成する方法を探しています。
Django makemessage は i18n ファイルを生成し、翻訳をより簡単にすることができます。
tornado は CSV 形式と gettext 形式の両方に対応していますが、appengine で使用するため、CSV 形式しか使用できません。
そのため、コードとテンプレートのスキャンに基づいて竜巻ベースのこれらの CSV ファイルを生成する方法を探しています。
わかりました、あなたは少し混乱していると思います。gettext は Google の django.util 実装からエクスポートされるため、appengine 内から gettext および po/mo ファイルを使用できます(これに関する議論はgoogle-appengine google groupにあります)。
from django.utils.translation import gettext as _
私は AppEngine CSV の i18n 形式に精通していませんが、 tornado のコードとxgettextを使用してテンプレートから国際化された文字列を抽出する非常に簡単な方法があります。基本的にコマンド ラインから python を強制するだけです。例として:
xgettext -L Python -o myproject.pot *.html
このコマンドは、現在のディレクトリの *.html からすべての i18n された文字列を取得し、それらを myproject.pot に配置します。そのファイルを初期化して、たとえば ./it_IT/myproject.po に変換できます。商用またはオープンソースのツールを使用して ( poeditまたはpootleをお勧めします)、すべての文字列を変換したら、 Translate Toolkit の po2csvを使用してファイルを CVS に変換できます。これもpythonで書かれています:
po2csv -i it_IT/myproject.po -o it_IT/myproject.csv
この形式はlocation:codeLine,source,target
非常に単純で、必要な他の形式に簡単に変換できます (私は appengine の i18n CSV 形式に慣れていません)。 -o 引数なしで po2csv を呼び出し、STDOUT から出力をパイプすることができます。
それがあなたの質問を解決するかどうかはわかりませんが、po/pot/mo を期待して翻訳を処理したり、翻訳メモリ/スペルチェッカーなどを使って作業してください....それについてさらに助けが必要な場合はお知らせください。
tornado-babelと呼ばれる新しいモジュールを作成しました。このモジュールには、tornado テンプレートから翻訳可能な文字列を抽出するための、babel 用のエクストラクタが含まれています。CSV ファイルは作成されませんが、標準のポット ファイルが作成されます。