私はsomeone else's Django registration templatesを見ていて、すべてのファイルに{% load i18n %}
という行があります。 i18n
とは何ですか?Djangoではi18nとは何ですか?
私はそれがInternational and localizationと関係があることを知っていますが、誰かが説明して詳細な例を挙げることができますか?ありがとう。
私はsomeone else's Django registration templatesを見ていて、すべてのファイルに{% load i18n %}
という行があります。 i18n
とは何ですか?Djangoではi18nとは何ですか?
私はそれがInternational and localizationと関係があることを知っていますが、誰かが説明して詳細な例を挙げることができますか?ありがとう。
テンプレートに使用できる{% trans "Text" %}
などの変換タグを読み込みます。あなたがそれを使用しない場合は、テンプレートであなたが翻訳のために使用されるの.poファイルを作成します./manage.py makemessages
を実行して、すべてのこのような文字列を集めることができ、動的ではありませんすべてのテキストにtrans
タグを使用するときは、{% load i18n %}
を削除することができます。
{% load i18n %}
が国際化に必要です。国際化の目的は、1つのアプリケーションで複数の言語を読むことができるようにすることです。これを行うには、翻訳文字列と呼ばれるいくつかのフックが必要です。 Djangoプロジェクトの翻訳可能にするためにはhttps://docs.djangoproject.com/en/1.10/topics/i18n/
、あなたは最小限を追加する必要があります。これらのタグにテンプレートのアクセス権を与えるには、
は、詳細はこの参照してください...あなたのテンプレートの上部に向かって{% 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/
大変感謝!あなたは私にいくつかのテストやWeb上での検索を行い、より多くのことを学ぶために十分なキーワードをくれました。 – hobbes3