Базовый файл перевода 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

0 ответов

Другие вопросы по тегам