コード例 #1
0
ファイル: __init__.py プロジェクト: bplus/grapi
    def process_resource(self, req, resp, resource, params):
        label = req.uri_template.replace('method', params.get('method', ''))
        label = label.replace('/', '_')
        req.context.label = label

        if not self.translations:
            req.context.i18n = nullTranslations
            return

        # Set language based on three settings in order:
        # - MailboxSettings
        # - HTTP ACCEPT-LANGUAGE Headers
        # - ?ui_locales parameter

        # The language is selected based on the three options and what languages are available,
        # - when de-at is requested and not available, pick de (if available)
        # - auto fallback to en-gb

        # HTTP ACCEPT-LANGUAGE
        accept_lang = req.headers.get('ACCEPT-LANGUAGE')
        #logging.debug("requesting accept-lang '%s'", accept_lang)
        if accept_lang:
            for lang, _ in parse_accept_language(accept_lang):
                translation = self.translations.get(lang)
                if translation:
                    req.context.i18n = translation
                    #logging.debug("using translation '%s'", lang)
                    return

        req.context.i18n = nullTranslations
コード例 #2
0
ファイル: test_accept_lang.py プロジェクト: unikiteam/grapi
def test_one_language():
    assert parse_accept_language('fr-CA') == [('fr-ca', 1), ('fr', 0.99)]
コード例 #3
0
ファイル: test_accept_lang.py プロジェクト: unikiteam/grapi
def test_empty():
    assert parse_accept_language('') == []
コード例 #4
0
ファイル: test_accept_lang.py プロジェクト: unikiteam/grapi
def test_normal():
    assert parse_accept_language('de-DE,ar-TN;q=0.7,de-AT;q=0.3') == [
        ('de-de', 1), ('de', 0.99), ('ar-tn', 0.7), ('ar', 0.68),
        ('de-at', 0.3), ('de', 0.27)
    ]
コード例 #5
0
ファイル: test_accept_lang.py プロジェクト: unikiteam/grapi
def test_quality():
    assert parse_accept_language('de-AT , de ; q=0.8') == [('de-at', 1.0),
                                                           ('de', 0.99),
                                                           ('de', 0.8)]
コード例 #6
0
ファイル: test_accept_lang.py プロジェクト: unikiteam/grapi
def test_multiple_languages():
    assert parse_accept_language('de-AT , de') == [('de-at', 1), ('de', 0.99),
                                                   ('de', 0.98)]