Django i18n和python语言环境(和日期)

Django i18n和python语言环境(和日期),python,django,internationalization,Python,Django,Internationalization,我一直在玩Django的i18n系统,它似乎大部分都在工作。然而,模型代码中的日期似乎导致了一个问题 我使用datetime.strftime来填充几个选项元组,然后在表单中使用这些元组 据我所知,django将根据用户的选择设置语言环境,以便datetime.strftime()以适当的语言输出,但这似乎没有发生 我错过了什么 如果我手动设置语言环境(例如locale.setlocale(locale.LC_-TIME,'de_-de.UTF-8')),datetime会正确转换 谢谢 Tom

我一直在玩Django的i18n系统,它似乎大部分都在工作。然而,模型代码中的日期似乎导致了一个问题

我使用datetime.strftime来填充几个选项元组,然后在表单中使用这些元组

据我所知,django将根据用户的选择设置语言环境,以便datetime.strftime()以适当的语言输出,但这似乎没有发生

我错过了什么

如果我手动设置语言环境(例如locale.setlocale(locale.LC_-TIME,'de_-de.UTF-8')),datetime会正确转换

谢谢


Tom

Django没有为翻译设置语言环境,只是加载翻译目录。为了获得想要的效果,您可以设置locale(这不是一个好的选择,因为它可以在整个进程范围内工作),或者使用专门的库。我推荐具有良好Django集成的版本。

我最近遇到了类似的问题,但通过使用而不是python
strftime解决了这个问题。

啊,谢谢你。我认为django文档应该更明确一点,他们建议i18n做的比实际做的更多。我认为它做的是广告中的“i18n”。格式化日期和货币值是“l10n”(本地化),这在Django中无论如何都是不存在的。这是巴别塔图书馆的领域。:)我尝试使用format,但%B和%B无法识别:(有帮助吗?感谢code22提供的format解决方案,我不想在我的小项目中使用babel。按预期工作