从 HTML header 获取 Django 中正确的语言代码
Get correct language code in Django from HTML header
我正在尝试从 HTML 负责人 ACCEPT-LANGUAGE header 那里获得语言选择。我为此使用了 parse_accept_lang_header() 模块。但它 return 给我所有的小字符语言代码。像这样 [('pt-pt', 1.0), ('pt-br', 0.8), ('en-us', 0.5), ('en', 0.3)]
但我想得到第一个小字符,第二个大写校正器。像这样[('pt-PT', 1.0), ('pt-BR', 0.8), ('en-US', 0.5), ('en', 0.3)]
。那我该怎么做呢?
我的代码如下:
from django.utils.translation.trans_real import parse_accept_lang_header
header_locales =parse_accept_lang_header(
request.META.get('HTTP_ACCEPT_LANGUAGE', None))
header_locales
return 我是小字符的语言环境名称。
django 似乎为您将语言代码小写 (thx dgel)。您是否需要大写版本?我猜你总是可以自己拆分代码并将其大写。或者您可以复制不带小写位的 parse_accept_lang_header
代码的功能。我不太确定用例是什么。
如果你需要查询你的数据库,你总是可以使用类似下面的东西(来自here and the original documenation):
MyClass.objects.filter(name__iexact=my_parameter)
我正在尝试从 HTML 负责人 ACCEPT-LANGUAGE header 那里获得语言选择。我为此使用了 parse_accept_lang_header() 模块。但它 return 给我所有的小字符语言代码。像这样 [('pt-pt', 1.0), ('pt-br', 0.8), ('en-us', 0.5), ('en', 0.3)]
但我想得到第一个小字符,第二个大写校正器。像这样[('pt-PT', 1.0), ('pt-BR', 0.8), ('en-US', 0.5), ('en', 0.3)]
。那我该怎么做呢?
我的代码如下:
from django.utils.translation.trans_real import parse_accept_lang_header
header_locales =parse_accept_lang_header(
request.META.get('HTTP_ACCEPT_LANGUAGE', None))
header_locales
return 我是小字符的语言环境名称。
django 似乎为您将语言代码小写 (thx dgel)。您是否需要大写版本?我猜你总是可以自己拆分代码并将其大写。或者您可以复制不带小写位的 parse_accept_lang_header
代码的功能。我不太确定用例是什么。
如果你需要查询你的数据库,你总是可以使用类似下面的东西(来自here and the original documenation):
MyClass.objects.filter(name__iexact=my_parameter)