2011-05-11 136 views
3

我一直在閱讀一些關於人們如何進行國際化的文章。似乎普遍的共識是將這些字符串保存在單獨的文件(通常是xml)中,並在必要時加載它。爲什麼要在單獨的(xml)文件中存儲國際化「單詞」?

我想知道爲什麼不把這些字符串存儲在數據庫中呢?這種方式不是更好嗎?

順便說一句,我的應用程序的性質是一個網站的應用程序。

+1

使用xml文件(我的意思是當我們翻譯時)更容易 – zerkms 2011-05-11 03:10:53

回答

4

最重要的是將您的字符串表格存儲在編譯單元之外,以便合併更新後的翻譯不需要重建。這允許在稍後的時間將新的或更新的翻譯納入,而沒有太多麻煩。

當然,這些字符串表可以存儲在任何地方。如果你想把它們放在一個數據庫中,請自己解決。只要您的應用程序能夠聯繫到他們,並且您的翻譯人員知道如何將他們送到正確的地方,那麼這並沒有什麼不同。

1

如果您確實存儲在數據庫中,則每當您的「語言環境」切換時,都會引入額外的查詢數據庫開銷。

這是資源捆綁的原因。您將它與源代碼一起打包,但您不必更改代碼以添加對語言的支持。

您也可以自己繼承resourcebundle類並實現jdbc支持,以便特定於語言環境的字符串存儲在數據庫中。

http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles/

+0

我的意思是這個問題並不是專門針對java – Pacerier 2011-05-11 03:26:17

+0

btw當我訪問外部xml文件時也不會有開銷? – Pacerier 2011-05-11 10:16:23

+0

啓動時將翻譯文件加載到程序存儲器或memcache中。要麼比使用dbms更好。 – 2011-05-11 14:42:17

3

嚴重的國際化始終是一個大的項目有很多零件和球員的。正如@zerkms所暗示的那樣,翻譯任務通常是世界各地個人和團隊的離線活動。

因此,有一個翻譯團隊可以生成的乾淨的工作產品(翻譯的XML文件)是有意義的。

文件翻譯完成後,如何處理軟件中的翻譯將由您決定。由於您經常需要將變量替換爲佔位符,因此常常將它們保存在內存中。

相關問題