You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已设置django_language cookie,但Django翻译功能仍失效

Django国际化翻译失效问题排查与解决

问题概述

配置Django国际化后,浏览器django_language cookie已设置为fa,但模板中{% trans "Hello" %}仍显示英文,无法翻译为波斯语"سلام"。


修复步骤

1. 修正Settings.py中的拼写错误

settings.py存在两处拼写错误,直接导致翻译配置不生效:

  • LAGUAGES → LANGUAGES
  • LOCALE_PTHS → LOCALE_PATHS

修改后的代码片段:

# Internationalization
LANGUAGE_CODE = "en"
TIME_ZONE = "UTC"
USE_I18N = True
USE_TZ = True

LANGUAGES = (
    ('en', _('English')),
    ('fa', _('Persian')),
)

LOCALE_PATHS = [
    BASE_DIR / 'locale',
]

2. 调整LocaleMiddleware的中间件顺序

Django要求LocaleMiddleware必须放在SessionMiddleware之后、CommonMiddleware之前,否则无法正确读取会话中的语言设置。修改MIDDLEWARE列表:

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    '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",
]

3. 修正Locale目录结构拼写错误

将locale/en/LC_MASSAGES/重命名为locale/en/LC_MESSAGES/(注意是MESSAGES而非MASSAGES)

4. 移除django.po中的fuzzy标记

#, fuzzy标记会让Django忽略对应翻译条目,打开fa/LC_MESSAGES/django.po删除该行,并明确设置语言代码:

msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-07 00:03+0330\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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

5. 重新编译翻译文件

执行以下命令更新并编译翻译:

python manage.py makemessages --all
python manage.py compilemessages

验证方法

  1. 重启Django开发服务器
  2. 点击页面"change"按钮切换语言,确认django_language cookie值为fa
  3. 刷新页面,检查"Hello"是否已显示为波斯语"سلام"

内容的提问来源于stack exchange,提问作者Soroush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:15:40