通过Babel国际化Python 2.6应用程序

Mal*_*olm 8 python translation gettext internationalization babel

我们正在评估Windows下的Babel 0.9.5 [1]与Python 2.6一起使用,并提出以下问题,我们通过阅读文档或谷歌搜索无法回答这些问题.

1)我想对ungettext使用_ like缩写.关于是否应该使用n_或N_,是否存在一个概念?

n_似乎不起作用.Babel不提取文本.

N_似乎部分有效.Babel像gettext一样提取文本,但不为ngettext格式化(缺少复数参数和msgstr [n].)

2)有没有办法在创建POT文件时设置如下的初始msgstr字段?

我怀疑有可能通过Babel cfg文件来实现这一点,但我一直无法找到有关Babel cfg文件格式的文档.

"Project-Id-Version:PROJECT VERSION \n""Language-Team:en_US \n"

3)有没有办法在我们的PO文件中保留"过时的"msgid/msgstr?当我使用Babel update命令时,新创建的过时字符串标有#〜前缀,但现有的过时消息字符串会被删除.

谢谢,马尔科姆

[1] http://babel.edgewall.org/

Den*_*ach 8

默认情况下,pybabel extract识别以下关键字:_,gettext,ngettext,ugettext,ungettext,dgettext,dngettext,N_.使用-k选项添加其他人.N_通常用于NULL转换(也称为延迟转换).

更新:该-k选项可以列出要放入目录的函数的参数.所以,如果你使用n_ = ngettext尝试pybabel extract -k n_:1,2 ....