Đây là giải pháp của tôi:
Tạo django middleware: django_app/lib/middleware/locale.py
from django.utils import translation
class SwitchLanguageMiddleware(object):
def process_request(self, request):
lang = request.GET.get('lang', '')
if lang:
translation.activate(lang)
request.LANGUAGE_CODE = translation.get_language()
def process_response(self, request, response):
request.session['django_language'] = translation.get_language()
if 'Content-Language' not in response:
response['Content-Language'] = translation.get_language()
translation.deactivate()
return response
Nó đọc các thông số get của yêu cầu và nếu nó có lang thuộc tính, sau đó chuyển sang ngôn ngữ . Ex .:/về-us/lang = pl
Bao gồm middleware này để settings.py:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.common.CommonMiddleware',
'django_app.libs.middleware.locale.SwitchLanguageMiddleware',
)
Nguồn
2012-10-02 19:24:14
Bạn đã tìm hiểu cách thực hiện việc này chưa? Tôi rất muốn biết điều đó! – Javaaaa