2015-01-20 3 views

ответ

0

Вы попробовали to_locale()?

from django.utils.translation import to_locale, get_language 
to_locale(get_language()) 
+0

to_locale (get_language()) по-прежнему выводит только «en», если язык «en». – user3834658

+0

Документы для to_locale говорят: включает имя языка (en-us) в имя локали (en_US). Если «to_lower» имеет значение True, последний компонент имеет нижний регистр (en_us) ... Поэтому он ожидает имя языка, которое является языком + страна. Моя проблема заключается в том, что языковой стандарт содержит как язык, так и страну, поэтому не может быть извлечен из языка. – user3834658

+0

https://docs.djangoproject.com/en/1.7/topics/i18n/ – user3834658

0

Различие между language и locale (в Django, по крайней мере) это просто вопрос форматирования. Оба en и en-us являются языками, и если en-us является выбранным в данный момент языком, который будет возвращен get_language().

Итак, ваша проблема заключается в том, что Django не устанавливает текущий язык так, как вы ожидаете. Существует long list техник, которые Django использует, чтобы попытаться выяснить язык, который нужно использовать, поэтому я предлагаю вам работать, чтобы понять, почему язык не тот, который вы ожидаете.

Например:

Если базовый язык доступен, но Подъязык Указано нет, Django использует базовый язык. Например, если пользователь указывает de-at (австрийский немецкий), но Django имеет только de, Django использует de.

Смежные вопросы