3

我的應用程序中有一個模型負責創建初始數據庫結構(排序的安裝程序)。我最近添加了可翻譯的內容(使用gettext)。我想使最初的內容語言依賴。Zend Framework:模型中的可翻譯內容

在模型中使用可翻譯內容的最佳方式是什麼?有沒有辦法在模型中使用view->translate()函數,或者是否需要從外部傳遞已翻譯的字符串,例如作爲參數?

回答

15

假設您已經bootsraped從Zend_Locale和一個Zend_Translate,和(默認情況下它們是下鍵「從Zend_Locale」和「一個Zend_Translate」註冊表),你可以在你的模型訪問translate()方法如下它們被保存在合適的詞彙:

/*@var $translator Zend_Translate */ 
    $translator = Zend_Registry::get('Zend_Translate'); 

    /*@var $adapter Zend_Translate_Adapter */ 
    $adapter = $translator->getAdapter(); 

    var_dump($adapter->translate('Text to be translated')); 

上述示例中的翻譯將根據您的Zend_Locale執行。

什麼是翻譯模型中數據的最佳方式?我不確定。如果你想讓你的控制器甚至模型的翻譯「不可見」或「透明」,你可以重載Zend_DB_Table_Row的魔法方法__get和__set,並在其中嵌入translate()方法。

+0

哇,完美的答案,正是我之後。奇蹟般有效。謝謝! – mingos 2011-02-02 23:19:48