这可能是一个非常常见的问题,但经过大量谷歌搜索后,我仍然没有找到有用的答案。

我的网站只有英文版,但我喜欢保留用户 session 的日志,我需要获取客户的语言。我已经读到我可以从 HTTP_ACCEPT_LANGUAGE header 中获取语言信息,该 header 是以逗号分隔的客户端语言列表,按优先级降序排列,即第一个是主要语言。

我想在 Django 中获取客户端语言的两个字母的语言代码。例如

en-gb, en-us                       en
fr-fr, en-au                       fr
zh, en-us; q=0.8, en; q=0.6       zh

我怎样才能做到这一点?我必须自己解析标题还是 Django 有内置的语言列表?

是否有所有语言代码的详细列表?

谢谢。

最佳答案

使用 translation.get_language_from_request :

from django.utils import translation

def view(request):

    client_lang = translation.get_language_from_request(request)

顺便说一下,你为什么想要这个?您是否检查过 i18n and l10n 的 Django 支持,因为
如果您启用了 LocaleMiddleware ,您还可以使用 request.LANGUAGE_CODE 获取语言。

关于python - 获取客户端的两字母语言代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7092821/

10-14 19:00
查看更多