Opened 7 years ago
Last modified 7 years ago
#28636 new New feature
Translation module: Check `LANG_INFO` against user's language preference as optional feature — at Version 4
Description (last modified by ) ¶
Problem: 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.
According to the ticket's flags, the next step(s) to move this issue forward are:
- To add tests to the patch, then uncheck the "Needs tests" flag on the ticket.
- To write documentation for the patch, then uncheck "Needs documentation" on the ticket.
If creating a new pull request, include a link to the pull request in the ticket comment when making that update. The usual format is:
[https://github.com/django/django/pull/#### PR]
.
Change History (4)
comment:2 by , 7 years ago
Component: | Utilities → Internationalization |
---|---|
Description: | modified (diff) |
Keywords: | internationalization added; locale removed |
comment:3 by , 7 years ago
Needs documentation: | set |
---|
comment:4 by , 7 years ago
Description: | modified (diff) |
---|
In my specific case I wrote a sub class from
LocaleMiddleware
in order to useadd_fallback
whenever a language gets detected that is not equal tosettings.LANGUAGE_CODE
. But that seems to be not possible with current Django because you always get the value ofsettings.LANGUAGE_CODE
when the discovered language is not insettings.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 intosettings.LANGUAGES
, but also a fallback for every language except ofsettings.LANGUAGE_CODE
.