==================================================
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

Reply via email to