def process_request(self, request): assert hasattr(request, 'session'), "The DefaultLanguageMiddleware middleware requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." try: set_default_language(get_language()) except LanguageDoesNotExist: # Try without the territory suffix set_default_language(get_language()[:2])
def process_request(self, request): from django.utils import translation path_tuple = request.path_info.split("/") if len(path_tuple) > 1: if path_tuple[1] in settings.NOT_LANG_URLS: return if check_for_language(path_tuple[1]): lang = path_tuple[1] if hasattr(request, 'session'): request.session['django_language'] = lang request.COOKIES['django_language'] = lang set_default_language(lang) request.path_info = "/" + "/".join(path_tuple[2:]) return if hasattr(request, "session") and "django_language" in request.session: lang = request.session["django_language"] elif hasattr(request, "COOKIE") and "django_language" in request.COOKIE: lang = request.COOKIE["django_language"] elif check_for_language(get_language_from_request(request)): set_default_language(get_language_from_request(request)) lang = get_language_from_request(request) else: lang = settings.LANGUAGES[settings.DEFAULT_LANGUAGE][0] return HttpResponseRedirect('/%s%s' % (lang, request.path_info))
def process_request(self, request): assert hasattr(request, 'session'), "The DefaultLanguageMiddleware \ middleware requires session middleware to be installed. Edit your \ MIDDLEWARE_CLASSES setting to insert \ 'django.contrib.sessions.middleware.SessionMiddleware'." try: set_default_language(get_language()) except LanguageDoesNotExist: # Try without the territory suffix set_default_language(get_language()[:2])
def process_view(self, request, view, *args, **kwargs): #print "we are in the multilingual process_view" assert hasattr(request, 'session'), "The DefaultLanguageMiddleware \ middleware requires session middleware to be installed. Edit your \ MIDDLEWARE_CLASSES setting to insert \ 'django.contrib.sessions.middleware.SessionMiddleware'." try: set_default_language(get_language()) except LanguageDoesNotExist: # Try without the territory suffix set_default_language(get_language()[:2])
def set_lang(request, lang): from django.utils.translation import check_for_language, activate, to_locale, get_language from settings import LANGUAGES from multilingual.languages import set_default_language if lang and check_for_language(lang): set_default_language(lang) if hasattr(request, 'session'): request.session['django_language'] = lang else: response.set_cookie('django_language', lang) return HttpResponseRedirect('/')
def testSetTagsForDifferentLanguages(self): set_default_language('en') self.assertEqual('en', get_default_language_code()) en_name = u'apple' ru_name = u'яблоко' t = Tag.objects.create(name = en_name, name_ru = ru_name) self.assertEqual(en_name, t.name) self.assertEqual(ru_name, t.name_ru) set_default_language('ru') self.assertEqual(ru_name, t.name) self.assertEqual(en_name, t.name_en)
def testFalbackToDefaultLanguage(self): set_default_language(settings.DEFAULT_LANGUAGE) default_name = u'apple' t = Tag.objects.create(name = default_name) self.assertEqual(default_name, t.name) self.assertEqual(default_name, t.name_en) self.assertEqual(None, t.name_ru) set_default_language('ru') t = Tag.objects.get(id = t.id) self.assertEqual(default_name, t.name) self.assertEqual(default_name, t.name_en) self.assertEqual(None, t.name_ru)
def test_09_values(self): titles = [{'title': 'MLFP-Title1-en'}, {'title': None}] titles_en = [{'title_en': 'MLFP-Title1-en'}, {'title_en': None}] full = [ {'id': 1, 'title': 'MLFP-Title1-en', 'content': 'MLFP-Content1-en'}, {'id': 2, 'title': None, 'content': None} ] full_en = [ {'id': 1, 'title_en': 'MLFP-Title1-en', 'content_en': 'MLFP-Content1-en'}, {'id': 2, 'title_en': None, 'content_en': None} ] titles_list = ['MLFP-Title1-en', None] languages.set_default_language('en') self.assertEqual(list(MultilingualFlatPage.objects.values('title')), titles) self.assertEqual(list(MultilingualFlatPage.objects.values('id', 'title', 'content')), full) self.assertEqual(list(MultilingualFlatPage.objects.values_list('title', flat=True)), titles_list) languages.set_default_language('ja') # now select specific language self.assertEqual(list(MultilingualFlatPage.objects.values('title_en')), titles_en) self.assertEqual(list(MultilingualFlatPage.objects.values('id', 'title_en', 'content_en')), full_en) self.assertEqual(list(MultilingualFlatPage.objects.values_list('title_en', flat=True)), titles_list)
def testDumpTagsAsText(self): set_default_language('en') hello = Tag.objects.create(name='hello') syn = Synonym.objects.create(name='aloha', tag=hello) self.first.tags = 'hello, world' self.second.tags = 'aloha' self.saveAll() self.assertEquals( \ u'''hello == aloha hello; en: hello world; en: world''', Tag.objects.dumpAsText()) hello.name_ru = u'Привет' hello.name_en = u'Hello' hello.save() self.assertEquals( \ u'''Hello == aloha Hello; en: Hello; ru: Привет world; en: world''', Tag.objects.dumpAsText())
def test_05_default_language(self): self.assertEqual(languages.get_default_language(), 'en') languages.set_default_language('ja') self.assertEqual(languages.get_default_language(), 'ja')