diff --git a/src/main/java/org/jitsi/dnssec/R.java b/src/main/java/org/jitsi/dnssec/R.java index d67acb5..03e9e82 100644 --- a/src/main/java/org/jitsi/dnssec/R.java +++ b/src/main/java/org/jitsi/dnssec/R.java @@ -11,24 +11,49 @@ package org.jitsi.dnssec; import java.text.MessageFormat; +import java.util.MissingResourceException; import java.util.ResourceBundle; /** * Utility class to retrieve messages from {@link ResourceBundle}s. */ public final class R { - private static ResourceBundle rb = ResourceBundle.getBundle("messages"); + + private static ResourceBundle rb = null; private R() { } + /** + * Programmatically set the ResourceBundle to be used. + * + * @param resourceBundle ResourceBundle to Be Used. + */ + public static void setBundle(ResourceBundle resourceBundle) { + R.rb = resourceBundle; + } + /** * Gets a translated message. - * @param key The message key to retrieve. + * + * @param key The message key to retrieve. * @param values The values that fill placeholders in the message. * @return The formatted message. */ public static String get(String key, Object... values) { - return MessageFormat.format(rb.getString(key), values); + try { + if (R.rb == null) { + rb = ResourceBundle.getBundle("messages"); + } + return MessageFormat.format(rb.getString(key), values); + } + catch (MissingResourceException e) { + StringBuilder sb = new StringBuilder(key); + for (Object val : values) { + sb.append(":"); + sb.append(val.toString()); + } + return sb.toString(); + } } }