перевод gettext не работает в производственной системе - PullRequest
6 голосов
/ 05 ноября 2010

Я столкнулся со странной проблемой при переводе строк (в админке) с помощью django gettext: при локальном запуске сервера dev все переводы корректно отображаются в админке, но когда проект развернут на рабочем сервере некоторые строки вообще не переводятся. Я не могу определить систему, на которую влияют строки, а какие нет!

Чтобы дать вам впечатление, например. модель определяется как:

class Company(models.Model):

    ....

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

При использовании сервера dev название модели корректно отображается на разных языках в админке, а на рабочем сервере нет! Это влияет на некоторые модели, другие нет ... Это сводит меня с ума, так как у меня едва ли есть идея, как это отладить ...

Ответы [ 2 ]

7 голосов
/ 05 ноября 2010

Несколько возможностей:

  • рабочий сервер не видит скомпилированные сообщения
  • непереведенные сообщения помечены как fuzzy
  • _ () разрешаетсядо ugettext вместо ugettext_lazy
3 голосов
/ 09 января 2011

У меня была похожая проблема, и помимо того, что указал Томаш Зелински, мне пришлось внести следующие изменения:

в settings.py

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

Запомните косую черту и убедитесь, что структура каталогов выглядит примерно так:

project
   your_app
   your_other_app
   locale
      en_US
          LC_MESSAGES
      sv_SE
          LC_MESSAGES
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...