Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:在模板中显示当前语言环境_Django_Localization_Internationalization - Fatal编程技术网

Django:在模板中显示当前语言环境

Django:在模板中显示当前语言环境,django,localization,internationalization,Django,Localization,Internationalization,我需要将当前语言环境嵌入Django模板的输出中(确切地说,作为URL的一部分)。我知道如果我{load i18n},我可以以{{language_code}}的身份访问当前的语言,但是是否有类似的方式访问当前的语言环境 我想我可以在视图逻辑中使用来_locale(),并将其放在模板的上下文中,但我正在寻找更通用的东西,它可能是Django框架本身的一部分。有这样一种语法吗?您可能会想,它会调用到_locale,并自动用结果填充上下文——就像这样 from django.utils.transl

我需要将当前语言环境嵌入Django模板的输出中(确切地说,作为URL的一部分)。我知道如果我
{load i18n}
,我可以以
{{language_code}}
的身份访问当前的语言,但是是否有类似的方式访问当前的语言环境

我想我可以在视图逻辑中使用
来_locale()
,并将其放在模板的上下文中,但我正在寻找更通用的东西,它可能是Django框架本身的一部分。有这样一种语法吗?

您可能会想,它会调用
到_locale
,并自动用结果填充上下文——就像这样

from django.utils.translation import to_locale, get_language
def locale(request):
    return {'LOCALE': to_locale(get_language())}

我想实现我自己的,只需将
输出到_locale(get_language())
,但是上面的答案更容易实现,所以我更喜欢它。

我通过在模板中包含下面的代码来解决这个问题

{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}

变量
LANGUAGE\u code
具有您想要的值(另请参见示例用法)。

我需要补充的是,上下文处理器仅在使用RequestContext时工作。我不是,所以我选择自定义模板标记。正如问题中所述,语言代码与区域名称不同。将“en gb”与“en_gb”进行比较。它们采用不同的标准格式。这与问题中所述的仅使用
{{{LANGUAGE\u code}}
有什么区别?在这两种情况下,我得到相同的输出。