From ef4d84d11ab9357d9c6e35b2a3a0a9d4fb310075 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sat, 4 Feb 2012 18:43:20 +0000 Subject: [PATCH] Fixed #17555 -- Added support for a missing trailing slash when redirecting based on the browser language. Thanks, neaf. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17443 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/translation/trans_real.py | 2 +- tests/regressiontests/i18n/tests.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py index 28d20127c8f..419b3809e7b 100644 --- a/django/utils/translation/trans_real.py +++ b/django/utils/translation/trans_real.py @@ -38,7 +38,7 @@ accept_language_re = re.compile(r''' (?:\s*,\s*|$) # Multiple accepts per header. ''', re.VERBOSE) -language_code_prefix_re = re.compile(r'^/([\w-]+)/') +language_code_prefix_re = re.compile(r'^/([\w-]+)(/|$)') def to_locale(language, to_lower=False): """ diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py index 77bd35bab1d..27b25468d46 100644 --- a/tests/regressiontests/i18n/tests.py +++ b/tests/regressiontests/i18n/tests.py @@ -793,6 +793,18 @@ class MiscTests(TestCase): r.META = {'HTTP_ACCEPT_LANGUAGE': 'de'} self.assertEqual(g(r), 'zh-cn') + def test_get_language_from_path(self): + from django.utils.translation.trans_real import get_language_from_path as g + self.assertEqual(g('/pl/'), 'pl') + self.assertEqual(g('/pl'), 'pl') + self.assertEqual(g('/xyz/'), None) + + def test_get_language_from_path(self): + from django.utils.translation.trans_null import get_language_from_path as g + self.assertEqual(g('/pl/'), None) + self.assertEqual(g('/pl'), None) + self.assertEqual(g('/xyz/'), None) + def test_percent_in_translatable_block(self): extended_locale_paths = settings.LOCALE_PATHS + ( os.path.join(here, 'other', 'locale'),