Локализация Django: как использовать не-английский язык в качестве языка «Translate-From» - PullRequest
2 голосов
/ 31 января 2012

Проблема в том, что если я установил английский язык в качестве основного ( LANGUAGE_CODE = 'en' ), то все работает нормально.Если мы запрашиваем сайт из браузера с английским языком, мы видим английский вариант и аналогично для браузера с русским языком.

Но если я установлю LANGUAGE_CODE = 'ru' , тогда мыв любом случае смотрите русский вариант.

Так почему же английский язык используется по умолчанию и используется Django в качестве msgid?

Пожалуйста, ознакомьтесь с настройками моего проекта ниже.


В моем settings.py я пытаюсь установить не английский язык в качестве основного языка:

LANGUAGE_CODE = 'ru'
LANGUAGES = ( ( 'en', "English", ), ( 'ru', "Russian", ), )

Тогда у меня есть en / LC_MESSAGES / django.po:

msgid "SITE_MAIN_TITLE"
msgstr "D'argent: Cosmetics, Hair Care, Parfume"

И ru / LC_MESSAGES / django.po:

msgid "SITE_MAIN_TITLE"
msgstr "D'argent – косметика, средства по уходу за волосами, парфюмерия"

В шаблоне HTML:

...
<title>{% block title %}{% trans "SITE_MAIN_TITLE" %}{% endblock %}</title>
...

1 Ответ

1 голос
/ 27 марта 2012

ЕСЛИ вы используете это промежуточное ПО 'django.middleware.locale.LocaleMiddleware'.

https://github.com/django/django/blob/master/django/utils/translation/trans_real.py#L366

см. Функцию get_language_from_request.Понять, как выбрать код языка по умолчанию.Никогда не используйте эти настройки. LANGUAGE_CODE;).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...