如何以多种语言显示日期/时间?
我想在多个语言中显示日期和时间(或者单独显示日期或时间)。具体来说,我想用英语和西班牙语,但将来可能还会用其他语言。
我考虑过使用Python的time.strftime函数配合locale.setlocale。不过在查看文档后(http://docs.python.org/library/locale.html),我发现不应该在库中调用locale.setlocale,所以我不能随便改变和恢复区域设置。
我还考虑过使用Python的Babel库,但在他们的文档中(http://babel.edgewall.org/wiki/Documentation/0.9/dates.html)我看到日期解析“没有正确实现”,这让我有点担心。我确实需要日期解析的功能。不过,Babel可以用不同的区域设置显示时间。
第三种[混合]选择是使用Python的datetime来解析日期,然后用Babel在多种语言/区域中显示日期。这有点麻烦,因为strptime使用自己的格式字符串语法,而Babel使用LDML语法来处理格式字符串。
可能还有其他选择。问题再次出现:在多种语言中显示日期或时间的最佳方法是什么?
1 个回答
1
我会把翻译内容保存在标准的PO文件里,使用gettext这个机制。对于每种语言,你都要有一个专门的文件来保存翻译。你可以把月份和日期的名称当作msgid,然后把具体的翻译内容放在msgstr里。