データベース内の単語を翻訳することは可能ですか?標準ツールであるpythonsetup.pyextract_messagesを使用し、ファイルlocale / fr / LC_MESSAGES/*。poを使用して翻訳します。
2 に答える
可能です。データベースから返されたテキストをTranslationStringに渡すだけです。
TranslationStringFactory(domain)
文字列を作成してローカライザーに渡すために使用できます。あなたが持っているかもしれない問題はデータベースから文字列を抽出することです。どうすればよいかわかりませんが、エクストラクタを渡してデータベースからメッセージを抽出できる可能性があります。
もう少し良いかもしれないもう1つの方法は、文字列を含むダミーファイルを作成することです。gettextのような形式のファイルにすべてを抽出します。
あなたはそれをリビジョンに追加することができ、現在のメッセージエクストラクタは通常のようにテキストを取得します
編集
データベースへの保存方法は常にかなりカスタムであるため、私が知る限り、そのようなツールはありません。しかし、それは簡単に書くことができるはずです。
このようになります。
with open(registry.settings['db_locale_file'], 'w') as f:
for result in my_query_results:
f.writeline('_(u"%s")' % result.key_you_want)
これは非常に単純な例ですが、もっと複雑なはずです。ピラミッドブートストラップを使用してスクリプトを作成してから、
your_script
python setup.py extract_messages
python setup.py update_catalog
????
python setup.py compile_catalog
????
#profit!
はい、可能です。ファイルの行末に翻訳する必要のあるフィールドを追加するスクリプトを実装する必要がありますlocale/project_name.pot
例えば:
pyramid_i18n_howto / views.py:7 テンプレートに追加するmsgid"Myi18n project" #field_id msgstr ""#表示するラベル デフォルト:ドキュメントを検索 pyramid_i18n_howto / templates / mytemplate.pt:37 msgid "search_documentation" msgstr ""
また、ファイル内の言語ごとに追加しますlocale/it/project_name.po
詳細はこちらをご覧ください