这可能是一个非常常见的问题,但经过大量谷歌搜索后,我仍然没有找到有用的答案。
我的网站只有英文版,但我喜欢记录用户会话的日志,我需要获取客户端的语言。我已经读过,我可以从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是否有内置的语言列表?
是否有所有语言代码的详细列表?
感谢。
答案 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
获取语言。