我遇到了 Zend Translate 问题。我已经在 Bootstrap 中配置了 zend 翻译,如下所示
public function _initTranslate() {
$locale = new Zend_Locale();
Zend_Registry::set('Zend_Locale', $locale);
$translate = new Zend_Translate(array(
'adapter' => 'ini'
)
);
$translate->addTranslation(
array(
'content' => APPLICATION_PATH . '/configs/languages/pt.ini',
'locale' => 'pt'
)
);
$translate->addTranslation(
array(
'content' => APPLICATION_PATH . '/configs/languages/en.ini',
'locale' => 'en'
)
);
$translate->setLocale($locale);
Zend_Registry::set('Zend_Translate', $translate);
}
我已经添加了语言,在我看来我使用了翻译助手,但它显示了以下错误
Notice: The language 'en' has to be added before it can be used.
in C:\xampp\ZendFramework-1.11.10\library\Zend\Translate\Adapter.php
on line 443
Notice: No translation for the language 'en' available.
in C:\xampp\ZendFramework-1.11.10\library\Zend\Translate\Adapter.php
on line 456
我遵循了 zendframework 引用指南。我做错了什么?
最佳答案
您是否尝试将语言传递给 Zend_Locale
?
$locale = new Zend_Locale('en_US');
此外,我找到了解决方法:
$locale = new Zend_Locale(Zend_Locale::BROWSER);
$translate = new Zend_Translate(
'ini',
$yourPath,
null,
array('scan' => Zend_Translate::LOCALE_DIRECTORY));
// setting the right locale
if ($translate->isAvailable($locale->getLanguage())) {
$translate->setLocale($locale);
} else {
$translate->setLocale('en_US');
}
参见http://framework.zend.com/issues/browse/ZF-6612更多细节。注意:这是 1.8 的一个错误,我看到您正在使用 1.10,但解决方法可能仍然有效。
这也是一个很好的帖子:http://zend-framework-community.634137.n4.nabble.com/how-handle-Locale-td659923.html
此外,Zend_Translate
还提供了一个选项来禁用专门针对该类的通知。如果内容正在被翻译,那么这(根据Zend)不是“错误”并且应该禁用通知。
// as a fourth parameter to Zend_Translate pass it:
array('disableNotices' => true);
关于zend-framework - Zend Translate 找不到语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8480115/