Я работаю над тем, чтобы работать с i18n и иметь несколько языковых версий моего веб-сайта.Получение вашей головы вокруг тега шаблона трансформирования и makemessages
У меня есть несколько людей, любезно выполняющих переводы для меня, но так как я столкнулся с несколькими проблемами, чистя веб-сайты, кажется, что некоторым людям трудно начинать с модулей интернационализации и локализации django.
Основные вопросы, которые я сталкивался до сих пор являются:
- django.po файлы не обновляются при запуске django-admin.py makemessages -a
- Когда языковые файлы там, когда язык изменяется не существует каких-либо изменений на сайте, кроме того, что предварительно построен с пакетом Джанго. †
- 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',
)
Хорошо, поэтому я решил 2 из вышеперечисленных вопросов. Но я все еще не могу объяснить, почему django-admin.py makemessages -a больше не работает. Также, если я удалю папку локали и попытаюсь создать файлы сообщений, я просто останусь с пустой папкой LC_MESSAGES. –