コード例 #1
0
    def setup_locale(self):
        lang_codes = list(iterkeys(self.available_translations))

        browser_langs = parse_accept_header(
            self.request.headers.get("Accept-Language", ""),
            LanguageAccept).values()
        automatic_lang = choose_language_code(browser_langs, lang_codes)
        if automatic_lang is None:
            automatic_lang = 'et'#lang_codes[0]
        self.automatic_translation = \
            self.available_translations[automatic_lang]

        cookie_lang = self.get_cookie("language", None)
        if cookie_lang is not None:
            chosen_lang = \
                choose_language_code([cookie_lang, automatic_lang], lang_codes)
            if chosen_lang == cookie_lang:
                self.cookie_translation = \
                    self.available_translations[cookie_lang]
        else:
            chosen_lang = automatic_lang
        self.translation = self.available_translations[chosen_lang]

        self._ = self.translation.gettext
        self.n_ = self.translation.ngettext

        self.set_header("Content-Language", chosen_lang)
コード例 #2
0
ファイル: base.py プロジェクト: ioi-germany/cms
    def setup_locale(self):
        lang_codes = list(iterkeys(self.available_translations))

        browser_langs = parse_accept_header(
            self.request.headers.get("Accept-Language", ""),
            LanguageAccept).values()
        automatic_lang = choose_language_code(browser_langs, lang_codes)
        if automatic_lang is None:
            automatic_lang = lang_codes[0]
        self.automatic_translation = \
            self.available_translations[automatic_lang]

        cookie_lang = self.get_cookie("language", None)
        if cookie_lang is not None:
            chosen_lang = \
                choose_language_code([cookie_lang, automatic_lang], lang_codes)
            if chosen_lang == cookie_lang:
                self.cookie_translation = \
                    self.available_translations[cookie_lang]
        else:
            chosen_lang = automatic_lang
        self.translation = self.available_translations[chosen_lang]

        self._ = self.translation.gettext
        self.n_ = self.translation.ngettext

        self.set_header("Content-Language", chosen_lang)
コード例 #3
0
ファイル: locale_test.py プロジェクト: cms-dev/cms
 def test_invalid_locale(self):
     self.assertEqual(
         choose_language_code(["it", "froobar", "fr-FR"], ["fr"]), "fr")
     self.assertEqual(
         choose_language_code(["it", "fr-FR"], ["de", "froobar", "fr"]),
         "fr")
コード例 #4
0
ファイル: locale_test.py プロジェクト: cms-dev/cms
 def test_no_match(self):
     self.assertEqual(
         choose_language_code(["fr", "en"], ["it", "de"]), None)
     self.assertEqual(choose_language_code(["fr", "en"], []), None)
     self.assertEqual(choose_language_code([], ["it", "de"]), None)
コード例 #5
0
ファイル: locale_test.py プロジェクト: cms-dev/cms
 def test_prefix_match(self):
     self.assertEqual(
         choose_language_code(["it", "fr"], ["fr-FR", "en-US"]), "fr-FR")
     self.assertEqual(
         choose_language_code(["fr-FR", "en-US"], ["fr", "en"]), "fr")
コード例 #6
0
ファイル: locale_test.py プロジェクト: cms-dev/cms
 def test_exact_match(self):
     self.assertEqual(
         choose_language_code(["it-IT", "fr-FR"], ["fr-FR", "en-US"]),
         "fr-FR")
コード例 #7
0
ファイル: locale_test.py プロジェクト: frazierbaker/cms
 def test_invalid_locale(self):
     self.assertEqual(
         choose_language_code(["it", "froobar", "fr-FR"], ["fr"]), "fr")
     self.assertEqual(
         choose_language_code(["it", "fr-FR"], ["de", "froobar", "fr"]),
         "fr")
コード例 #8
0
ファイル: locale_test.py プロジェクト: frazierbaker/cms
 def test_no_match(self):
     self.assertEqual(choose_language_code(["fr", "en"], ["it", "de"]),
                      None)
     self.assertEqual(choose_language_code(["fr", "en"], []), None)
     self.assertEqual(choose_language_code([], ["it", "de"]), None)
コード例 #9
0
ファイル: locale_test.py プロジェクト: frazierbaker/cms
 def test_prefix_match(self):
     self.assertEqual(
         choose_language_code(["it", "fr"], ["fr-FR", "en-US"]), "fr-FR")
     self.assertEqual(
         choose_language_code(["fr-FR", "en-US"], ["fr", "en"]), "fr")
コード例 #10
0
ファイル: locale_test.py プロジェクト: frazierbaker/cms
 def test_exact_match(self):
     self.assertEqual(
         choose_language_code(["it-IT", "fr-FR"], ["fr-FR", "en-US"]),
         "fr-FR")