【发布时间】:2012-03-12 14:01:26
【问题描述】:
我所说的域是指 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 等
【问题讨论】:
-
override是什么意思?您想在两个 .po 文件中定义相同的msgid吗? -
我猜他总是想加载default.mo,但也想加载特定页面的mo文件。在我看来,这是完全没有必要的,并且会使整个应用程序变得更加复杂而没有真正的收益。此外,您将无法在不同的 po 文件中重用字符串。例如,如果您在“admin.po”中有一个字符串“cancel”,稍后您在“blog.po”中也需要它,您将不得不复制它们,或者将它们移动到 default.po 等。太复杂了。 ..
-
我不明白 domain 是什么意思,以及为什么我们需要 domain。能否给出一些解释或相关链接?