域是指 gettext 域。我有这个代码
$domain = "default";
$locale = 'en_US';
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($domain, 'my_path');
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
所以它将使用 my_path/en_US/LC_MESSAGES/default.po
但我想使用超过 1 个文件,所以我可以override 覆盖 default.po 中的值
使用另一个 po 文件,如 admin.po、blog.po 等
最佳答案
首先像这样定义所有您的域:
bindtextdomain('domain1', DIR_LOCALE);
bindtextdomain('domain2', DIR_LOCALE);
bindtextdomain('domain3', DIR_LOCALE);
textdomain('domain1'); // set default domain for _() function
现在如果你想从不同的域获取字符串,你可以使用 dgettext()
或 dcgettext()
(如果不是来自 LC_MESSAGES
) 从不同的指定域中检索单个字符串。示例:
echo dgettext('domain2', "msgid");
关于php - 在 PHP 应用程序的 gettext 中使用多个域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9668471/