Переведенные строки не отображаются при переключении языков на сайте Django - PullRequest
3 голосов
/ 17 сентября 2010

У меня есть достаточно простой сайт Django (1.1), где мне нужен базовый интерфейс и другие тексты для перевода между двумя языками. Я создал po-файлы, используя manage.py makemessages, перевел их (используя poedit) и скомпилировал mo-файлы, используя manage.py compilemessages, как указано в i18n документах для Django .

Но проблема в том, большинство строк по-прежнему отображаются на языке оригинала ...

  • Я проверил, что файлы po на самом деле содержат все строки
  • я проверил, что файлы mo были недавно сгенерированы после последней попытки перевода
  • язык действительно меняется, когда я переключаюсь, используя getlang() метод
  • несколько строк переводятся при переключении
  • но большинство не ...

Не совсем уверен, где еще искать ... Есть ли приложение, которое я могу использовать, чтобы проверить, действительно ли скомпилированные файлы mo действительны и завершены, например? Могут ли эти строки быть кэшированы? (я не использую промежуточное программное обеспечение для кэширования)

1 Ответ

2 голосов
/ 17 сентября 2010

Нашел это !!Вытаскивая волосы, пытаясь понять, что вызвало мои беды, я закомментировал django.middleware.locale.LocaleMiddleware из моего MIDDLEWARE_CLASSES и обновил страницу, пытаясь все попробовать.Очевидно, что это просто отключило перевод всех вместе, но когда я снова включил его, все мои хорошо переведенные строки показывали, как они должны были быть все время.

Так что я угадал что-то, где-то получить скомпилировано /кэшируется при включении промежуточного программного обеспечения для локали, и единственный способ обновить его - выключить и снова включить.Перезапуск сервера не помог, так что это немного противоречит интуиции, но кого это волнует, работает!:)

...