2009-11-25 67 views
2

是否有任何其他比資源包屬性文件更好的機制來本地化應用程序?替代資源包屬性文件

+0

你在找什麼功能不在屬性資源包中? – McDowell 2009-11-25 10:02:03

+0

對不起,我應該清楚。我在同一時間使用資源包時沒有任何問題,如果不是資源包,我不應該錯過一些最佳實踐。 – 2009-11-25 12:45:21

回答

3

實際上,ResourceBundle不一定從屬性文件中讀取其數據。 ResourceBundle具有某種邏輯來解決在哪裏查找數據,並且尋找與該包相同名稱的屬性文件是該邏輯的一個方面。從屬性文件中讀取實際上是由ResourceBundle的子類PropertyResourceBundle完成的。

您可以實現自己的ResourceBundle,它將以您想要的方式讀取(或計算)翻譯。 ResourceBundle Javadoc爲您提供了這些實現的示例。例如,您可以編寫一個可在數據庫中查找翻譯的ResourceBundle。

2

以下是直接來自ResourceBundle javadoc的報價。

Java平臺提供的ResourceBundle兩個 子類, ListResourceBundle的和 的PropertyResourceBundle,提供一個 相當簡單的方法來創建資源。 正如您在之前的 示例中簡要介紹的那樣,ListResourceBundle將其資源作爲關鍵字/值 對的列表管理 。 PropertyResourceBundle使用 屬性文件來管理其 資源。

如果ListResourceBundle的或 PropertyResourceBundle無法滿足 您的需求,您可以編寫自己的 ResourceBundle子類。您的 子類必須重寫兩個方法: handleGetObject和getKeys()。

在我看來,最好的做法是使用某種ResourceBundle子類,最好不要求你破解代碼來做本地化。原因:它存在,它的工作原理,人們瞭解它,不要重新發明輪子等。