虽然翻译在开发服务器上工作正常,但我们在生产服务器上收到以下通知:没有可用的语言“fr”的翻译。
这是引导程序中的翻译配置(强制测试的语言环境):
$locale = "fr_CA.utf8";
$translate = new Zend_Translate(
array(
'adapter'=>'gettext',
'content' => APPLICATION_PATH . '/lang',
'locale' => $locale,
'scan' => Zend_Translate::LOCALE_DIRECTORY,
'disableNotices' => false,
'clear' =>true,
'reload'=>true,
)
);
.mo 文件位于 APPLICATION_PATH/lang/fr_CA.utf8/LC_MESSAGES/messages.mo
根据“locale -a”,.mo 文件中有翻译的字符串,并且两个服务器上都存在语言环境。
关于为什么这样的设置可以在一台服务器而不是另一台服务器上运行的任何线索?
编辑 :
我让它与以下配置一起工作:
$translate = new Zend_Translate(
array(
'adapter'=>'gettext',
'content' => APPLICATION_PATH.'/lang/'.$locale.'/LC_MESSAGES/messages.mo',
'locale' => $locale,
'disableNotices' => true,
'clear' =>true,
'reload'=>true,
)
);
似乎扫描不起作用。