我在使用
django的gettext翻译字符串(在管理中)时遇到了一个奇怪的问题:在本地运行dev服务器所有翻译都在管理员中正确显示,但是当项目部署在生产服务器上时,某些字符串根本没有翻译.我无法确定任何系统背后哪些字符串受影响,哪些不受影响!
给你一个印象,例如.模型定义如下:
class Company(models.Model): .... class Meta: verbose_name = _('Company Profile') verbose_name_plural = _('Company Profiles')
使用dev服务器,模型的名称在管理员中的不同语言中正确显示,而不是在生产服务器上!这会影响一些模型,有些则不会……这让我很疯狂,因为我几乎不知道如何调试这个…
解决方法
一些可能性:
>生产服务器看不到编译的消息>未翻译的消息被标记为模糊> _()解析为ugettext而不是ugettext_lazy