mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	Consolidated duplicate to_locale() implementations.
Follow up to ac59ec8f1a.
			
			
This commit is contained in:
		| @@ -194,7 +194,19 @@ def check_for_language(lang_code): | ||||
|  | ||||
|  | ||||
| def to_locale(language): | ||||
|     return _trans.to_locale(language) | ||||
|     """Turn a language name (en-us) into a locale name (en_US).""" | ||||
|     language = language.lower() | ||||
|     parts = language.split('-') | ||||
|     try: | ||||
|         country = parts[1] | ||||
|     except IndexError: | ||||
|         return language | ||||
|     # 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 | ||||
|     # capitalized; e.g. en-us becomes en_US. | ||||
|     parts[1] = country.title() if len(country) > 2 else country.upper() | ||||
|     return parts[0] + '_' + '-'.join(parts[1:]) | ||||
|  | ||||
|  | ||||
| def get_language_from_request(request, check_path=False): | ||||
|   | ||||
| @@ -4,8 +4,6 @@ | ||||
|  | ||||
| from django.conf import settings | ||||
|  | ||||
| from .trans_real import to_locale as trans_real_to_locale | ||||
|  | ||||
|  | ||||
| def gettext(message): | ||||
|     return message | ||||
| @@ -54,9 +52,6 @@ def check_for_language(x): | ||||
|     return True | ||||
|  | ||||
|  | ||||
| to_locale = trans_real_to_locale | ||||
|  | ||||
|  | ||||
| def get_language_from_request(request, check_path=False): | ||||
|     return settings.LANGUAGE_CODE | ||||
|  | ||||
|   | ||||
| @@ -15,7 +15,8 @@ from django.core.exceptions import AppRegistryNotReady | ||||
| from django.core.signals import setting_changed | ||||
| from django.dispatch import receiver | ||||
| from django.utils.safestring import SafeData, mark_safe | ||||
| from django.utils.translation import LANGUAGE_SESSION_KEY | ||||
|  | ||||
| from . import LANGUAGE_SESSION_KEY, to_locale | ||||
|  | ||||
| # Translations are cached in a dictionary for every language. | ||||
| # The active translations are stored by threadid to make them thread local. | ||||
| @@ -56,23 +57,6 @@ def reset_cache(**kwargs): | ||||
|         get_supported_language_variant.cache_clear() | ||||
|  | ||||
|  | ||||
| def to_locale(language): | ||||
|     """Turn a language name (en-us) into a locale name (en_US).""" | ||||
|     language = language.lower() | ||||
|     parts = language.split('-') | ||||
|     try: | ||||
|         country = parts[1] | ||||
|     except IndexError: | ||||
|         return language | ||||
|     else: | ||||
|         # 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 | ||||
|         # capitalized; e.g. en-us becomes en_US. | ||||
|         parts[1] = country.title() if len(country) > 2 else country.upper() | ||||
|     return parts[0] + '_' + '-'.join(parts[1:]) | ||||
|  | ||||
|  | ||||
| def to_language(locale): | ||||
|     """Turn a locale name (en_US) into a language name (en-us).""" | ||||
|     p = locale.find('_') | ||||
|   | ||||
| @@ -286,7 +286,6 @@ class TranslationTests(SimpleTestCase): | ||||
|         for lang, locale in tests: | ||||
|             with self.subTest(lang=lang): | ||||
|                 self.assertEqual(to_locale(lang), locale) | ||||
|                 self.assertEqual(trans_null.to_locale(lang), locale) | ||||
|  | ||||
|     def test_to_language(self): | ||||
|         self.assertEqual(trans_real.to_language('en_US'), 'en-us') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user