php - 在 PHP 应用程序的 gettext 中使用多个域

标签 php gettext

域是指 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/

相关文章:

php - 单击按钮时如何插入表格?

php使用函数改变函数外部变量的值

parameters - 是否可以将参数传递到 .po 翻译文件中的翻译句子中?

c - 如何在 c 中将 gettext 与 __VA_ARGS__ 一起使用

python - Gettext 不会用 "python-format"标记 python 格式字符串,这与带有格式说明符的旧式 python 字符串不同

c# - 读取具有多个具有相同名称的类的子控件的子控件?

php - 计算数据表/数据库中某些输入的出现次数

javascript - 如何防止页面在表单提交后重新加载 - JQuery

php - 实现 PHP 编码标准

python - django:gettext 和强制转换为 unicode