获取客户端的双字母语言代码

时间:2011-08-17 12:31:32

标签: python django

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

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

我想在Django中获取客户端语言的双字母语言代码。 e.g。

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

我该怎么做?我是否必须自己解析标题或者Django是否有内置的语言列表?

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

感谢。

1 个答案:

答案 0 :(得分:5)

使用translation.get_language_from_request

from django.utils import translation

def view(request):

    client_lang = translation.get_language_from_request(request)

顺便问一下你为什么要这个?你检查了django对i18n and l10n的支持吗,因为 如果您启用LocaleMiddleware,则还可以使用request.LANGUAGE_CODE获取语言。