package ch.poole.openinghoursparser;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

/**
 * Translation support for {@link OpeningHoursParser}
 * @author JOSM team, Simon Legner
 */
public class I18n {

    private static ResourceBundle messages;

    static {
        setLocale(Locale.ROOT);
    }

    /**
     * Sets the locale used for translations.
     * @param locale the locale
     * @see ResourceBundle#getBundle(java.lang.String, java.util.Locale)
     */
    public static synchronized void setLocale(Locale locale) {
        messages = ResourceBundle.getBundle("ch.poole.openinghoursparser.Messages", locale);
    }

    /**
     * Returns the translation for the given translation {@code key} and the supplied {@code arguments}.
     * @param key the translation key to {@linkplain ResourceBundle#getString fetch} the translation
     * @param arguments the translation arguments which are used {@linkplain MessageFormat#format for formatting}
     * @return the translated string
     */
    public static String tr(String key, Object... arguments) {
        return MessageFormat.format(messages.getString(key), arguments);
    }
}

@@ -29,17 +29,19 @@
 sparser;
-%0A
+%0D%0A%0D
 %0Aimport 
@@ -64,16 +64,17 @@
 eFormat;
+%0D
 %0Aimport 
@@ -90,16 +90,17 @@
 .Locale;
+%0D
 %0Aimport 
@@ -128,13 +128,16 @@
 dle;
-%0A
+%0D%0A%0D
 %0A/**
+%0D
 %0A * 
@@ -186,16 +186,17 @@
 sParser%7D
+%0D
 %0A * @aut
@@ -226,12 +226,14 @@
 gner
+%0D
 %0A */
+%0D
 %0Apub
@@ -248,17 +248,19 @@
 s I18n %7B
-%0A
+%0D%0A%0D
 %0A    pri
@@ -295,17 +295,19 @@
 essages;
-%0A
+%0D%0A%0D
 %0A    sta
@@ -311,16 +311,17 @@
 static %7B
+%0D
 %0A       
@@ -344,31 +344,38 @@
 e.ROOT);
+%0D
 %0A    %7D
-%0A
+%0D%0A    %0D
 %0A    /**
 %0A     * 
@@ -358,32 +358,152 @@
 %7D%0D%0A    %0D%0A    /**
+%0D%0A     * Private constructor to stop instantiation%0D%0A     */%0D%0A    private I18n() %7B%0D%0A        // private%0D%0A    %7D%0D%0A%0D%0A    /**%0D
 %0A     * Sets the
@@ -532,16 +532,17 @@
 lations.
+%0D
 %0A     * 
@@ -565,16 +565,17 @@
 e locale
+%0D
 %0A     * 
@@ -639,24 +639,25 @@
 .Locale)
+%0D
 %0A     */
 %0A    pub
@@ -640,32 +640,33 @@
 Locale)%0D%0A     */
+%0D
 %0A    public stat
@@ -712,16 +712,17 @@
 ocale) %7B
+%0D
 %0A       
@@ -810,23 +810,26 @@
 le);
+%0D
 %0A    %7D
-%0A
+%0D%0A%0D
 %0A    /**
 %0A   
@@ -824,16 +824,17 @@
 %0A    /**
+%0D
 %0A     * 
@@ -930,16 +930,17 @@
 uments%7D.
+%0D
 %0A     * 
@@ -1032,16 +1032,17 @@
 nslation
+%0D
 %0A     * 
@@ -1147,16 +1147,17 @@
 matting%7D
+%0D
 %0A     * 
@@ -1185,24 +1185,25 @@
 d string
+%0D
 %0A     */
 %0A    pub
@@ -1194,16 +1194,17 @@
 %0A     */
+%0D
 %0A    pub
@@ -1258,16 +1258,17 @@
 ments) %7B
+%0D
 %0A       
@@ -1336,13 +1336,16 @@
 ts);
+%0D
 %0A    %7D
+%0D
 %0A%7D
+%0D
 %0A

Add private constructor