2013-11-13 3 views
1

Я работаю над тем, чтобы работать с i18n и иметь несколько языковых версий моего веб-сайта.Получение вашей головы вокруг тега шаблона трансформирования и makemessages

У меня есть несколько людей, любезно выполняющих переводы для меня, но так как я столкнулся с несколькими проблемами, чистя веб-сайты, кажется, что некоторым людям трудно начинать с модулей интернационализации и локализации django.

Основные вопросы, которые я сталкивался до сих пор являются:

  1. django.po файлы не обновляются при запуске django-admin.py makemessages -a
  2. Когда языковые файлы там, когда язык изменяется не существует каких-либо изменений на сайте, кроме того, что предварительно построен с пакетом Джанго. †
  3. i18n/setlang вид не работает. ††

Теперь, это только точка 1-й у меня нет решения. Во-первых, что происходит, что делает makemessages не обновлением? Я использую -a для обновления всех файлов, которые я ранее делал (de, da, fi), а fi - единственный языковой файл, на который фактически добавлены переводы (остальные - только пустые строки перевода в настоящее время)

† Теперь я решил номер 2. Кажется, что когда makemessages создает файл .po, он делает это с помощью нечеткого тега.

#, fuzzy 

Согласно некоторым исследованиям я сделал это трактует файл, если он нуждается в обновлении, как, как вариант не-оп, который поставляется с транс-тега.

{% trans "translation string" noop %} 

При удалении #, нечеткой линии он решил эту проблему.

†† Я добавил номер 3, просто для справки, поскольку сам решил это. Вы должны убедиться, LocaleMiddleware присутствует в вашем MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES = (
    'django.middleware.locale.LocaleMiddleware', 
) 
+0

Хорошо, поэтому я решил 2 из вышеперечисленных вопросов. Но я все еще не могу объяснить, почему django-admin.py makemessages -a больше не работает. Также, если я удалю папку локали и попытаюсь создать файлы сообщений, я просто останусь с пустой папкой LC_MESSAGES. –

ответ

0

Так что, похоже, я был в состоянии ответить на мой собственный вопрос.

  1. Где я обновляю свой перевод, прежде чем был вне дерева проекта в переводе/локализации, по какой-то причине у меня было сообщение о том, что она устарела и не был в состоянии сделать это таким образом, по какой-то причине теперь это изменилось, и он исправил вопрос о том, что makemessages не обновляется корректно.

  2. удалить #, нечеткие метки из переводов.

  3. добавить LocaleMiddleware к проблеме MIDDLEWARE_CLASSES

решена.

 Смежные вопросы

  • Нет связанных вопросов^_^