Opened 3 weeks ago

Last modified 2 days ago

#28755 assigned Bug

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: Accepted
Has patch: yes Needs documentation: no
Needs tests: yes 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 (4)

comment:1 Changed 2 weeks ago by Claude Paroz

Easy pickings: unset
Has patch: unset
Triage Stage: UnreviewedAccepted

comment:2 Changed 13 days ago by ChillarAnand

Owner: changed from nobody to ChillarAnand
Status: newassigned

comment:3 Changed 2 days ago by ChillarAnand

Cc: ChillarAnand added
Has patch: set

comment:4 Changed 2 days ago by Claude Paroz

Needs tests: set
Note: See TracTickets for help on using tickets.
Back to Top