9

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

1) 我想使用类似 _ 的 ungettext 缩写。是否应该为此使用 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/

4

2 回答 2

8

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

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

于 2010-05-25T10:16:46.350 回答
1

回答问题 2):

如果你通过 运行 Babel pybabel extract,你可以Project-Id-Version通过--project--version选项进行设置。

如果您通过 运行 Babel setup.py extract_messagesProject-Id-Version则从发行版中获取(项目名称和版本在 setup.py 文件中)。

这两种方式还支持选项--msgid-bugs-address--copyright-holder设置 POT 元数据。

于 2012-01-22T15:11:43.990 回答