From d11b9ffcc0b1d6b8e87df6319f09bf284196e41a Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sun, 21 Mar 2021 19:03:57 +0100 Subject: Fixed #32581 -- Prevented to_locale() from corrupting locale names. --- django/utils/translation/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'django/utils') diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py index aa5cd33f5b..29ac60ad1d 100644 --- a/django/utils/translation/__init__.py +++ b/django/utils/translation/__init__.py @@ -201,9 +201,9 @@ def to_language(locale): def to_locale(language): """Turn a language name (en-us) into a locale name (en_US).""" - language, _, country = language.lower().partition('-') + lang, _, country = language.lower().partition('-') if not country: - return language + return language[:3].lower() + language[3:] # A language with > 2 characters after the dash only has its first # character after the dash capitalized; e.g. sr-latn becomes sr_Latn. # A language with 2 characters after the dash has both characters @@ -212,7 +212,7 @@ def to_locale(language): country = country.title() if len(country) > 2 else country.upper() if tail: country += '-' + tail - return language + '_' + country + return lang + '_' + country def get_language_from_request(request, check_path=False): -- cgit v1.3