Esempio n. 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)
Esempio n. 2
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 = 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)
Esempio n. 3
0
 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")
Esempio n. 4
0
 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)
Esempio n. 5
0
 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")
Esempio n. 6
0
 def test_exact_match(self):
     self.assertEqual(
         choose_language_code(["it-IT", "fr-FR"], ["fr-FR", "en-US"]),
         "fr-FR")
Esempio n. 7
0
 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")
Esempio n. 8
0
 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)
Esempio n. 9
0
 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")
Esempio n. 10
0
 def test_exact_match(self):
     self.assertEqual(
         choose_language_code(["it-IT", "fr-FR"], ["fr-FR", "en-US"]),
         "fr-FR")