如何以多种语言显示日期/时间?

时间:2011-03-23 19:15:33

标签: python datetime locale babel

我想用多种语言显示日期和时间(或分别显示日期或时间)。特别是英语和西班牙语,但未来可能会使用其他语言。

我认为pythons time.strftime函数与locale.setlocal结合使用。我在阅读了文档(http://docs.python.org/library/locale.html)之后我已经排除了这一点,库不应该调用locale.setlocal,所以我不应该只是“翻转”(更改,然后恢复)我库中的语言环境设置。 / p>

我也考虑过python库Babel,但我在他们的文档(http://babel.edgewall.org/wiki/Documentation/0.9/dates.html)中读到解析“未正确实现”的日期,这与我有关。我确实需要日期解析功能。但是,Babel可以使用不同的区域设置显示时间。

第三个[hybrid]选项是使用pythons datetime来解析日期,然后使用Babel以多种语言/语言环境显示日期。这有点乱,因为strptime使用它自己的格式字符串语法,而Babel使用LDML语法作为其格式字符串。

可能还有其他选择。问题是:以多种语言显示日期或时间的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

我会使用 gettext 机制将翻译维护为标准PO文件。 对于每种语言,您将翻译保存在专用文件中。您将月份和日期名称用作 msgid ,并将特定翻译保留为 msgstr

http://docs.python.org/library/gettext.html