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

Django2.2升3.2后自定义语言报translation.E004错误如何解决

错误触发原因

Django 3.0及以上版本新增了翻译模块的系统检查规则,translation.E004错误的判定逻辑为:LANGUAGE_CODE配置项指定的语言编码,必须存在于LANGUAGES配置项声明的合法语言列表中。
Django 2.2版本中仅修改django.conf.locale.LANG_INFO注入自定义语言的方式可以正常运行,但3.2版本的默认LANGUAGES列表是基于框架原生内置语言生成的,自定义的tb语言未被纳入该列表,因此触发校验报错。

修复方法

在settings.py中显式定义LANGUAGES配置,将自定义的tb语言加入合法语言列表即可,注意调整代码执行顺序:先完成自定义语言信息注入,再定义LANGUAGES列表,最后设置默认LANGUAGE_CODE。
修正后的配置代码如下:

import django.conf.locale

EXTRA_LANG_INFO = {
    'tb': {
        'bidi': False,
        'code': 'tb',
        'name': 'English',
        'name_local': 'United States',
        'fallback': ['en-US'],
    },
}

# 注入自定义语言信息到全局语言字典
LANG_INFO = dict(**django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO

# 新增LANGUAGES配置,声明项目支持的所有语言
LANGUAGES = [
    ('tb', 'English'),
    ('en', 'English'),
    # 可按需追加项目需要支持的其他语言项
]

# 指定默认语言编码
LANGUAGE_CODE = 'tb'

配置修改完成后重新启动服务,该错误即可消除。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:48:44