Java i18n:每个包使用一个ResourceBundle访问器,还是整个项目使用一个?

时间:2010-01-14 20:29:25

标签: java internationalization resourcebundle

我对国际化一无所知。

我有一个包含多个包的项目。我正在使用Eclipse的内置“Externalize Strings”向导将我的类中的String常量提取到属性文件,并将这些字符串替换为对静态访问器的调用。而不是

System.out.println("Hello, world!");

我最终得到了

System.out.println(Messages.getString("MyKey"));

和每个包中的Messages实用程序类(它提供静态getString方法,用于从ResourceBundle获取所需的String [在本例中为.properties文件])。是否最好在每个包中都有一个Messages类,或者整个项目都有一个Messages类?

2 个答案:

答案 0 :(得分:3)

我会保持每包一个。这样维护/重构/单元测试就容易多了。

此外,单个文件没有全局依赖关系。

答案 1 :(得分:3)

我赞成全球本地化文件。您将拥有需要重复或嵌套的重复键(“确定”,“取消”),并且如果合并资源,则可以更轻松地与外部本地化人员进行交互。