我有一个Django 1.4项目,我开始利用该框架的翻译功能。
我的翻译工作在我的Mac本地。我可以将消息从.po编译为.mo。我在浏览器上看到了结果。
但是一旦将代码部署到我们的某个CentOS环境中,它就会停止工作。我已经通过Homebrew(OSX)和Yum(CentOS)在两个系统上安装并链接了GNU的gettext。
以下是我的翻译特定配置参数。
settings.py
LANGUAGE_CODE = 'en-us'
...
USE_I18N = True
USE_L10N = True
...
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
)
项目结构
proj_root/app/locale/en_us/LC_MESSAGES
另外需要注意的是我正在通过 ugettext 在视图函数中进行翻译。
答案 0 :(得分:0)
感谢我的一位同事,事实证明语言文件夹不正确。
我的Mac上有以下内容并且工作正常。
proj_root/app/locale/en_us/LC_MESSAGES
但是为了让它在服务器上运行,我必须将 en_us 重命名为 en_US (请注意案例中的更改)。
proj_root/app/locale/en_US/LC_MESSAGES
事实证明,Mac文件系统不区分大小写,我不知道。这就是 en_us 在OSX上工作但在CentOS上工作的原因。 GNU的 gettext 需要以下格式, xx_XX 。