gettext.gettext 导入为_
:
from gettext import gettext as _
这是某种命名约定,对吧? gettext.ngettext 的等价代码是什么__
??
答案1
我见过P_
(我假设字母 P 代表复数)有时被使用,但似乎对于 gettext 中翻译的复数字符串的快捷方式没有普遍的共识或定义的标准。
通常这些快捷方式或宏在 C 中使用,并且来自 GLib,因此它们不是 Gettext 的标准快捷方式,但它们已成为使用 GLib 的程序的事实标准。它们通常在文件中定义/usr/include/glib-2.0/glib/gi18n.h
,并在GLib 的国际化 API 文档。
_
有(gettext)、Q_
(context)、C_
(context)、N_
(mark for Translation Only) 和NC_
(mark for Translation Only, with context)的定义,但没有P_
无论如何,在 Python 中您需要自己定义快捷方式,但为了保持一致性,最好遵守相同的命名约定。
但是,我似乎记得 intltool 默认情况下不识别P_
快捷方式,因此由于 ngettext 不像 gettext 那样经常使用,您可能只想使用函数的实际名称而不是快捷方式。
如果您仍然想使用快捷方式,但 intltool 不支持它,则需要告诉 intltool 使用它,IIRC通过变量XGETTEXT
或通过使用Makevars
文件。