Я пытался заставить переводы работать над моей установкой Django, но до сих пор не получилось.
Я создал базовую настройку теста, чтобы найти свою ошибку, но пока не повезло.
Один из моих просмотров просто печатает переведенный текст (или должен, но всегда показывает не переведенный текст):
text = _('blah')
return HttpResponse(text)
Я сгенерировал файл на голландском языке, используя python manage.py makemessages -l nl_BE
. Файл django.po находится в локали / nl_BE / LC_MESSAGES.
Я изменил это приложение, чтобы перевести «бла» на английском языке на «blih» на голландском языке:
#: foo/views.py:9`
msgid "blah"
msgstr "blih"
Я сгенерировал файл django.mo, используя python manage.py compilemessages
. Файл django.mo также находится в локали / nl_BE / LC_MESSAGES.
Я пытался изменить язык по умолчанию в settings.py (LANGUAGE_CODE) на «nl-be», но это не имело значения (так что теперь оно на «en-us»).
USE_I18N имеет значение True.
У меня есть представление, которое устанавливает язык (используя / i18n / setlang / url).
В этом представлении я также печатаю:
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_current_language_bidi as LANGUAGE_BIDI %}
Это показывает:
LANGUAGE_CODE: nl
LANGUAGES: [('ar', u'Arabisch'), ('bg', u'Bulgaars'), ('bn', u'Bengaals'), ('bs', u'Bosnian'), ('ca', u'Catalaans'), ('cs', u'Tjechisch'), ('cy', u'Welsh'), ('da', u'Deens'), ('de', u'Duits'), ('el', u'Grieks'), ('en', u'Engels'), ('en-gb', u'British English'), ('es', u'Spaans'), ('es-ar', u'Argentinian Spanish'), ('et', u'Ests'), ('eu', u'Baskisch'), ('fa', u'Perzisch'), ('fi', u'Fins'), ('fr', u'Frans'), ('fy-nl', u'Frisian'), ('ga', u'Iers'), ('gl', u'Galicisch'), ('he', u'Hebreews'), ('hi', u'Hindi'), ('hr', u'Kroatisch'), ('hu', u'Hongaars'), ('id', u'Indonesian'), ('is', u'IJslands'), ('it', u'Italiaans'), ('ja', u'Japans'), ('ka', u'Georgisch'), ('km', u'Khmer'), ('kn', u'Kannada'), ('ko', u'Koreaans'), ('lt', u'Litouws'), ('lv', u'Lets'), ('mk', u'Macedonisch'), ('ml', u'Malayalam'), ('mn', u'Mongolian'), ('nl', u'Nederlands'), ('no', u'Noors'), ('nb', u'Norwegian Bokmal'), ('nn', u'Norwegian Nynorsk'), ('pl', u'Pools'), ('pt', u'Portugees'), ('pt-br', u'Braziliaans Portugees'), ('ro', u'Roemeens'), ('ru', u'Russisch'), ('sk', u'Slovaaks'), ('sl', u'Sloveens'), ('sq', u'Albanian'), ('sr', u'Servisch'), ('sr-latn', u'Serbian Latin'), ('sv', u'Zweeds'), ('ta', u'Tamil'), ('te', u'Telegu'), ('th', u'Thais'), ('tr', u'Turks'), ('uk', u'Oekra\xefens'), ('vi', u'Vietnamese'), ('zh-cn', u'Vereenvoudigd Chinees'), ('zh-tw', u'Traditioneel Chinees')]
LANGUAGE_BIDI: False
Так что nl должно работать. И на самом деле это так. Переменная LANGUAGES показывает список языков, отображаемых на голландском языке.
Тем не менее, он не отображает голландский перевод для моего приложения.
Django как-то не замечает мой файл django.mo?
Я забыл что-то важное?