这可能是一个非常常见的问题,但经过大量谷歌搜索后,我仍然没有找到有用的答案。
我的网站只有英文版,但我喜欢保留用户 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/