2012-07-19 47 views
0

在我看來,電話$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這應該做的伎倆。

+0

似乎你缺少';'在你的聲明結束! – Rikesh 2012-07-19 16:02:47

+0

@RikeshShah在這個地方使用分號並不是必要的(也許它很整潔)。無論如何,添加它並不能解決問題。添加它們以避免混淆:) – stephangroen 2012-07-19 16:05:35

回答

4

正確的語法應爲:

<?php echo $this->translate('Purchaseorder'); ?> 

你做你的文章的頂部使用這個語法,但它從你提到以後,你實際使用不同的語法出現的代碼看起來。

+0

+1對於正確的語法。 – 2012-07-20 00:34:08

+0

忽略了,謝謝!我讀了很多次的語法:/ – stephangroen 2012-07-20 09:45:53

+0

沒問題。樂意效勞 :) – robjmills 2012-07-20 09:58:22

相關問題