Django 翻译成自定义语言在开发中有效,但在生产中无效

Django translation into custom language works in development but not in production

对于我正在处理的 Django 项目,我创建了一个名为 en-ORGNAME 的翻译,它反映了目标组织使用的特定英语行话。我为多个组织使用此应用程序的多个实例,并希望能够根据客户组织自定义行话。

开始的时候非常好,在 运行ning django makemessages -l en_ORGNAME 之后我得到了一个我可以翻译的 .po 文件。 运行 compilemessages 确保我也必须有 .mo 文件。

应用程序仅使用 LANGUAGE_CODE 设置来确定语言(没有上下文处理器或 URL)。语言环境路径设置为

LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),)

当我 运行 应用程序(使用 docker-compose 和开发服务器)时,一切正常,我的翻译按预期显示。但是,当我使用 Rancher 部署应用程序(使用相同的 docker 图像)时,自定义翻译停止工作。我已经使用环境变量在容器级别设置语言,所有其他语言都可以正常工作。

我在开发中测试了相同的堆栈(NGINX、Gunicorn、Django)和我的自定义翻译工作。我已尝试将自定义翻译添加到 django.conf.locale 词典(根据 )。没有任何区别。无论有没有调整后的语言环境字典,自定义翻译都适用于开发,但不适用于生产。

欢迎任何想法。

在与我亲爱的朋友和同事@sandertuit 进行彻底分析和讨论后,我们发现 en-ORG 字符太多了。 根据标准格式,语言变体扩展名只能有 2 个字符,所以我现在使用 en-OR。现在一切正常。为什么它在开发上起作用仍然让我感到困惑。也非常感谢@Risadinha 的帮助。