2013-11-22 14 views
11

Djangoの国際化を開始し、{% blocktrans %}のベストプラクティスを理解しようとしています。各段落に1つずつ{% blocktrans %}を使用することをお勧めしますか、多くの段落を含む1つの大きな{% blocktrans %}が必要ですか?Django i18n:{%blocktrans%}ブロックのサイズとフォーマットをお勧めしますか?

一つの大きな{% blocktrans %}を持つことは高速であり、私のテンプレートルックきれいになりますが、私の懸念があることである:それは私が変更した場合は翻訳文字列

  • の一部になるためにHTMLタグ(<p>...</p>のような)を引き起こす

    • 私の巨大なブロックの1つの部分に1つのもの、msgidは、それは他の段落に影響を与える可能性があるように見える変更されます。もし私がより小さいブロックを持っていれば、その変化はもっと孤立しているだろうと思います。
    • 段落間に改行を追加/削除するような書式変更を行うと、msgidが変更されます。

    また、書式設定に関する疑問もあります。 {% blocktrans %}の中に改行があると合併症はありますか?または先頭にスペースがある?例:

    {% blocktrans %} 
        You have {{ num_messages }} messages. 
        Another sentence. 
    {% blocktrans %} 
    

    推奨事項はありません。

  • +0

    ブロックトランスに入れるほどのものがある場合は、コンテンツ管理システムを使用することを検討することをお勧めします。必ずしも完全に壊れたCMSではなく、少なくとも少しハードコードされたものである必要はありません。 –

    +0

    (@ brunodesthuilliersによって書かれたコメントは、私が編集前に質問で持っていたコードサンプルを参照しています。) – RexE

    +0

    それでも意味があります。 –

    答えて

    9

    複数の小{% blocktrans %}ブロックは、様々な理由のために有益である:

    • 各翻訳可能な文字列は翻訳ファイルで終わると、これらのファイルは、言語を話す人々が翻訳可能でなければなりません。彼らはHTMLタグの正確さに対処する必要はありませんが、純粋にいくつかの文章をその言語に翻訳する必要があります。マイナーマークアップは問題ありませんが、ページ全体のHTMLではありません。

      このように考えることもできます。翻訳可能な文字列のマークアップが少ないほど、翻訳者(技術的背景があるかもしれないし、そうでないかもしれない)のエラーの可能性が低くなります。

    • 巨大な翻訳ブロックが変更された場合、各翻訳者はすべての翻訳を再度行う必要があります。小さな翻訳可能なブロックを使用する場合は、既存の翻訳された段落/テキストのほとんどを再利用することができ、実際に変更された部分の翻訳を更新するだけで済みます。

    質問に答えるには、段落ごとのblocktransタグが適しています。段落を変更すると、その段落だけが翻訳者によって再度確認される必要があります。

    空白と改行について:デフォルトでは、これらはPO翻訳ファイルになります。このオプションは、置き換え、開始及び{%blocktrans%}タグのコンテンツの末尾から改行文字が削除され

    :ジャンゴ1.7にblocktransは、空白や改行(source)を除去trimmedオプションを有することになります行の先頭と末尾にある空白を削除し、空白文字を使用してすべての行を1つにマージして区切ります。これは、インデント文字がPOファイルの対応するエントリに終わることなく、{%blocktrans%}タグの内容を字下げするために非常に便利です。これにより、翻訳プロセスが簡単になります。

    +0

    シメオンありがとう! – RexE

    関連する問題