[New] Added I18nMessage.getMessage(Locale)

This commit is contained in:
Robert von Burg 2020-08-03 11:36:04 +02:00
parent 93cec1b799
commit 80841770e2
1 changed files with 24 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package li.strolch.utils;
import static li.strolch.utils.helper.StringHelper.EMPTY;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.Properties;
import java.util.ResourceBundle;
@ -56,10 +57,33 @@ public class I18nMessage {
return this.values.get(key);
}
private ResourceBundle getBundle(Locale locale) {
if (this.bundle.getLocale() == locale)
return this.bundle;
String baseName = this.bundle.getBaseBundleName();
try {
ClassLoader classLoader = this.bundle.getClass().getClassLoader();
if (classLoader == null)
return ResourceBundle.getBundle(baseName, locale);
return ResourceBundle.getBundle(baseName, locale, classLoader);
} catch (MissingResourceException e) {
logger.error("Failed to find resource bundle " + baseName + " " + locale.toLanguageTag()
+ ", returning current bundle " + this.bundle.getLocale().toLanguageTag());
return this.bundle;
}
}
public String getMessage(ResourceBundle bundle) {
return formatMessage(bundle);
}
public String getMessage(Locale locale) {
return formatMessage(getBundle(locale));
}
public String getMessage() {
return formatMessage();
}