如何在django中切换L10N

时间:2010-10-24 15:20:44

标签: django templates internationalization translation

LANGUAGE_CODE = 'ru-RU'

USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale
USE_L10N = False

{{post.date_added | date:“b”}}在模板中显示“окт”。 如果我设置USE_I18N = False,那么它给出了应该是的oct。 这是一个错误吗?我怎么解决这个问题 ?是否有可能在模板中禁用USE_I18N(部分内容)?

2 个答案:

答案 0 :(得分:2)

Django严重依赖strftime,但是:http://docs.python.org/library/datetime.html 指令意义注释 %a Locale缩写的工作日名称。
%A Locale的完整工作日名称 %b Locale的缩写月份名称 %B Locale的完整月份名称。

因此,当USE_I18N = True时,月份名称将转换为俄语,因为它取决于语言环境。 可能会写我自己的模板标签:(

答案 1 :(得分:1)

从Django 1.3开始,您可以使用localizeunlocalize过滤器(在加载库l10n之后,即执行{% load l10n %})。

你可以试试这个:

{% load l10n %}
{{ post.date_added|unlocalize|date:"b" }}