Настройка алгоритма угадывания языка в Django - PullRequest
0 голосов
/ 25 февраля 2010

Я занимаюсь разработкой многоязычного сайта Django. Он имеет два языка, английский и иврит. Я хочу, чтобы языком по умолчанию для каждого нового посетителя был иврит, независимо от того, какой у Accept-Language его браузер.

Конечно, если он меняет язык на английский (и таким образом получает языковой файл cookie или ключ в сеансе), он должен оставаться на английском языке.

Я думаю, что могу запрограммировать этот алгоритм самостоятельно, но где мне его "подключить"? Как мне сделать, чтобы мой проект использовал это?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2010

Может быть, вам не нужно ничего переопределять. Вы можете просто проверить на первой странице (или, возможно, на каждой странице), есть ли у пользователя языковой файл cookie, и перенаправить его в представление перенаправления set_language. Таким образом, вы можете заставить язык на иврите.

Если пользователь решит вернуться на английский, он может сделать это очень легко.

0 голосов
/ 25 февраля 2010

Начните с прочтения: http://docs.djangoproject.com/en/1.1/topics/i18n/#topics-i18n

Тогда прочитайте это: http://docs.djangoproject.com/en/1.1/topics/i18n/internationalization/#topics-i18n-internationalization

Каждый RequestContext имеет доступ к три специфичные для перевода переменные:

ЯЗЫКИ - это список кортежей, в которых первый элемент - код языка а второе название языка (переведено на текущий активный локали).

LANGUAGE_CODE - текущий предпочтительный язык пользователя, как строка. Пример: en-us. (Смотри как Джанго обнаруживает языковые предпочтения.)

LANGUAGE_BIDI - текущая локаль направление. Если это правда, это язык справа налево, например: иврит, Арабский. Если False, то слева направо язык, например: английский, французский, Немецкий и т. Д.

Если вы не используете Расширение RequestContext вы можете получить эти значения с тремя тегами:

Это то, о чем вы спрашиваете?

...