Opened 7 years ago

Last modified 6 years ago

#28636 new New feature

Translation module: Check `LANG_INFO` against user's language preference as optional feature — at Version 2

Reported by: Denis Anuschewski Owned by: nobody
Component: Internationalization Version: dev
Severity: Normal Keywords: translation, internationalization, request
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: yes
Needs tests: yes Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Denis Anuschewski)

Problem: In the current state, the user's discovered language preference is only returned when found in settings.LANGUAGES. That's more than sufficient for the normal translation routine, but there seems to be no way (at least no DRY way) to find out a user's preference REGARDLESS of settings.LANGUAGES.

Suggestion: It would be nice to have an easy way for finding out a languange preference from request, even if it's not listed in your supported languages. You could think of an optional flag, so that the preference from get_language_from_request is checked against LANG_INFO in the translation module rather than against settings.LANGUAGES. This would give you one of all available languages in the translation module. You could use that e.g. for comparing with settings.LANGUAGE_CODE and add a fallback for specific cases.

Change History (2)

comment:1 by Denis Anuschewski, 7 years ago

In my specific case I wrote a sub class from LocaleMiddleware in order to use add_fallback whenever a language gets detected that is not equal to settings.LANGUAGE_CODE. But that seems to be not possible with current Django because you always get the value of settings.LANGUAGE_CODE when the discovered language is not in settings.LANGUAGES.

Overwriting the function get_languages didn't work for me because translation was then activated for every language. I would like to have translations only for specific languages when I explicitly put them into settings.LANGUAGES, but also a fallback for every language except of settings.LANGUAGE_CODE.

Last edited 7 years ago by Denis Anuschewski (previous) (diff)

comment:2 by Denis Anuschewski, 7 years ago

Component: UtilitiesInternationalization
Description: modified (diff)
Keywords: internationalization added; locale removed
Note: See TracTickets for help on using tickets.
Back to Top