2012-03-08 12 views

答えて

17

テンプレートに使用できる{% trans "Text" %}などの変換タグを読み込みます。あなたがそれを使用しない場合は、テンプレートであなたが翻訳のために使用されるの.poファイルを作成します./manage.py makemessagesを実行して、すべてのこのような文字列を集めることができ、動的ではありませんすべてのテキストにtransタグを使用するときは、{% load i18n %}

を削除することができます。

+2

大変感謝!あなたは私にいくつかのテストやWeb上での検索を行い、より多くのことを学ぶために十分なキーワードをくれました。 – hobbes3

5

{% load i18n %}が国際化に必要です。国際化の目的は、1つのアプリケーションで複数の言語を読むことができるようにすることです。これを行うには、翻訳文字列と呼ばれるいくつかのフックが必要です。 Djangoプロジェクトの翻訳可能にするためにはhttps://docs.djangoproject.com/en/1.10/topics/i18n/

2

、あなたは最小限を追加する必要があります。これらのタグにテンプレートのアクセス権を与えるには、

は、詳細はこの参照してください...あなたのテンプレートの上部に向かって {% load i18n %}を置きますPythonコードとテンプレートへのフック量。これらのフックは translation stringsと呼ばれます。彼らはDjangoに次のように伝えます:「このテキストはその言語で翻訳されていれば、エンドユーザの言語に翻訳する必要があります」翻訳可能な文字列をマークするのはあなたの責任です。システムはそれが知っている文字列のみを翻訳することができます。

Djangoの国際化フックはデフォルトでオンになっています。つまり、フレームワークの特定の場所にi18n関連のオーバーヘッドが少しあることを意味します。国際化を使用しない場合は、設定ファイルにUSE_I18N = Falseを設定するのに2秒かかるでしょう。 Djangoは国際化機構をロードしないようにいくつかの最適化を行います。また、TEMPLATE_CONTEXT_PROCESSORSの設定から['django.core.context_processors.i18n']を削除することもできます。

詳細:https://docs.djangoproject.com/en/dev/topics/i18n/translation/