1 | diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py
|
---|
2 | index 141cd14..4e9bd85 100644
|
---|
3 | --- a/django/core/urlresolvers.py
|
---|
4 | +++ b/django/core/urlresolvers.py
|
---|
5 | @@ -686,6 +686,7 @@ def translate_url(url, lang_code):
|
---|
6 | to_be_reversed = "%s:%s" % (match.namespace, match.url_name) if match.namespace else match.url_name
|
---|
7 | with override(lang_code):
|
---|
8 | try:
|
---|
9 | + match.kwargs = dict((k, v) for k, v in match.kwargs.iteritems() if not v is None)
|
---|
10 | url = reverse(to_be_reversed, args=match.args, kwargs=match.kwargs)
|
---|
11 | except NoReverseMatch:
|
---|
12 | pass
|
---|
13 | diff --git a/tests/i18n/patterns/tests.py b/tests/i18n/patterns/tests.py
|
---|
14 | index 1e8bb9d..485a3c7 100644
|
---|
15 | --- a/tests/i18n/patterns/tests.py
|
---|
16 | +++ b/tests/i18n/patterns/tests.py
|
---|
17 | @@ -138,6 +138,9 @@ class URLTranslationTests(URLTestCaseBase):
|
---|
18 | with translation.override('en'):
|
---|
19 | self.assertEqual(translate_url('/en/non-existent/', 'nl'), '/en/non-existent/')
|
---|
20 | self.assertEqual(translate_url('/en/users/', 'nl'), '/nl/gebruikers/')
|
---|
21 | + # URL with arguments
|
---|
22 | + self.assertEqual(translate_url('/en/with-arguments/regular-argument/', 'nl'), '/nl/with-arguments/regular-argument/')
|
---|
23 | + self.assertEqual(translate_url('/en/with-arguments/regular-argument/optional-argument.html', 'nl'), '/nl/with-arguments/regular-argument/optional-argument.html')
|
---|
24 | # Namespaced URL
|
---|
25 | self.assertEqual(translate_url('/en/account/register/', 'nl'), '/nl/profiel/registeren/')
|
---|
26 | self.assertEqual(translation.get_language(), 'en')
|
---|
27 | diff --git a/tests/i18n/patterns/urls/default.py b/tests/i18n/patterns/urls/default.py
|
---|
28 | index caf1a76..d35a610 100644
|
---|
29 | --- a/tests/i18n/patterns/urls/default.py
|
---|
30 | +++ b/tests/i18n/patterns/urls/default.py
|
---|
31 | @@ -15,6 +15,7 @@ urlpatterns = [
|
---|
32 | urlpatterns += i18n_patterns(
|
---|
33 | url(r'^prefixed/$', view, name='prefixed'),
|
---|
34 | url(r'^prefixed\.xml$', view, name='prefixed_xml'),
|
---|
35 | + url(r'^with-arguments/(?P<argument>[\w-]+)/(?:(?P<argumentOptional>[\w-]+).html)?$', view, name='with-arguments'),
|
---|
36 | url(_(r'^users/$'), view, name='users'),
|
---|
37 | url(_(r'^account/'), include('i18n.patterns.urls.namespace', namespace='account')),
|
---|
38 | )
|
---|