我有一个名为API的java项目,它有自己的ResourceBundle,因为它知道用户的语言,并且响应是根据其语言编写的。 测试工作正常,我看到正确写的消息。
当我想在另一个项目中使用API项目的jar时,我们称之为REST_API,它没有从API中找到任何密钥。
REST_API拥有自己的语言密钥,因此最终的捆绑文件应该包含捆绑包。正确?
我使用maven来制造罐子,战争等。 是否有任何扫描项目的maven插件,并合并资源包文件以使其工作?
或者我应该以不同的方式实现它?
谢谢!
更新
API项目中的资源位于:
src/main/resources/ApplicationMessages_en.properties
src/main/resources/ApplicationMessages_es.properties
以下是我如何加载包的示例:
private static final String DEFAULT_LANG = "en";
private static final Locale DEFAULT_LOCALE = new Locale(DEFAULT_LANG);
private static final ResourceBundle DEFAULT_TRANSL = ResourceBundle.getBundle("ApplicationMessages", DEFAULT_LOCALE, new UTF8Control());
答案 0 :(得分:0)
资源文件放在资源文件夹中的包中:
src/main/resources/my.package.api.lang.ApplicationMessages_en.properties
src/main/resources/my.package.api.lang.ApplicationMessages_es.properties
在REST API项目中:
src/main/resources/my.package.api.rest.lang.ApplicationMessages_en.properties
src/main/resources/my.package.api.rest.lang.ApplicationMessages_es.properties
要加载这些文件:
// lang = "es" || "en"
// bundleName = "my.package.api.lang.ApplicationMessages"
// bundleName = "my.package.api.rest.lang.ApplicationMessages"
final Locale locale = new Locale(lang);
ResourceBundle translator = ResourceBundle.getBundle(bundleName, locale);
谢谢!