Django 国际化与 Python 语言环境(及日期)

5 投票
2 回答
4686 浏览
提问于 2025-04-15 13:48

我最近在玩Django的国际化系统,感觉大部分功能都正常。不过,在模型代码中的日期似乎出现了一些问题。

我使用datetime.strftime来填充一些选择项(CHOICES),然后这些选择项会在表单中使用。

根据我的理解,Django会根据用户的选择来设置语言环境,这样datetime.strftime()就能输出相应语言的日期,但这似乎没有发生。

我漏掉了什么呢?

如果我手动设置语言环境(比如使用locale.setlocale(locale.LC_TIME,'de_DE.UTF-8')),那么日期就能正确翻译了。

谢谢,

汤姆

2 个回答

1

我最近也遇到了类似的问题,但我通过使用format来解决,而不是用Python的strftime

3

Django并不会自动设置翻译的语言环境,它只是加载翻译的内容。如果你想要达到想要的效果,你要么手动设置语言环境(但这样做不好,因为它会影响整个程序的运行),要么使用专门的库。我推荐使用Babel,这个库和Django的结合非常不错。

撰写回答