1

データベース内の単語を翻訳することは可能ですか?標準ツールであるpythonsetup.pyextract_messagesを使用し、ファイルlocale / fr / LC_MESSAGES/*。poを使用して翻訳します。

4

2 に答える 2

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!
于 2012-10-01T12:00:08.620 に答える
0

はい、可能です。ファイルの行末に翻訳する必要のあるフィールドを追加するスクリプトを実装する必要があります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

詳細はこちらをご覧ください

于 2015-02-26T14:58:26.863 に答える