Django:在模板中显示当前区域设置

时间:2011-06-15 17:38:12

标签: django localization internationalization

我需要在Django模板的输出中嵌入当前的语言环境(准确地说,作为URL的一部分)。我知道如果我{{ LANGUAGE_CODE }}我可以访问当前的语言 { load i18n }但是有类似的方式来访问当前的区域设置吗?

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

3 个答案:

答案 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()),但上面的答案更容易实现,所以我更喜欢它。