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