2010-06-08 35 views
5

我目前正處於我將在Zend Framework中開發的一個相當大的項目的規劃階段。我面臨的一個問題是,客戶不僅要翻譯內容,還要翻譯界面。我目前使用gettext和poedit來管理我的語言文件,但這不是客戶的選擇,因爲他們不會有FTP訪問該網站。Zend_Translate的Mysql適配器

因此,我想到了一個mysql前端的接口,用於客戶管理他自己的接口翻譯。然而,Zend_Translate仍然沒有mysql adapater。

那麼,現在有沒有人爲Zend_Translate的適配器腳本,所以它可以使用MySQL表?或反對使用MySQL和可能的其他解決方案,這個問題的任何論據?

回答

7

你可以在不同的方式解決這個問題:

擴展Zend_Translate_Adapter創建自己的。所有新適配器只負責從源代碼中獲取翻譯。也就是說,您只需要從數據庫中獲取翻譯。看看其他適配器,看看它們是如何實現的。

從數據庫中讀取數據,並把它傳遞給Zend_Translate_Adapter_Array

使用Zend_Translate_Adapter_Csv或INI。由於會有更多的閱讀關於翻譯的文字,這個解決方案會減少對數據庫的查詢次數。當客戶端添加新語言或更改現有語言時,只需將其寫入文件而不是數據庫。

如果您決定使用數據庫適配器,也許可以以某種方式對翻譯進行「標記」,以便在主頁上只提取主頁的翻譯,在聯繫頁面上僅顯示聯繫人的翻譯頁...

HTH!

3

默認的Zend適配器處理緩存的好,所以我會堅持他們,除非你真的需要數據庫。

將翻譯數據存儲在數據庫中,您可以直接對翻譯文件(例如po模板)進行操作。如果您只需要添加(附加到文件)新的翻譯字符串,這將是最好的選擇。

您可以使用Zend_Translate的option to log untranslated messages(對文件或任何日誌適配器,包括數據庫), ,然後處理日誌,甚至創建監聽器來翻譯保存的字符串。

0
+0

乾杯隊友!現在我自己寫了類似的東西。 – Peter 2010-11-22 09:52:55

+0

這是一個不好的例子,他編輯:o框架文件,doh。 – markus 2011-03-07 09:27:18

+0

想到一個不提供本地數據庫翻譯助手的框架。榮譽的恥辱不是cloetensbrencht的權利,而是所謂的framesuck。 – nerkn 2011-03-23 17:21:31