Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Мультиязычность. Проблема с записью в куки. [RSS Feed]

#1 Июль 20, 2011 12:41:35

PmLoop
От:
Зарегистрирован: 2011-07-04
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультиязычность. Проблема с записью в куки.

Добрый день! Возникла проблема, при переходе с одного сайта на другой, необходимо реализовать сохранение текущего языка путём запроса. То есть, пользователь находясь на одном сайте, сделав определённые манипуляции с языками этого сайта, переходя на другой сайт, использовал определённый ранее язык. Реализовать запросом, что-то типа : secondsite.com/?language=en. C формированием запроса проблем нет. Проблема с обработкой. Был создан и подключён свой middleware:

from django.middleware.locale import LocaleMiddleware  
from django.utils import translation

class SwitchLocaleMiddleware(LocaleMiddleware):
def process_request(self, request):
if 'language' in request.GET:
request.session['django_language'] = request.GET['language']
language = translation.get_language_from_request(request)
translation.activate(language)
request.LANGUAGE_CODE = language
В этом виде, т.е. при использовании сессий, проблем также нет. Как сделать сохранение языка из запроса в куки?



Офлайн

#2 Июль 20, 2011 13:15:44

kachayev
От:
Зарегистрирован: 2011-07-08
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#3 Июль 20, 2011 15:05:23

PmLoop
От:
Зарегистрирован: 2011-07-04
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультиязычность. Проблема с записью в куки.

Пробовал переписать следующим образом:

from django.middleware.locale import LocaleMiddleware  
from django.utils import translation
from django.http import HttpResponse

class SwitchLocaleMiddleware(LocaleMiddleware):
def process_request(self, request):
if 'language' in request.GET:
response = HttpResponse()
response.set_cookie(key='django_language', value=request.GET['language'])
language = translation.get_language_from_request(request)
translation.activate(language)
request.LANGUAGE_CODE = language
Не работает, и непонятно, что делать с response.



Офлайн

#4 Июль 20, 2011 16:30:32

kachayev
От:
Зарегистрирован: 2011-07-08
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультиязычность. Проблема с записью в куки.

Не, это нужно сделать в функции

def process_response(self, request, response):
# cookies processing



Офлайн

#5 Июль 21, 2011 11:07:05

PmLoop
От:
Зарегистрирован: 2011-07-04
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Мультиязычность. Проблема с записью в куки.

Да, спасибо за помошь! Работает=)



Офлайн

  • Начало
  • » Django
  • » Мультиязычность. Проблема с записью в куки.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version