python - Django LANGUAGE_CODE = 'en' 但显示 'fr' ?

标签 python django

我在里面使用 {% 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/topics/i18n/translation/#how-django-discovers-language-preference

中间件文档:

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/

相关文章:

python - 为什么 Python 记录器不在 logging.INFO 级别显示信息或调试消息?

python - "KeyError: 0"与 xgboost、scikit-learn 和 pandas

python - Django表单字段自定义属性分配和在模板中使用

python - Django间接泛型关系

python - 如何在 Django 中表示学生与讲师的关系?

django - 反转唯一的通用外键(并返回一个对象而不是相关的管理器)

Python字典按子串赋值

python - 使用 importlib 提升 python 子包

python - 为什么我不能在 OSX 上的 pipenv 中安装 m2crypto?

django - XlsxWriter/OpenPyXl 对象另存为 HttpResponse 以创建下载