资源包属性文件的替代方案

时间:2009-11-25 05:50:12

标签: java java-ee

是否还有其他比资源包属性文件更好的机制来本地化应用程序?

2 个答案:

答案 0 :(得分:3)

实际上,ResourceBundle不一定从属性文件中读取数据。 ResourceBundle有一些逻辑用于解析在何处查找数据,并且查找与bundle名称相同的属性文件是该逻辑的一个方面。从属性文件中读取实际上是由ResourceBundle,PropertyResourceBundle的子类完成的。

您可以实现自己的ResourceBundle,它将按您希望的方式读取(或计算)翻译。 ResourceBundle Javadoc为您提供了此类实现的示例。例如,您可以编写一个ResourceBundle来查找数据库中的翻译。

答案 1 :(得分:2)

这是来自ResourceBundle javadoc的直接引用。

  

Java平台提供了两个   ResourceBundle的子类,   ListResourceBundle和   PropertyResourceBundle,提供一个   创建资源的相当简单的方法。   正如您在之前的简要介绍中所见   例如,ListResourceBundle管理   其资源作为键/值列表   对。 PropertyResourceBundle使用了   属性文件来管理它   资源。

     

如果是ListResourceBundle或   PropertyResourceBundle不合适   你的需求,你可以自己写   ResourceBundle子类。您的   子类必须覆盖两个方法:   handleGetObject和getKeys()。

在我看来,最佳实践是使用某种ResourceBundle子类,最好是不要求你破解代码进行本地化的子类。理由:它存在,它有效,人们理解它,不重新发明轮子等等。