# HG changeset patch # User Mads Kiilerich # Date 1681051111 -7200 # Node ID 84b4fc9db01686b311b03b95b05171e69e10120a # Parent 55715fe0a8e19c94bbd9fc737a52545ea4e0510d i18n: make sure 'en' in Accept-Language is recognized as having 100% coverage The workaround in 7c7d6b5c07c7 no longer works after upstream addressed the main issue and released the changes in TurboGears 2.4.3 . Setting `i18n.native = en` in the .ini works as a workaround. The native language for translations is an implementation detail that users shouldn't have to configure, so we define it as a default value without making it explicit in the generated .ini template files. Note that even though TG will figure out that languages like `en_US` should fall back to using the `en` `kallithea.mo`, it doesn't consider `en_US` native if `en` is in the native list but `en_US` isn't. We thus include the most common aliases for `en` in the list. diff -r 55715fe0a8e1 -r 84b4fc9db016 kallithea/config/app_cfg.py --- a/kallithea/config/app_cfg.py Fri Mar 31 21:17:02 2023 +0200 +++ b/kallithea/config/app_cfg.py Sun Apr 09 16:38:31 2023 +0200 @@ -78,6 +78,10 @@ # Set the default i18n source language so TG doesn't search beyond 'en' in Accept-Language. 'i18n.lang': 'en', + + # For TurboGears 2.4.3, define the native language for translations to + # prevent fall-through to languages requested with lower priority. + 'i18n.native': ['en', 'en_US', 'en_GB'], }) # DebugBar, a debug toolbar for TurboGears2.