Django localeurl: изменение языка и языкового префикса в отображаемом URL в представлении - PullRequest
0 голосов
/ 13 апреля 2010

Я делаю некоторую локализацию IP и мне нужно установить язык в представлении. Использование translation.activate изменяет язык, но отображаемую страницу все еще имеет префикс языка по умолчанию в своем URL. Есть ли способ также изменить отображаемый URL?

спасибо

июл

Ответы [ 2 ]

2 голосов
/ 14 апреля 2010

Попробуйте сделать то же самое, что и LocaleURLMiddleware:

translation.activate(locale)
request.LANGUAGE_CODE = translation.get_language()

PS. Используете ли вы {% url%} и {% locale_url%}?

0 голосов
/ 14 апреля 2010

Проблема в том, что промежуточное программное обеспечение уже установило значение языка в Запросе, поэтому вам придется добавить свое собственное промежуточное программное обеспечение (после CommonMiddleware, я полагаю). Внутри вашего промежуточного класса ваш метод process_request установит язык, а ваш метод process_response сбросит язык.

http://docs.djangoproject.com/en/dev/topics/http/middleware/

Может быть ярлык для того, чтобы не использовать промежуточное программное обеспечение (вручную установить значение LANGUAGE_CODE для запроса и выполнить translation.activate в представлении), но я не пробовал ничего подобного.

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