2011-03-23 24 views
3

我想用多种语言显示日期和时间(或日期或时间,分开)。具体英文和西班牙文,但可能在将来以其他语言。如何以多种语言显示日期/时间?

我已经考虑python的time.strftime函数结合locale.setlocal。在阅读文档(http://docs.python.org/library/locale.html)后,我排除了库不应该调用locale.setlocal,所以我不应该只是“触发”(更改,然后恢复)库中的区域设置。

我也考虑过python库Babel,但是我在他们的文档(http://babel.edgewall.org/wiki/Documentation/0.9/dates.html)中看过日期解析“没有正确实现”这个问题。我确实需要日期解析能力。但是,Babel可以使用不同的语言环境显示时间。

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

有可能做出任何其他选择。再次提问:以多种语言显示日期或时间的最佳方式是什么?

+0

你在制作图书馆吗? – orlp 2011-03-23 19:21:30

+1

我已经考虑过的第四个选项是对Babel的贡献,所以解析更加健壮,那么它将完美地满足我的需求。公平地说,我没有测试现有的解析能力,但文档使它们听起来不可靠。 – Buttons840 2011-03-23 19:24:47

+0

不是我的意思是,如果你正在建立一个图书馆,你为什么打扰?不应该用户调用'locale.setlocal'? – orlp 2011-03-23 19:27:02

回答

1

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

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