【发布时间】:2011-06-17 08:23:49
【问题描述】:
一些 gettext 键对我不起作用 - 它们显示的是键而不是翻译,尽管有一个。我正在使用 PHP File_Gettext Pear 库制作 .mo 文件,它似乎工作正常,所以我制作了以下脚本来尝试,哪些键不能正常工作:
$locale = 'en_GB';
$domain = 'messages';
setlocale(LC_ALL, $locale);
putenv("LC_ALL=".$locale);
bindtextdomain($domain, "D:/_gt");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
$mocreator = new File_Gettext_MO();
$mocreator->load('D:/_gt/en_GB/LC_MESSAGES/messages.mo');
foreach ($mocreator->strings as $key => $value) {
if ($value == gettext($key)) {
var_dump("ok");
} else {
var_dump($key, $value, gettext($key));
}
}
从上面的输出中,我看到一些键有效 - 我看到很多 oks - 而有些则没有,产生以下结果:
string 'Cancelled' (length=9)
string 'Storniert' (length=9)
string 'Cancelled' (length=9)
所以文件中有翻译,但是gettext由于某种原因无法使用。
【问题讨论】:
-
检查翻译文件。我认为 gettext 比
File_Gettext_MO更准确。在其中查找字符串Cacnelled,可能是你可以看到的东西。您可能还想将 MO 文件中的部分添加到问题中。 -
@hakre,我可以在那里看到
Cancelled和Storniert。我应该添加文件的哪一部分? -
这是什么库? File_Gettext 梨?我在任何地方都找不到 File_Gettext_MO。