# HG changeset patch # User Mads Kiilerich # Date 2023-04-09 14:38:31 # 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 --git a/kallithea/config/app_cfg.py b/kallithea/config/app_cfg.py --- a/kallithea/config/app_cfg.py +++ b/kallithea/config/app_cfg.py @@ -78,6 +78,10 @@ base_config.update_blueprint({ # 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.