【发布时间】:2012-02-07 12:16:33
【问题描述】:
我在 Ubuntu 上运行 Apache。这个问题(不工作)出现在我的生产 Strato 网络服务器上。
我的 PHP 支持 gettext,但它不翻译任何内容,尽管字符串在 .mo 文件中进行了翻译。
这是我的代码:
if (function_exists('bindtextdomain')) {
$domain = 'address_db';
echo putenv('LC_MESSAGES='.$lang);
echo '<br />';
echo setlocale(LC_MESSAGES, $lang);
echo '<br />';
$path = bindtextdomain($domain, "../locale/");
echo $path;
echo '<br />';
echo file_exists($path.'/'.$lang.'/LC_MESSAGES/'.$domain.'.mo') ? 'yes' : 'no';
echo '<br />';
echo bind_textdomain_codeset($domain, "iso-8859-1");
echo '<br />';
echo textdomain($domain);
echo '<br />';
$available_languages = array(
array('de_DE', _('German')),
array('en', _('English')),
array('nl', _('Dutch')),
array('tr', _('Turkish'))
);
echo _('Cancer');
}
输出很有希望:
1
/home/mu/Branches/address_db/locale
yes
iso-8859-1
address_db
Cancer
所以它找到了文件,但它仍然没有翻译“癌症”。
那会是什么?
更新
它适用于我的生产服务器,但不适用于我的测试服务器。很奇怪……
【问题讨论】: