0
我有兩個字段的數據庫 - translation.name
和translation.value
。從DB ZF2翻譯
可以在ZF2中創建自定義翻譯器,如使用數據庫翻譯的標準$this->translate("SomeKey");
一樣?請告訴我,如何在我的項目中實現它?
我有兩個字段的數據庫 - translation.name
和translation.value
。從DB ZF2翻譯
可以在ZF2中創建自定義翻譯器,如使用數據庫翻譯的標準$this->translate("SomeKey");
一樣?請告訴我,如何在我的項目中實現它?
您正在尋找的只是一個簡單的ViewHelper
,它取代了當前分配給$this->translate()
的ViewHelper
。
基本上你需要把它添加到您的配置:
'view_helpers' => [
'factories' => [
'translate' => 'My\View\Helper\Factory\TranslateFactory'
]
]
然後,你需要寫你的工廠類實現FactoryInterface
。然後這個工廠將創建您的實際ViewHelper
。您需要通過工廠來完成此任務,因爲您的ViewHelper
將數據庫訪問權限視爲依賴項。此外,您需要注入用於ViewHelper
的當前locale
。
這使我想到最後一點:什麼樣的翻譯表是那種?任何翻譯表都應支持多種語言,可以添加語言鍵或根本不使用數據庫。
最終:確保緩存所有的東西!如果一個密鑰已經翻譯過一次,它不可能隨時更改,所以它將被緩存,並且不會在將來發生不必要的數據庫調用!一定要讓你的緩存只運行一個文件,這樣你就不會進行5000次I/O調用。
謝謝你的回答!也許,請問你有幾個例子嗎?我是ZF2的新手,不明白這個=( – Walllter
)@Walllter,谷歌關於ZF2 ViewHelper,瞭解一下ViewHelper是什麼,然後開始用默認的ViewHelper替換一些簡單的返回字符串。 ZF2。那裏有很多信息:) – Sam
你好Sam。你可以幫我嗎?我有這個問題,我創建了一個新的話題在http://stackoverflow.com/questions/22824423/translations-from-db-in-zf2 – Walllter