Django i18n найти поддерживаемые языки - PullRequest
8 голосов
/ 04 апреля 2011

Я определяю языковые предпочтения пользователя через какую-либо стороннюю службу, в которой он также зарегистрирован.Этот сервис предоставляет мне код локали (например, en_US).Если у меня нет соответствующего кода языка в settings.LANGUAGES, предоставляет ли Django какой-то интегрированный (простой) способ определения наилучшего запасного варианта из settings.languages (например, en-gb).

Конечно, я знаюЯ мог бы сам сделать пару сравнений строк кода локали и т. Д., Просто любопытно, есть ли более удобное решение!

1 Ответ

5 голосов
/ 05 апреля 2011

Вы можете увидеть код, который Django использует для определения языка на основе запроса здесь .К сожалению, похоже, нет удобной вспомогательной функции для того, что вы делаете.Однако используемая логика тривиальна - просто установите окончание , если вспомогательный язык не поддерживается, и выполните поиск основного языка в качестве запасного варианта.Однако при этом вы не получите от en-us до en-gb.

Кстати, функции to_locale и to_language в этом файле могут бытьвас интересует.

...