【问题标题】:Django i18n and python locales (and dates)Django i18n 和 python 语言环境(和日期)
【发布时间】:2010-11-22 01:40:02
【问题描述】:

我一直在使用 Django 的 i18n 系统,它似乎大部分都在工作。但是,模型代码中的日期似乎会导致问题。

我使用 datetime.strftime 来填充一些 CHOICES 元组,然后在表单中使用这些元组。

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

我在这里错过了什么?

如果我手动设置语言环境(例如 locale.setlocale(locale.LC_TIME,'de_DE.UTF-8') )日期时间确实可以正确翻译。

谢谢,

汤姆

【问题讨论】:

    标签: python django internationalization


    【解决方案1】:

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

    【讨论】:

    • 我尝试使用格式,但无法识别 %B 和 %b :( 有什么帮助吗?
    • 感谢 code22 的格式解决方案,我不想在我的小项目中使用 babel。按预期工作
    【解决方案2】:

    Django 没有为翻译设置语言环境,只是加载翻译目录。要获得所需的效果,您可以设置语言环境(这不是一个好的选择,因为它适用于整个进程)或使用专门的库。我推荐Babel,它具有很好的 Django 集成。

    【讨论】:

    • 啊,谢谢zgoda。我宁愿认为 django 文档应该更明确一点,他们宁愿建议 i18n 做的比它实际做的更多。
    • 我会说它做“i18n”作为广告。格式化日期和货币值是“l10n”(本地化),这在 Django 中是不存在的。那是 Babel 库的领域。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2011-08-31
    相关资源
    最近更新 更多