gettext translation not working on production system

我只是一个虾纸丫 提交于 2019-12-01 02:35:53

问题


I've encountered a strange problem when translating strings (in the admin) using django's gettext: Locally running the dev server all translations are displayed correctly in the admin, but when the project is deployed on the production server some strings are not translated at all. I cannot determine any system behind which strings are affected and which not!

To give you an impression, eg. a model is defined like:

class Company(models.Model):

    ....

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

Using dev server the model's name shows up correctly in different languages in the admin, on the production server not! This affects some models, others not... This is driving me really nuts, since I hardly have a idea on how to debug this...


回答1:


A few possibilities:

  • production server doesn't see the compiled messages
  • the untranslated messages are marked as fuzzy
  • _() resolves to ugettext instead of ugettext_lazy



回答2:


I had a similar problem and apart from what Tomasz Zielinski pointed out I had to make the following changes:

in settings.py

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

Remember the trailing slash and make sure that the directory structure looks something like:

project
   your_app
   your_other_app
   locale
      en_US
          LC_MESSAGES
      sv_SE
          LC_MESSAGES


来源:https://stackoverflow.com/questions/4102478/gettext-translation-not-working-on-production-system

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!