从HTML标题中获取Django中的正确语言代码

时间:2015-07-07 21:48:16

标签: python django django-views

我正在尝试从HTML头部ACCEPT-LANGUAGE标头中选择语言。我已经使用了parse_accept_lang_header()模块。但它以小角色归还了我所有的语言代码。像这样[('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在小型修剪器中返回区域设置名称。

1 个答案:

答案 0 :(得分:0)

看起来django会为你降低语言代码(thx dgel)。您是否有理由需要高级版本?您可以随时拆分代码并自己大写它。或者您可以复制parse_accept_lang_header代码的功能而不使用小写位。我不确定用例是什么。

如果您需要查询数据库,可以使用以下内容(来自hereoriginal documenation):

MyClass.objects.filter(name__iexact=my_parameter)