ngettext 短名称的命名约定是什么?

ngettext 短名称的命名约定是什么?

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文件。

相关内容