我使用内部{%trans%}在英文中编写了模板。
我决定把它翻译成法语,所以我把它放在设置中:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
LANGUAGES = (
('en', _('English')),
('fr', _('French')),
)
LANGUAGE_CODE = 'fr'
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
然后我使用makemessages和compilemessages来生成翻译的字符串。这工作得很好!我的网站是法语。
但现在我想让我的网站恢复英文, 所以我只需将LANGUAGE_CODE更改为:
LANGUAGE_CODE = 'en'
但我的网站仍然是法语!甚至django-debug-bar仍然是法语。
我找到的唯一解决方法是用LANGUAGES注释掉法语:
LANGUAGES = (
('en', _('English')),
# ('fr', _('French')),
)
为什么LANGUAGE_CODE ='en'不起作用?
答案 0 :(得分:3)
您需要发表评论或停用
settings.py。中的'django.middleware.locale.LocaleMiddleware',
。
此中间件处理请求参数中语言的选择。
翻译文档:
中间件文档:
https://docs.djangoproject.com/en/1.11/ref/middleware/#module-django.middleware.locale