Базовый файл перевода Django не используется?
У меня есть проект Django, и я хотел бы использовать i18n
иметь поддержку разных языков. В моем шаблоне я пишу:
{% load i18n l10n %}
<span>{% trans 'Sun' %}</span>
Затем я создаю необходимые каталоги внутри моего BASE_DIR
:
./locale/LC_MESSAGES/ar
./locale/LC_MESSAGES/ru
Мои настройки:
LANGUAGE_CODE = 'en-us'
LANGUAGES = (
('en', _('English')),
('ar', _('Arabic')),
('ru', _('Russian')),
)
LOCALE_PATHS = (
join(BASE_DIR, 'locale'),
)
Тогда я бегу python manage.py makemessages -a
, .po
файлы создаются. Все идет нормально..
Изучение .po
файлы, которые я вижу следующие (среди тонн других строк):
#: myproject/web/templates/reports/mycalendar.html:24
#: venv/lib/python3.5/site-packages/django/utils/dates.py:11
msgid "Sun"
msgstr ""
Эй, они хотят, чтобы я сам перевел все сообщения от Джанго??
Позволяет открыть файл venv/lib/python3.5/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po
:
msgid "Sun"
msgstr "أحد"
Итак, перевод для этого слова уже существует!
Бег python manage.py compilemessages
- для этого слова это никак не сказалось, оно стало английским.
Я попытался включить путь локали нативного django LOCALE_PATHS
:
from django.conf import locale as django_locale
DJANGO_LOCALE_PATH = abspath(dirname(django_locale.__file__))
LOCALE_PATHS = (
DJANGO_LOCALE_PATH,
join(BASE_DIR, 'locale'),
)
Ни за что. Тем не менее линия представляет в моем .po
Файл и все еще msgstr пуст. Я пытался удалить эти строки из моего .po
файл, но после makemessages
они появляются снова.
Теперь вопрос: почему игнорируется нативный файл.po и как его использовать?
Джанго ==1.8.12