#32922: Adding "preferred_language" property to "HttpRequest" object
--------------------------------+--------------------------------------
Reporter: Ruslan Semagin | Owner: nobody
Type: New feature | Status: closed
Component: HTTP handling | Version: 3.2
Severity: Normal | Resolution: wontfix
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------+--------------------------------------
Changes (by Nick Pope):
* status: new => closed
* resolution: => wontfix
Comment:
So unfortunately this is not as simple as what you have proposed for a
number of reasons:
- The `q` value for the priority of entries in the header should be taken
into account
[https://github.com/django/django/pull/14632#pullrequestreview-705530998
as mentioned by Keryn].
- The special `*` value shouldn't be returned as it isn't a valid
language.
- The value in `Accept-Language` may not be the user's "preferred"
language. It is just the languages that the client is configured to
accept.
See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-
Language for more details.
The good news is that Django has already implemented this and taken
everything into consideration. Check out
[https://docs.djangoproject.com/en/stable/ref/utils/#django.utils.translation.get_language_from_request
get_language_from_request()].
Obviously this restricts the returned languages to those that are
available in `settings.LANGUAGES`.
If you really need to have the "preferred" and unadulterated value from
the `Accept-Language` header, you could use the
`parse_accept_lang_header()` function, but beware that this is an
undocumented, private function.
--
Ticket URL: <https://code.djangoproject.com/ticket/32922#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/066.2796e25a6d218717ee29c31d0a34b521%40djangoproject.com.