簡體   English   中英

Java在WAR內加載ResourceBundle,其中包含幾個帶有其ResourceBundle的jar

[英]Java load ResourceBundle inside WAR that contains several jar with their ResourceBundle

我有一個名為API的Java項目,它具有自己的ResourceBundle,因為它知道用戶的語言,並且響應是根據其語言編寫的。 測試工作正常,我看到正確編寫的消息。

當我想在另一個項目中使用API​​項目的jar時,將其稱為REST_API,它找不到來自API的任何鍵。

REST_API具有自己的語言密鑰,因此最終的捆綁軟件文件應具有捆綁軟件的合並。 對?

我正在使用maven來構建jar,wars等。是否有任何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());

資源文件放置在資源文件夾內的包中:

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);

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM