Example #1
0
 def test_negotiate(self):
     de_DE = Locale.negotiate(["de_DE", "en_US"], ["de_DE", "de_AT"])
     assert (de_DE.language, de_DE.territory) == ("de", "DE")
     de = Locale.negotiate(["de_DE", "en_US"], ["en", "de"])
     assert (de.language, de.territory) == ("de", None)
     nothing = Locale.negotiate(["de_DE", "de"], ["en_US"])
     assert nothing is None
Example #2
0
 def test_negotiate(self):
     de_DE = Locale.negotiate(['de_DE', 'en_US'], ['de_DE', 'de_AT'])
     assert (de_DE.language, de_DE.territory) == ('de', 'DE')
     de = Locale.negotiate(['de_DE', 'en_US'], ['en', 'de'])
     assert (de.language, de.territory) == ('de', None)
     nothing = Locale.negotiate(['de_DE', 'de'], ['en_US'])
     assert nothing is None
Example #3
0
    def get_negotiated_locale(preferred_locales):
        def normalize(locale_ids):
            return [id.replace('_', '-') for id in locale_ids if id]

        return Locale.negotiate(normalize(preferred_locales),
                                normalize(get_available_locales()),
                                sep='-')
Example #4
0
def get_locale():
    userLanguage = current_user.config.language if current_user.is_authenticated() else None

    if userLanguage and userLanguage in LANGUAGES:
        return userLanguage
    else:
        return Locale.negotiate(request.accept_languages.values(), LANGUAGES)
Example #5
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(Locale.negotiate(get_available_languages(), requested))

    if locale is None:
        locale = get_default_locale()

    tmpl_context.locale = locale

    options = [str(locale), locale.language, str(get_default_locale()),
        get_default_locale().language]
    for language in options:
        try:
            set_lang(language)
            # Lose the territory part of the locale string
            tmpl_context.language = get_lang()[0].split('_')[0]
            break
        except:
            pass
Example #6
0
def user_language(user, fallbacks=[]):
    # find out the locale
    locale = None
    if user and user.locale:
        locale = user.locale

    if locale is None:
        locale = Locale.parse(Locale.negotiate(fallbacks, LOCALE_STRINGS_DASH,
                                               sep='-',
                                               aliases=A2_LOCALE_ALIASES)) \
            or get_default_locale()

    # determinate from which path we load the translations
    translations_config = {
        'pylons.paths': {
            'root': _get_translations_root()
        },
        'pylons.package': config.get('pylons.package')
    }

    # set language and fallback
    set_lang(str(locale), pylons_config=translations_config)
    add_fallback(str(get_default_locale()), pylons_config=translations_config)
    formencode.api.set_stdtranslation(domain="FormEncode",
                                      languages=[locale.language])
    return locale
Example #7
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(
            Locale.negotiate(get_available_languages(), requested))

    if locale is None:
        locale = get_default_locale()

    tmpl_context.locale = locale

    options = [
        str(locale), locale.language,
        str(get_default_locale()),
        get_default_locale().language
    ]
    for language in options:
        try:
            set_lang(language)
            # Lose the territory part of the locale string
            tmpl_context.language = get_lang()[0].split('_')[0]
            break
        except:
            pass
Example #8
0
def user_language(user, fallbacks=[]):
    # find out the locale
    locale = None
    if user and user.locale:
        locale = user.locale

    if locale is None:
        locales = map(str, LOCALES)
        locale = Locale.parse(Locale.negotiate(fallbacks, locales)) \
                 or get_default_locale()

    # determinate from which path we load the translations
    translations_module = config.get('adhocracy.translations', 'adhocracy')
    translations_module_loader = pkgutil.get_loader(translations_module)
    if translations_module_loader is None:
        raise ValueError(('Cannot import the module "%s" configured for '
                          '"adhocracy.translations". Make sure it is an '
                          'importable module (and contains the '
                          'translation files in a subdirectory '
                          '"i18n"') % translations_module)

    translations_root = translations_module_loader.filename
    translations_config = {'pylons.paths': {'root': translations_root},
                           'pylons.package': config.get('pylons.package')}

    # set language and fallback
    set_lang(locale.language, pylons_config=translations_config)
    add_fallback(get_default_locale().language,
                 pylons_config=translations_config)
    formencode.api.set_stdtranslation(domain="FormEncode",
                                      languages=[locale.language])
    return locale
Example #9
0
def set_locale(cls, force=None):
    """
    retrieve locale from a prioritized list of sources and then set locale and save it
    cls: self object
    force: a locale to force set (ie 'en_US')
    return: locale as string or None if i18n should be disabled
    """
    # disable i18n if config.locales array is empty or None
    if not config.locales:
        return None
    # 1. force locale if provided
    locale = force
    if locale not in config.locales:
        # 2. retrieve locale from url query string
        locale = cls.request.get("hl", None)
        if locale not in config.locales:
            # 3. retrieve locale from cookie
            locale = cls.request.cookies.get('hl', None)
            if locale not in config.locales:
                # 4. retrieve locale from accept language header
                locale = get_locale_from_accept_header(cls.request)
                if locale not in config.locales:
                    # 5. detect locale from IP address location
                    territory = get_territory_from_ip(cls) or 'ZZ'
                    locale = str(Locale.negotiate(territory, config.locales))
                    if locale not in config.locales:
                        # 6. use default locale
                        locale = i18n.get_store().default_locale
    i18n.get_i18n().set_locale(locale)
    # save locale in cookie with 26 weeks expiration (in seconds)
    cls.response.set_cookie('hl', locale, max_age = 15724800)
    return locale
Example #10
0
    def set_locale(self, force=None):
        locales = self.app.config.get('locales')
        # disable i18n if config.locales array is empty or None
        if not locales:
            return None
        # 1. force locale if provided
        locale = force
        if locale not in locales:
            # 2. retrieve locale from url query string
            locale = self.request.get("hl", None)
            if locale not in locales:
                # 3. retrieve locale from cookie
                locale = self.request.cookies.get('hl', None)
                if locale not in locales:
                    # 4. retrieve locale from accept language header
                    #locale = get_locale_from_accept_header(self.request)
                    if locale not in locales:
                        # 5. detect locale from IP address location
                        territory = get_territory_from_ip(self) or 'ZZ'
                        locale = str(Locale.negotiate(territory, locales))
                        if locale not in locales:
                            # 6. use default locale
                            locale = self.request.GET.get('locale', 'en_US')

        i18n.get_i18n().set_locale(locale)
        logger.info('locale is {0}'.format(locale))
        # save locale in cookie with 26 weeks expiration (in seconds)
        self.response.set_cookie('hl', locale, max_age=15724800)
        return locale
Example #11
0
def set_locale(cls, force=None):
    """
    retrieve locale from a prioritized list of sources and then set locale and save it
    cls: self object
    force: a locale to force set (ie 'en_US')
    return: locale as string or None if i18n should be disabled
    """
    # disable i18n if config.locales array is empty or None
    if not config.locales:
        return None
    # 1. force locale if provided
    locale = force
    if locale not in config.locales:
        # 2. retrieve locale from url query string
        locale = cls.request.get("hl", None)
        if locale not in config.locales:
            # 3. retrieve locale from cookie
            locale = cls.request.cookies.get('hl', None)
            if locale not in config.locales:
                # 4. retrieve locale from accept language header
                locale = get_locale_from_accept_header(cls.request)
                if locale not in config.locales:
                    # 5. detect locale from IP address location
                    territory = get_territory_from_ip(cls) or 'ZZ'
                    locale = str(Locale.negotiate(territory, config.locales))
                    if locale not in config.locales:
                        # 6. use default locale
                        locale = i18n.get_store().default_locale
    i18n.get_i18n().set_locale(locale)
    # save locale in cookie with 26 weeks expiration (in seconds)
    cls.response.set_cookie('hl', locale, max_age = 15724800)
    return locale
Example #12
0
    def pull_lang_code(endpoint, values):
        '''
        Carga el código de idioma en la variable global.
        '''
        # obtiene el idioma de la URL
        g.url_lang = None
        if values is not None:
            g.url_lang = values.pop('lang', None)

        # si esta lista de idiomas permitidos
        if g.url_lang and g.url_lang in app.config["ALL_LANGS"]:
            g.lang = g.url_lang
        # si el usuario esta logueado y tiene establecido el idioma se asigna ese
        elif "user" in session and "lang" in session["user"]:
            g.lang = session["user"]["lang"]
        # si no esta logueado y ha elegido un idioma
        elif "lang" in session:
            g.lang = session["lang"]
        else:
            accept = request.accept_languages.values()
            # si viene, se coge el que mas convenga dependiendo del que tenga establecido en su navegador o el idioma por defecto
            locale = Locale.negotiate((option.replace("-","_") for option in accept), app.config["ALL_LANGS"]) if accept else None

            if locale:
                g.lang = locale.language
            else:
                g.lang = app.config["LANGS"][0] # valor por defecto si todo falla

        # se carga la lista de idiomas como se dice en cada idioma
        g.languages = pull_lang_code_languages
        g.beta_lang = g.lang in app.config["BETA_LANGS"]
Example #13
0
def user_language(user, fallbacks=[]):
    # find out the locale
    locale = None
    if user and user.locale:
        locale = user.locale

    if locale is None:
        locales = map(str, LOCALES)
        locale = Locale.parse(Locale.negotiate(fallbacks, locales)) \
                 or get_default_locale()

    # determinate from which path we load the translations
    translations_module = config.get('adhocracy.translations', 'adhocracy')
    translations_module_loader = pkgutil.get_loader(translations_module)
    if translations_module_loader is None:
        raise ValueError(('Cannot import the module "%s" configured for '
                          '"adhocracy.translations". Make sure it is an '
                          'importable module (and contains the '
                          'translation files in a subdirectory '
                          '"i18n"') % translations_module)

    translations_root = translations_module_loader.filename
    translations_config = {'pylons.paths': {'root': translations_root},
                           'pylons.package': config.get('pylons.package')}

    # set language and fallback
    set_lang(locale.language, pylons_config=translations_config)
    add_fallback(get_default_locale().language,
                 pylons_config=translations_config)
    formencode.api.set_stdtranslation(domain="FormEncode",
                                      languages=[locale.language])
    return locale
Example #14
0
def get_locale():
    if 'locale' in session:
        return Locale.parse(session.get('locale'))
    else:
        requested = request.accept_languages.values()
        requested = [l.replace('-', '_') for l in requested]
        available = map(unicode, babel.list_translations())
        return Locale.negotiate(available, requested)
Example #15
0
 def negotiate_known_locale(self, preferred_locales):
     """Given a list of preferred locales, this method returns the best
     match locale object from the known ones."""
     assert isinstance(preferred_locales, (tuple, list))
     preferred_locales = [str(l).replace("-", "_") for l in preferred_locales]
     return Locale.parse(
         Locale.negotiate(preferred_locales, self.get_available_locale_names(), aliases=self.get_aliases())
     )
Example #16
0
def get_locale():
    userLanguage = current_user.config.language if current_user.is_authenticated(
    ) else None

    if userLanguage and userLanguage in LANGUAGES:
        return userLanguage
    else:
        return Locale.negotiate(request.accept_languages.values(), LANGUAGES)
Example #17
0
    def select_locale():
        available = available_locales.keys()
        preferred = _get_preferred_languages()

        # Find best match
        best_match = Locale.negotiate(preferred, available)

        # Return best match
        if best_match:
            return str(best_match)
def get_locale():
    if "l10n" in request.values:
        return Locale.negotiate([request.values["l10n"]], LANGUAGES)

    if hasattr(g, "identity") and g.identity and userManager is not None:
        userid = g.identity.id
        try:
            user_language = userManager.getUserSetting(
                userid, ("interface", "language"))
            if user_language is not None and not user_language == "_default":
                return Locale.negotiate([user_language], LANGUAGES)
        except octoprint.users.UnknownUser:
            pass

    default_language = settings().get(["appearance", "defaultLanguage"])
    if default_language is not None and not default_language == "_default" and default_language in LANGUAGES:
        return Locale.negotiate([default_language], LANGUAGES)

    return request.accept_languages.best_match(LANGUAGES)
Example #19
0
	def _get_locale(self):
		global LANGUAGES

		if "l10n" in request.values:
			return Locale.negotiate([request.values["l10n"]], LANGUAGES)

		if hasattr(g, "identity") and g.identity and userManager.enabled:
			userid = g.identity.id
			try:
				user_language = userManager.getUserSetting(userid, ("interface", "language"))
				if user_language is not None and not user_language == "_default":
					return Locale.negotiate([user_language], LANGUAGES)
			except octoprint.users.UnknownUser:
				pass

		default_language = settings().get(["appearance", "defaultLanguage"])
		if default_language is not None and not default_language == "_default" and default_language in LANGUAGES:
			return Locale.negotiate([default_language], LANGUAGES)

		return Locale.parse(request.accept_languages.best_match(LANGUAGES))
Example #20
0
 def negotiate_known_locale(self, preferred_locales):
     '''Given a list of preferred locales, this method returns the best
     match locale object from the known ones.'''
     assert isinstance(preferred_locales, (tuple, list))
     preferred_locales = [
         str(l).replace('-', '_') for l in preferred_locales
     ]
     return Locale.parse(
         Locale.negotiate(preferred_locales,
                          self.get_available_locale_names(),
                          aliases=self.get_aliases()))
Example #21
0
def _set_locale(request, force=None):
    """
    retrieve locale from a prioritized list of sources and then set locale and save it
    cls: self object
    force: a locale to force set (ie 'en_US')
    return: locale as string or None if i18n should be disabled
    """
    try:
        webapp2_instance = webapp2.get_app()
    except AssertionError:
        logging.debug('No webapp2 global set; skipping registry lookup for jinja2 template engine.')
        locales = []
    else:
        locales = webapp2_instance.config.get(I18N_LOCALES_KEY) or []

    # disable i18n if config.locales array is empty or None
    if not locales:
        return None
    # 1. force locale if provided
    locale = force
    if locale not in locales:
        # 2. retrieve locale from url query string
        locale = request.get("hl", None)
        if locale not in locales:
            # 3. retrieve locale from user preferences
            user_session_info = request.registry['user_session_info']
            if user_session_info:
                user_id = user_session_info.get('user_id', None)
                if user_id:
                    stored_locale = request.session.get('inferred_locale', None)
                    if not stored_locale:
                        lower = str(request.registry['user_session_info'].get('language_preference', None))
                        upper = str(lower).upper()
                        stored_locale = '{0}_{1}'.format(lower, upper)
                        request.session['inferred_locale'] = stored_locale
                    locale = stored_locale
                else:
                    locale = None
            if locale not in locales:
                # 4. retrieve locale from accept language header
                locale = get_locale_from_accept_header(request)
                if locale not in locales:
                    # 5. detect locale from IP address location
                    territory = get_country_code(request) or 'ZZ'
                    locale = str(Locale.negotiate(territory, locales))
                    if locale not in locales:
                        # 6. use default locale
                        locale = i18n.get_store().default_locale
    i18n.get_i18n(request=request).set_locale(locale)
    request.registry['locale'] = locale
Example #22
0
def sys_localizer(reg):
    cur_locale = reg.settings.get('pyramid.default_locale_name', 'en')
    sys_locale = locale.getlocale()[0]

    if sys_locale:
        new_locale = Locale.negotiate(
            (sys_locale,),
            reg.settings.get('pyramid.available_languages', '').split())
        if new_locale:
            cur_locale = str(new_locale)
    else:
        cur_locale = 'en'

    tdirs = reg.queryUtility(ITranslationDirectories, default=[])
    return make_localizer(cur_locale, tdirs)
Example #23
0
def sys_localizer(reg):
	cur_locale = reg.settings.get('pyramid.default_locale_name', 'en')
	sys_locale = locale.getlocale()[0]

	if sys_locale:
		new_locale = Locale.negotiate(
			(sys_locale,),
			reg.settings.get('pyramid.available_languages', '').split()
		)
		if new_locale:
			cur_locale = str(new_locale)
	else:
		cur_locale = 'en'

	tdirs = reg.queryUtility(ITranslationDirectories, default=[])
	return make_localizer(cur_locale, tdirs)
Example #24
0
def get_locale_from_accept_header(request, localeTags):
    """ Detect a locale from request.header 'Accept-Language'
    The locale with the highest quality factor (q) that most nearly matches our config.locales is returned.
    rh: webapp2.RequestHandler

    Note that in the future if all User Agents adopt the convention of sorting quality factors in descending order
    then the first can be taken without needing to parse or sort the accept header leading to increased performance.
    (see http://lists.w3.org/Archives/Public/ietf-http-wg/2012AprJun/0473.html)
    """
    header = request.headers.get("Accept-Language", '')
    parsed = parse_accept_language_header(header)
    if parsed is None:
        return None
    pairs_sorted_by_q = sorted(parsed.items(), key=lambda (lang, q): q, reverse=True)
    locale = Locale.negotiate([lang for (lang, q) in pairs_sorted_by_q], request.app.config.get('locales'), sep='_')
    return str(locale)
Example #25
0
    def get_negotiated_locale(preferred_locales):
        def normalize(locale_ids):
            return [id.replace("-", "_") for id in locale_ids if id]

        available_locales = get_available_locales()
        if "en_US" not in available_locales:
            available_locales.append("en_US")
        locale = Locale.negotiate(normalize(preferred_locales), normalize(available_locales))
        if locale and str(locale) not in available_locales:
            # The list of get_available_locales() must include locale
            # identifier from str(locale), but zh_* don't be included after
            # Babel 1.0. Avoid expanding zh_* to zh_Hans_CN and zh_Hant_TW
            # to clear "script" property of Locale instance. See #11258.
            locale._data  # load localedata before clear script property
            locale.script = None
            assert str(locale) in available_locales
        return locale
Example #26
0
def locale_neg(request):
    avail = request.locales
    loc = request.params.get('__locale')
    if loc is None:
        loc = request.session.get('ui.locale')
    if loc is None and request.accept_language:
        loc = Locale.negotiate(list(request.accept_language),
                               list(request.locales),
                               sep='-')
        if loc:
            loc = str(loc)
    if loc is None:
        loc = request.registry.settings.get('pyramid.default_locale_name',
                                            'en')
    if loc in avail:
        request.session['ui.locale'] = loc
        return loc
    return 'en'
Example #27
0
    def get_negotiated_locale(preferred_locales):
        def normalize(locale_ids):
            return [id.replace('-', '_') for id in locale_ids if id]

        available_locales = get_available_locales()
        if 'en_US' not in available_locales:
            available_locales.append('en_US')
        locale = Locale.negotiate(normalize(preferred_locales),
                                  normalize(available_locales))
        if locale and str(locale) not in available_locales:
            # The list of get_available_locales() must include locale
            # identifier from str(locale), but zh_* don't be included after
            # Babel 1.0. Avoid expanding zh_* to zh_Hans_CN and zh_Hant_TW
            # to clear "script" property of Locale instance. See #11258.
            locale._data  # load localedata before clear script property
            locale.script = None
            assert str(locale) in available_locales
        return locale
Example #28
0
def locale_neg(request):
    avail = request.locales
    loc = request.params.get('__locale')
    if loc is None:
        loc = request.session.get('ui.locale')
    if loc is None and request.accept_language:
        loc = Locale.negotiate(list(request.accept_language),
                               list(request.locales),
                               sep='-')
        if loc:
            loc = str(loc)
    if loc is None:
        loc = request.registry.settings.get('pyramid.default_locale_name',
                                            'en')
    if loc in avail:
        request.session['ui.locale'] = loc
        return loc
    return 'en'
Example #29
0
 def getLocale(rh, tag):
     """ Retrieve the locale tag from a prioritized list of sources
     NB We cannot return None because there has to be a locale - the app has to be some language or other.
     """
     localeTags = rh.app.config.get('locales')
     if localeTags: 
         # 1. use tag param
         if tag in localeTags:
             return tag
         
         # 2. retrieve locale tag from url query string
         tag = rh.request.get("hl", None)
         if tag:
             qs_items = rh.request.GET
             del qs_items['hl']  # remove the hl item from the qs - it has now been processed 
         if tag in localeTags:
             return tag
             
         # 3. retrieve locale tag from cookie
         tag = rh.request.cookies.get('hl', None)
         if tag in localeTags:
             return tag
             
         # 4. retrieve locale tag from accept language header
         tag = get_locale_from_accept_header(rh.request, localeTags)
         if tag:
             return tag
         
         # 5. detect locale tag from IP address location
         ctry = getRequestLocation(rh.request, 'Country')
         if ctry:
             tag = Locale.negotiate(ctry, localeTags)
             if tag:
                 return tag
            
         # 6. use the 1st member of localeTags
         tag = localeTags[0]
         if tag:
             return tag
      
         # 7. Use this locale if all attempts above have failed.
     return 'en' # NB 'en' is chosen simply because the string literals and comments in this app happen to be in English. Its not because of a bias.
Example #30
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(Locale.negotiate(_KNOWN_LOCALES, requested))

    if locale is None:
        locale = get_default_locale()
    
    options = [str(locale), locale.language, str(get_default_locale()),
        get_default_locale().language]
    for language in options:
        try:
            set_lang(language) 
            tmpl_context.language = language
        except: pass
Example #31
0
def get_locale_from_accept_header(request):
    """
    Detect locale from request.header 'Accept-Language'
    Locale with the highest quality factor that most nearly matches our 
    config.locales is returned.
    cls: self object

    Note that in the future if
        all User Agents adopt the convention of sorting quality factors in descending order
        then the first can be taken without needing to parse or sort the accept header
        leading to increased performance
        (see http://lists.w3.org/Archives/Public/ietf-http-wg/2012AprJun/0473.html)
    """
    header = request.headers.get("Accept-Language", '')
    parsed = parse_accept_language_header(header)
    if parsed is None:
        return None
    locale_list_sorted_by_q = sorted(parsed.iterkeys(), reverse=True)
    locale = Locale.negotiate(locale_list_sorted_by_q, config.locales, sep='_')
    return str(locale)
Example #32
0
def get_locale_from_accept_header(request):
    """
    Detect locale from request.header 'Accept-Language'
    Locale with the highest quality factor that most nearly matches our 
    config.locales is returned.
    cls: self object

    Note that in the future if
        all User Agents adopt the convention of sorting quality factors in descending order
        then the first can be taken without needing to parse or sort the accept header
        leading to increased performance
        (see http://lists.w3.org/Archives/Public/ietf-http-wg/2012AprJun/0473.html)
    """
    header = request.headers.get("Accept-Language", '')
    parsed = parse_accept_language_header(header)
    if parsed is None:
        return None
    locale_list_sorted_by_q = sorted(parsed.iterkeys(), reverse=True)
    locale = Locale.negotiate(locale_list_sorted_by_q, config.locales, sep='_')
    return str(locale)
Example #33
0
def handle_request(request, tmpl_context):
    from pylons import session

    tmpl_context.language = locale = None
    if 'locale' in session:
        locale = Locale.parse(session.get('locale'))
    else:
        requested = [l.replace('-', '_') for l in request.languages]
        locale = Locale.parse(Locale.negotiate(_KNOWN_LOCALES, requested))

    if locale is None:
        locale = get_default_locale()

    options = [
        str(locale), locale.language,
        str(get_default_locale()),
        get_default_locale().language
    ]
    for language in options:
        try:
            set_lang(language)
            tmpl_context.language = language
        except:
            pass
Example #34
0
 def _find_locale_with_territory_from_language_only_locale(locale: Locale):
     # try to get a territory specific locale (eg. "es_ES") from a language-only locale (eg. "es")
     return Locale.negotiate([str(locale)], babel.core.LOCALE_ALIASES.values())
Example #35
0
def get(message, string):
    requested_locale = [str(message.from_user.locale), "en_GB"]
    available_locales = list(filter(lambda x: string in STRINGS[x].keys(), STRINGS.keys()))
    chosen_locale = Locale.negotiate(requested_locale, available_locales)
    return STRINGS[str(chosen_locale)][string]
Example #36
0
 def test_negotiate_custom_separator(self):
     de_DE = Locale.negotiate(['de-DE', 'de'], ['en-us', 'de-de'], sep='-')
     assert (de_DE.language, de_DE.territory) == ('de', 'DE')
Example #37
0
from babel import Locale

# Parsing
l = Locale.parse('de-DE', sep='-')
print("Locale name: {0}".format(l.display_name))

l = Locale.parse('und_GR', sep='_')
print("Locale name: {0}".format(l.display_name))

# Detecting
l = Locale.negotiate(['de_DE', 'en_AU'], ['de_DE', 'de_AT'])
print("Locale negociated: {0}".format(l.display_name))

print(Locale('it').english_name)
print(Locale('it').get_display_name('fr_FR'))
print(Locale('it').get_language_name('de_DE'))
print(Locale('de', 'DE').languages['zh'])

print(Locale('el', 'GR').scripts['Copt'])

# Calendar
locale = Locale('it')
month_names = locale.days['format']['wide'].items()
print(list(month_names))
Example #38
0
def get_locale():
    if "l10n" in request.values:
        return Locale.negotiate([request.values["l10n"]], LANGUAGES)
    return request.accept_languages.best_match(LANGUAGES)