Opened 7 years ago
Closed 7 years ago
#28755 closed Bug (fixed)
django.utils.translation.check_for_language doesn't check in the app folders
Reported by: | Dorian Amouroux | Owned by: | ChillarAnand |
---|---|---|---|
Component: | Internationalization | Version: | 1.11 |
Severity: | Normal | Keywords: | |
Cc: | ChillarAnand | Triage Stage: | Ready for checkin |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When using the set_language
view to set the language for the user, it doesn't work if the language file is not in settings.LOCALE_PATHS
nor in django/conf/locale/
.
Indeed set_language
(https://github.com/django/django/blob/stable/1.11.x/django/views/i18n.py#L50) calls the function check_for_language
. check_for_language
will check if the language in parameter exists in the gettext
catalog. However, check_for_language
calls the function all_locale_paths
(https://github.com/django/django/blob/stable/1.11.x/django/utils/translation/trans_real.py#L411) which doesn't contains the path of the apps.
I create a language that doesn't exist in the Django default language, I can't switch to this language because it cannot be found, it only exists in the locale
directory inside my apps.
Change History (9)
comment:1 by , 7 years ago
Easy pickings: | unset |
---|---|
Has patch: | unset |
Triage Stage: | Unreviewed → Accepted |
comment:2 by , 7 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 7 years ago
Cc: | added |
---|---|
Has patch: | set |
comment:4 by , 7 years ago
Needs tests: | set |
---|
comment:8 by , 7 years ago
Patch needs improvement: | set |
---|
Left a comment for improvement about putting the test in a better location.
comment:10 by , 7 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
PR -> https://github.com/django/django/pull/9351