我在里面使用 {% 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')),
)
- 我尝试移动列表中的 localMiddleware:没有成功,
- 我尝试清除 cookie:没有成功。
- 我生成了英文 .mo 和 .po 文件:没有成功
- 我试过 LANGUAGE_CODE = 'en-us' :没有成功
为什么 LANGUAGE_CODE = 'en' 不起作用?
最佳答案
您需要评论或禁用
'django.middleware.locale.LocaleMiddleware',
in settings.py.
此中间件处理请求参数中的语言选择。
翻译文档:
中间件文档:
https://docs.djangoproject.com/en/1.11/ref/middleware/#module-django.middleware.locale
关于python - Django LANGUAGE_CODE = 'en' 但显示 'fr' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47063007/