0

固定文字列(ラベル、お知らせなど)が大量にあるWebサイトの場合、プロジェクトに国際化を追加します。元のコードでキーワードと実際のフレーズを使用した経験を知りたいですか?どちらを使用するのが良いですか?

この例を確認してください-djangoで:

本当のフレーズ:

<p>
    {% trans "Welcome to my website" %}
</p>

キーワード:

<p>
    {% trans "WELCOME_MESSAGE" %}
</p>

もちろん、実際のフレーズを使用する方が簡単ですが、私にはいくつかの悪い経験があります。{% trans "contacts" %}ページのタイトルとして使用され、他の場所でのようなフレーズで使用される一般的な単語を考えてみましょう。ページのタイトルとしての{{selected_contacts_count}}{% trans "contacts" %}翻訳は、フレーズ内の単語としてのcontacts翻訳とは異なる可能性があるcontactsため、これは矛盾です。

4

3 に答える 3

2

これは主に個人的な好みの問題だと思います。

実際のフレーズを使用すると、前述の衝突に遭遇します。たとえば、次のように使用できます。

{% blocktrans %}{{selected_contacts_count}} contacts{% endblocktrans %}代わりは。

キーワードを使用すると、すべての翻訳に固有のキーワードを作成する必要がありますが、プロジェクトの成長時にはそれほど簡単ではない可能性があるため、事前に何らかの命名規則を考案することをお勧めします。

于 2012-09-04T20:27:44.153 に答える
2

もちろん、そのキーワードは、プログラマーにとって読みやすいだけでなく、ファイル内のそれらの文字列をより速く見つけることができ、1つの言語(英語など)に「縛られていない」ため、より優れています。

于 2012-09-04T19:04:56.597 に答える
1

キーワード。

どこか、いつか、どこかで、翻訳テーブルが必要になります。フラットファイルの場合もあれば、dbストアの場合もありますが、おそらく次のようになります。

field | language | message

キーワードベースのシステムの構築と保守がはるかに簡単になります。

WELCOME_MESSAGE | EN | Welcome to our online h ome
WELCOME_MESSAGE | FR | bienvenue chez nous en ligne
WELCOME_MESSAGE | SW | kuwakaribisha nyumbani kwetu online

これらの変換にデータを補間する場合、発生する可能性のある1つの問題は、複数化に対処する必要があることです。

There is one item.  
There are four items.

You have one new message.
You have four new messages.

ですから、前進するときはそれを覚えておいてください。

于 2012-09-04T22:11:13.747 に答える