(真的很惊讶,这在网上的任何地方都没有得到回答;在过去的几年中,几篇帖子都提出了类似的问题,但从未得到回答。我们希望Stackoverflow的工作人员能够来救助)
情况:
当使用gettext支持应用程序本地化时,有时希望使用dgettext('domain','some text string')指定一个“域”。但是,在运行xgettext时,所有用dgettext(...)包装的字符串都吐到一个文件中(默认值:messages.po)。
给出以下示例:
dgettext('menus', 'login link');
dgettext('menus', 'account link');
dgettext('footer', 'copyright notice');
dgettext('footer', 'contact form');
有什么方法可以结束
menus.po
页脚
使用提取器,如xgettext?
需要PHP响应,尽管我认为这应该适用于所有语言
最佳答案
我发现做到这一点的唯一方法是重新定义gettext函数...
例:
function _menus ($str) {
return dgettext('menus', $str);
}
function _footer ($_str) {
return dgettext('footer', $str);
}
_menus('login link');
_menus('account link');
_footer('copyright notice');
_footer('contact form');
否则,您只需要运行以下命令:
xgettext [usual options] -k --keyword=_menus:1 -d menus
xgettext [usual options] -k --keyword=_footer:1 -d footer
再见!