嗨,讓我們說我下面的應用:如何使用Zend Framework處理l10n應用程序?
- 沒有本地化
- 一個數據庫語言無關
我需要這個應用程序的本地化和國際化。
每個網站將可通過一個域(domain.co.uk,domain.fr,domain.it或可能來自一個子域fr.domain.com,en.domain.com,it.domain.com這是與本地語言相關性更高)。
例如,您將如何處理數據庫?
一個數據庫與每個實體的語言環境信息?
像id,article_title,article_body,article_locale?或單獨的數據庫?
- domain_fr
- domain_en
- 等
您將如何部署應用程序?
- 每個虛擬主機一個?
- 到處都是同樣的指向,但是在bootstrap上本地化?也許選擇數據庫在這裏會很棘手。
與當前應用程序的向後兼容性如何?
我的想法:
- 使用虛擬主機型動物/每語言
- 使用的application.ini定義本地
- 使用的application.ini選擇數據庫服務器使用
由於應用程序本地化有不同的內容,我不需要能夠在其中切換語言,所以我可以在配置中硬編碼區域設置。
我在這裏可以看到的唯一不足之處是數據庫的發展,因爲如果我需要添加一個列,我需要在任何地方都做到這一點。所以,如果需要的話,可能需要一個帶有locale選項的中央數據庫會更好,但可能需要更多的工作。
什麼是反饋?這是一個決定性的決定,我想採取正確的方式。
感謝您的回答,您在模型中處理區域設置信息的過程是什麼?在*()或find *()方法中顯式請求它會更好嗎?或者直接在模型中使用Zend_Locale :: getLocale()方法? – 2011-03-12 14:57:03
'Zend_Locale :: getLocale()'更好,因爲除非在模型中,否則不需要在應用程序中進行更改。 – Akarun 2011-03-12 16:05:12