gettext转换不适用于生产系统

时间:2010-11-04 23:57:03

标签: django translation gettext production-environment devserver

我在使用django的gettext翻译字符串时遇到了一个奇怪的问题:在本地运行dev服务器,所有翻译都在管理员中正确显示,但是当项目部署在生产服务器上时某些字符串根本没有翻译。我无法确定哪些系统背后哪些字符串受影响,哪些不受影响!

给你一个印象,例如。模型定义如下:

class Company(models.Model):

    ....

    class Meta:
        verbose_name = _('Company Profile')
        verbose_name_plural = _('Company Profiles')

使用dev服务器,模型名称在管理员中以不同语言正确显示,而不是在生产服务器上!这会影响一些模型,有些则不会......这让我很疯狂,因为我几乎不知道如何调试这个......

2 个答案:

答案 0 :(得分:7)

一些可能性:

  • 生产服务器未看到已编译的消息
  • 未翻译的邮件标记为fuzzy
  • _()解析为ugettext而不是ugettext_lazy

答案 1 :(得分:3)

我有类似的问题,除了Tomasz Zielinski指出我必须做出以下改变:

在settings.py

LOCALE_PATHS = (
    "/path/to/your/project/locale",
)

记住尾部斜杠并确保目录结构类似于:

project
   your_app
   your_other_app
   locale
      en_US
          LC_MESSAGES
      sv_SE
          LC_MESSAGES