域名我指的是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);
Run Code Online (Sandbox Code Playgroud)
所以它将使用my_path/en_US/LC_MESSAGES/default.po
但是我想使用多个文件,所以我可以覆盖 default.po中的值,用admin.po,blog.po等其他po文件覆盖
Dan*_*Man 20
首先定义所有域名,如下所示:
bindtextdomain('domain1', DIR_LOCALE);
bindtextdomain('domain2', DIR_LOCALE);
bindtextdomain('domain3', DIR_LOCALE);
textdomain('domain1'); // set default domain for _() function
Run Code Online (Sandbox Code Playgroud)
现在,如果要从其他域中获取字符串,则可以使用dgettext()或者dcgettext()(如果不是来自LC_MESSAGES)从不同的指定域中检索单个字符串.例:
echo dgettext('domain2', "msgid");
Run Code Online (Sandbox Code Playgroud)