File tree 4 files changed +14
-2
lines changed 4 files changed +14
-2
lines changed Original file line number Diff line number Diff line change 23
23
from django .utils .functional import cached_property
24
24
from django .utils .http import RFC3986_SUBDELIMS , escape_leading_slashes
25
25
from django .utils .regex_helper import _lazy_re_compile , normalize
26
- from django .utils .translation import get_language
26
+ from django .utils .translation import get_language , get_supported_language_variant
27
27
28
28
from .converters import get_converter
29
29
from .exceptions import NoReverseMatch , Resolver404
@@ -351,7 +351,8 @@ def regex(self):
351
351
@property
352
352
def language_prefix (self ):
353
353
language_code = get_language () or settings .LANGUAGE_CODE
354
- if language_code == settings .LANGUAGE_CODE and not self .prefix_default_language :
354
+ default_language = get_supported_language_variant (settings .LANGUAGE_CODE )
355
+ if language_code == default_language and not self .prefix_default_language :
355
356
return ""
356
357
else :
357
358
return "%s/" % language_code
Original file line number Diff line number Diff line change 17
17
"get_language_from_request" ,
18
18
"get_language_info" ,
19
19
"get_language_bidi" ,
20
+ "get_supported_language_variant" ,
20
21
"check_for_language" ,
21
22
"to_language" ,
22
23
"to_locale" ,
Original file line number Diff line number Diff line change @@ -25,3 +25,7 @@ Bugfixes
25
25
26
26
* Enforced UTF-8 client encoding on PostgreSQL, following a regression in
27
27
Django 4.2 (:ticket:`34470`).
28
+
29
+ * Fixed a regression in Django 4.2 where ``i18n_patterns()`` didn't respect the
30
+ ``prefix_default_language`` argument when a fallback language of the default
31
+ language was used (:ticket:`34455`).
Original file line number Diff line number Diff line change @@ -1916,6 +1916,12 @@ def test_default_lang_without_prefix(self):
1916
1916
response = self .client .get ("/simple/" )
1917
1917
self .assertEqual (response .content , b"Yes" )
1918
1918
1919
+ @override_settings (LANGUAGE_CODE = "en-us" )
1920
+ def test_default_lang_fallback_without_prefix (self ):
1921
+ response = self .client .get ("/simple/" )
1922
+ self .assertEqual (response .status_code , 200 )
1923
+ self .assertEqual (response .content , b"Yes" )
1924
+
1919
1925
def test_other_lang_with_prefix (self ):
1920
1926
response = self .client .get ("/fr/simple/" )
1921
1927
self .assertEqual (response .content , b"Oui" )
You can’t perform that action at this time.
0 commit comments