プロジェクトに国際化を実装する必要があるため、静的コンテンツには i18n を使用し、モデルにはアプリ django-modeltranslation を使用したいと考えています。次の言語をサポートしています。
en-us (デフォルト) nl-nl de-de fr-fr es-es
私はオランダ人ですが、django はオランダ語に変わりません。私は英語のウィンドウを持っていますが、クロムは国際化をテストするためにオランダ語に設定されています。これは唯一の問題ではありません。デフォルトの言語が変更されたときにモデルが自動的に翻訳されるだけです。デフォルト言語をオランダ語に設定すると、すべてのモデルでオランダ語の翻訳が表示されますが、静的コンテンツは英語のままです。
注: 私は compilemessages を使用し、サーバーを再起動しました
設定.py
USE_I18N = True
LANGUAGE_CODE = 'en-us'
gettext = lambda s: s
LANGUAGES = (
('en-us', gettext('English')),
('nl-nl', gettext('Dutch')),
('fr-fr', gettext('French')),
('de-de', gettext('German')),
('es-es', gettext('Spain')),
)
LOCALE_PATHS = ('/vagrant/locale', )
/vagrant/locale/en-us/LC_MESSAGES/django.po (エラーを表示する短縮ファイル)
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-05-17 23:14+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Language: en-us\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: PyDiving/settings.py:170
msgid "English"
msgstr ""
#: PyDiving/settings.py:171
msgid "Dutch"
msgstr ""
#: PyDiving/settings.py:172
msgid "French"
msgstr ""
#: PyDiving/settings.py:173
msgid "German"
msgstr ""
#: PyDiving/settings.py:174
msgid "Spain"
msgstr ""
#: company/templates/company/company_detail.html:22
msgid "City"
msgstr ""
/vagrant/locale/nl-nl/LC_MESSAGES/django.po (投稿を短くするために違いのみを表示)
"Language: nl-nl\n"
#: company/templates/company/company_detail.html:28
msgid "Postal Code"
msgstr "Postcode"
#: company/templates/company/company_detail.html:34
msgid "City"
msgstr "Stad"
テンプレート会社/templates/company/company_detail.html
{% load i18n %}
{{ company.text }} # this is the model translation, this will change when i change the default language
{% trans "City" %} # this always says "City"
デフォルト言語が en-us の場合の結果
EnglishCity
ここで、「英語はモデルのコンテンツです」
デフォルト言語 nl-nl
NederlandsCity