在我看來,電話$this->translate('test')
不起作用。爲什麼我打電話給Zend Translate在視圖中不起作用?
在引導我有以下代碼來啓動翻譯:
protected function _initTranslate() {
$apc = $this->getOption('enable_apc_cache');
if ($apc) {
$cache = Zend_Registry::get('cache');
Zend_Translate::setCache($cache);
}
// Set the correct locale
$locale = new Zend_Locale('nl');
Zend_Registry::set('Zend_Locale', $locale);
// Form error translations
$translator = new Zend_Translate(
'array',
APPLICATION_PATH.'/../resources/languages',
'auto',
array('scan' => Zend_Translate::LOCALE_DIRECTORY)
);
Zend_Form::setDefaultTranslator($translator);
// All other translations, including form labels
$translate = new Zend_Translate(
'gettext',
APPLICATION_PATH.'/../resources/languages/',
'auto',
array('scan' => Zend_Translate::LOCALE_DIRECTORY));
Zend_Registry::set('Zend_Translate', $translate);
}
如果我理解正確(已搜查計算器和谷歌)將譯者在註冊表中與關鍵Zend_Translate
應的伎倆。
現在我認爲當我打電話給<?php echo $this->translate->_('Purchaseorder'); ?>
或<?php echo $this->translate->('Purchaseorder'); ?>
它給我一個錯誤。
Call to a member function _() on a non-object
用下劃線呼叫和Parse error: syntax error, unexpected '(', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$'
沒有下劃線呼叫。
我在做什麼錯誤/缺失?根據http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.translate這應該做的伎倆。
似乎你缺少';'在你的聲明結束! – Rikesh 2012-07-19 16:02:47
@RikeshShah在這個地方使用分號並不是必要的(也許它很整潔)。無論如何,添加它並不能解決問題。添加它們以避免混淆:) – stephangroen 2012-07-19 16:05:35