我需要在Django模板的输出中嵌入当前的语言环境(准确地说,作为URL的一部分)。我知道如果我{{ LANGUAGE_CODE }}
我可以访问当前的语言 { load i18n }
但是有类似的方式来访问当前的区域设置吗?
我想我可以在视图逻辑中使用to_locale()
并将其放在模板的上下文中,但我正在寻找可能是Django框架本身一部分的更通用的东西。有没有这样的语法?
答案 0 :(得分:29)
我通过在模板
中包含以下代码解决了这个问题{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
并且变量LANGUAGE_CODE
具有您想要的值(有关示例用法,另请参阅django docs)。
答案 1 :(得分:9)
您可能需要write your own context processor,它会调用to_locale
并自动使用结果填充上下文 - 它就是这样的。
from django.utils.translation import to_locale, get_language
def locale(request):
return {'LOCALE': to_locale(get_language())}
答案 2 :(得分:2)
我想实现我自己的custom template tag只会输出to_locale(get_language())
,但上面的答案更容易实现,所以我更喜欢它。