================================================== Accept-Language bug ==================================================
If there is no language file `en` installed, kallithea does not handle Accept-Language correctly, when `en` is the prioritized language, e.g.: .. code-block:: text Accept-Language: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 -------------------------------------------------- Environment -------------------------------------------------- INI settings: .. code-block:: ini ## Internationalization (see setup documentation for details) ## By default, the language requested by the browser is used if available. #i18n.enabled = false ## Fallback language, empty for English (valid values are the names of subdirectories in kallithea/i18n): i18n.lang = --------------------------------------------------- Request with Prio English, German --------------------------------------------------- If there is no language file for `en` installed, the language file `de` is used, which is an **error**. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Message file `en` not installed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Since language file `en` cannot be found, the message file `de` is used, which has higher priority than the fallback. **This is an error**. .. code-block:: text Accept-Language: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 .. code-block:: text [tg.request_local] Request.languages_best_match: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 [tg.request_local] Request.languages_best_match: ['en-US', 'en', 'de-DE', 'de'] [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', 'US', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', None, None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', 'DE', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', None, None, None) [tg.request_local] Request.languages_best_match: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 [tg.request_local] Request.languages_best_match: ['en-US', 'en', 'de-DE', 'de'] [tg.i18n] ugettext: tg.translator.info(): content-transfer-encoding: 8bit [tg.i18n] ugettext: tg.translator.info(): content-type: text/plain; charset=utf-8 [tg.i18n] ugettext: tg.translator.info(): generated-by: Babel 2.7.0 [tg.i18n] ugettext: tg.translator.info(): language: de [tg.i18n] ugettext: tg.translator.info(): language-team: de <l...@li.org> [tg.i18n] ugettext: tg.translator.info(): last-translator: FULL NAME <EMAIL@ADDRESS> [tg.i18n] ugettext: tg.translator.info(): mime-version: 1.0 [tg.i18n] ugettext: tg.translator.info(): plural-forms: nplurals=2; plural=n != 1 [tg.i18n] ugettext: tg.translator.info(): po-revision-date: YEAR-MO-DA HO:MI+ZONE [tg.i18n] ugettext: tg.translator.info(): pot-creation-date: 2019-11-30 22:58+0100 [tg.i18n] ugettext: tg.translator.info(): project-id-version: PROJECT VERSION [tg.i18n] ugettext: tg.translator.info(): report-msgid-bugs-to: translati...@kallithea-scm.org ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Message file `en` installed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Since language file `en` is found, it is used, which is the corrct behavior. .. code-block:: text Accept-Language: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 .. code-block:: text [tg.request_local] Request.languages_best_match: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 [tg.request_local] Request.languages_best_match: ['en-US', 'en', 'de-DE', 'de'] [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', 'US', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', None, None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', 'DE', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', None, None, None) [tg.request_local] Request.languages_best_match: en-US, en;q=0.8, de-DE;q=0.5, de;q=0.3 [tg.request_local] Request.languages_best_match: ['en-US', 'en', 'de-DE', 'de'] [tg.i18n] ugettext: tg.translator.info(): content-transfer-encoding: 8bit [tg.i18n] ugettext: tg.translator.info(): content-type: text/plain; charset=utf-8 [tg.i18n] ugettext: tg.translator.info(): generated-by: Babel 1.3 [tg.i18n] ugettext: tg.translator.info(): language-team: en <l...@li.org> [tg.i18n] ugettext: tg.translator.info(): last-translator: Wolfgang Scherer <wolfgang.sche...@gmx.de>> [tg.i18n] ugettext: tg.translator.info(): mime-version: 1.0 [tg.i18n] ugettext: tg.translator.info(): plural-forms: nplurals=2; plural=(n != 1) [tg.i18n] ugettext: tg.translator.info(): po-revision-date: 2019-12-01 16:57+0100 [tg.i18n] ugettext: tg.translator.info(): pot-creation-date: 2019-12-01 16:44+0100 [tg.i18n] ugettext: tg.translator.info(): project-id-version: Kallithea 0.5.0 [tg.i18n] ugettext: tg.translator.info(): report-msgid-bugs-to: translati...@kallithea-scm.org --------------------------------------------------- Request with Prio German, English --------------------------------------------------- There is no difference, whether language file `en` is installed or not. Language file `en` is **not** installed, language file `de` is found. .. code-block:: text Accept-Language: de-DE, de;q=0.8, en-US;q=0.5, en;q=0.3 .. code-block:: text [tg.request_local] Request.languages_best_match: de-DE, de;q=0.8, en-US;q=0.5, en;q=0.3 [tg.request_local] Request.languages_best_match: ['de-DE', 'de', 'en-US', 'en'] [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', 'DE', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', None, None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', 'US', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', None, None, None) [tg.request_local] Request.languages_best_match: de-DE, de;q=0.8, en-US;q=0.5, en;q=0.3 [tg.request_local] Request.languages_best_match: ['de-DE', 'de', 'en-US', 'en'] [tg.i18n] ugettext: tg.translator.info(): content-transfer-encoding: 8bit [tg.i18n] ugettext: tg.translator.info(): content-type: text/plain; charset=utf-8 [tg.i18n] ugettext: tg.translator.info(): generated-by: Babel 2.7.0 [tg.i18n] ugettext: tg.translator.info(): language: de [tg.i18n] ugettext: tg.translator.info(): language-team: de <l...@li.org> [tg.i18n] ugettext: tg.translator.info(): last-translator: FULL NAME <EMAIL@ADDRESS> [tg.i18n] ugettext: tg.translator.info(): mime-version: 1.0 [tg.i18n] ugettext: tg.translator.info(): plural-forms: nplurals=2; plural=n != 1 [tg.i18n] ugettext: tg.translator.info(): po-revision-date: YEAR-MO-DA HO:MI+ZONE [tg.i18n] ugettext: tg.translator.info(): pot-creation-date: 2019-11-30 22:58+0100 [tg.i18n] ugettext: tg.translator.info(): project-id-version: PROJECT VERSION [tg.i18n] ugettext: tg.translator.info(): report-msgid-bugs-to: translati...@kallithea-scm.org Language file `en` is installed, language file `de` is found. .. code-block:: text Accept-Language: de-DE, de;q=0.8, en-US;q=0.5, en;q=0.3 .. code-block:: text [tg.request_local] Request.languages_best_match: de-DE, de;q=0.8, en-US;q=0.5, en;q=0.3 [tg.request_local] Request.languages_best_match: ['de-DE', 'de', 'en-US', 'en'] [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', 'DE', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('de', None, None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', 'US', None, None) [tg.i18n] _parse_locale: lang, territory, script, variant: ('en', None, None, None) [tg.request_local] Request.languages_best_match: de-DE, de;q=0.8, en-US;q=0.5, en;q=0.3 [tg.request_local] Request.languages_best_match: ['de-DE', 'de', 'en-US', 'en'] [tg.i18n] ugettext: tg.translator.info(): content-transfer-encoding: 8bit [tg.i18n] ugettext: tg.translator.info(): content-type: text/plain; charset=utf-8 [tg.i18n] ugettext: tg.translator.info(): generated-by: Babel 2.7.0 [tg.i18n] ugettext: tg.translator.info(): language: de [tg.i18n] ugettext: tg.translator.info(): language-team: de <l...@li.org> [tg.i18n] ugettext: tg.translator.info(): last-translator: FULL NAME <EMAIL@ADDRESS> [tg.i18n] ugettext: tg.translator.info(): mime-version: 1.0 [tg.i18n] ugettext: tg.translator.info(): plural-forms: nplurals=2; plural=n != 1 [tg.i18n] ugettext: tg.translator.info(): po-revision-date: YEAR-MO-DA HO:MI+ZONE [tg.i18n] ugettext: tg.translator.info(): pot-creation-date: 2019-11-30 22:58+0100 [tg.i18n] ugettext: tg.translator.info(): project-id-version: PROJECT VERSION [tg.i18n] ugettext: tg.translator.info(): report-msgid-bugs-to: translati...@kallithea-scm.org _______________________________________________ kallithea-general mailing list kallithea-general@sfconservancy.org https://lists.sfconservancy.org/mailman/listinfo/kallithea-general