2013-03-26 102 views
1

我建立一個多語言的應用程序與Zend框架2.翻譯Zend框架中處理2

目前,我有一個翻譯輸出中的每個對象實施TranslatorAwareInterface並使用TranslatorAwareTrait。所以,我爲每個表單,輸入過濾器和控制器對象注入一個翻譯器實例,以便翻譯表單標籤,錯誤消息和通知。

這是做到這一點的正確方法,還是有不同的方法,不需要將翻譯器實例注入到每個需要翻譯文本的對象中?

(我知道我可以通過注入默認譯者AbstractValidator翻譯驗證錯誤,但我更喜歡有自己的錯誤消息)爲ZF2作爲ORM

+0

總而言之,我認爲這聽起來合法 – Sam 2013-03-27 07:32:27

+1

Manu,你可以通過驗證器選項中的驗證器錯誤代碼鍵入你自己的'messageTemplates'數組。沒有必要直接在你的表格或視圖中處理它。 – Crisp 2013-03-27 16:09:26

+0

@Crisp謝謝你的提示。這是客戶驗證錯誤的解決方案。如何翻譯控制器和其他對象中生成的表單元素標籤和消息,例如實體? – Manu 2013-03-27 16:28:55

回答

2

使用原則模塊,讓學說延伸gedmo /譯處理數據轉換https://github.com/l3pp4rd/DoctrineExtensions

要獲得的譯功能工作,按照文檔的這一部分: https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/zendframework2.md#note-you-may-need-to-provide-additional-settings-for-some-of-the-available-listeners

運行架構工具來更新您的數據庫之後。

+0

我不知道這個擴展名,但我看不到這將如何幫助翻譯控制器中生成的表單元素標籤和消息? – Manu 2013-03-27 16:30:40

+1

我建議翻譯模型...消息和表單元素可以通過zend_i18n輕鬆轉換/翻譯 – 2013-03-27 17:00:02

+0

在iSeries上使用DB2的系統如何?學說不會在那裏工作。在ZF2中,可翻譯的是缺少的功能。 – emolah 2013-08-14 13:25:42