2012-01-31 1 views
1

問題は:.poファイルがフラットであることです。したがって、私たちは便利な階層を持っていません。Django L10N: 'po'ファイルのフラットモデルをフラットにしない

例:私たちは私たちの.poファイル内のメッセージがたくさんあるとき

msgid "SITE_TITLE" 
msgstr "This is a title of my site" 

msgid "ABOUT_SITE_TITLE" 
msgstr "And now... about the site" 

問題が発生しました。変更したい特定のメッセージを見つけるのは難しいです。

また、.poメッセージを特定のテンプレート(htmlテンプレート)にバインドする必要があります。

明らかな解決策は、カスタムプレフィックス(たとえば、テンプレートファイルの名前)を使用することです。我々はhome.htmlを持っていると私たちのメッセージ文字列をabout.html場合は、次のようになります。

msgid "HOME:SITE_TITLE" 
msgstr "This is a title of my site" 

msgid "ABOUT:SITE_TITLE" 
msgstr "And now... about the site" 

あなたはより便利なソリューションを提供してくださいもらえますか?

答えて

1

基本的に.poファイルは、エントリが空行で区切られた通常のテキストファイルです。 1つの.poファイルを複数のファイルに分割する単純なパーサーを書くと、巨大な翻訳ファイルを処理するための簡単な解決策のように見えます。msgid "SOMETHING:のような接頭辞に基づいています。組織を複数のpoファイルに変換すると、翻訳プロセスが簡素化されます(ただし、msgidは一意にして、プレフィックスを保持する必要があります)。

私が推奨する次のツールは、django-rosettaと呼ばれています。これは、poファイルへのウェブベースのアクセスを提供し、編集を処理し、ファイル(すなわちテンプレート)内の翻訳文字列の出現を表示する。

+1

ありがとうございました!非常に良いアドバイスです。 – sergzach

関連する問題