Check for the localized changelog to show
[fanfix.git] / src / be / nikiroo / fanfix / bundles / StringIdBundle.java
index e94c05b448eb3ba3231035f9999ec4dbb22d40b7..24a9252d17a3fefafb2f430d69ad0d50e61e412a 100644 (file)
@@ -2,6 +2,7 @@ package be.nikiroo.fanfix.bundles;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Locale;
 
 import be.nikiroo.utils.resources.TransBundle;
 
@@ -11,6 +12,8 @@ import be.nikiroo.utils.resources.TransBundle;
  * @author niki
  */
 public class StringIdBundle extends TransBundle<StringId> {
+       private String lang;
+
        /**
         * Create a translation service for the given language (will fall back to
         * the default one i not found).
@@ -20,6 +23,19 @@ public class StringIdBundle extends TransBundle<StringId> {
         */
        public StringIdBundle(String lang) {
                super(StringId.class, Target.resources, lang);
+               this.lang = lang;
+       }
+
+       /**
+        * Return the currently used language as a String.
+        * 
+        * @return the language
+        * 
+        * @deprecated use the call from {@link TransBundle} when available
+        */
+       public Locale getLanguage() {
+               return getLocaleFor(lang);
+
        }
 
        /**
@@ -37,4 +53,39 @@ public class StringIdBundle extends TransBundle<StringId> {
                new StringIdBundle(null).updateFile(path);
                System.out.println("Path updated: " + path);
        }
+
+       /**
+        * Return the {@link Locale} representing the given language.
+        * 
+        * @param language
+        *            the language to initialise, in the form "en-GB" or "fr" for
+        *            instance
+        * 
+        * @return the corresponding {@link Locale} or the default {@link Locale} if
+        *         it is not known
+        * 
+        * @deprecated Use the call from {@link TransBundle} when available.
+        */
+       static private Locale getLocaleFor(String language) {
+               Locale locale;
+
+               if (language == null) {
+                       locale = Locale.getDefault();
+               } else {
+                       language = language.replaceAll("_", "-");
+                       String lang = language;
+                       String country = null;
+                       if (language.contains("-")) {
+                               lang = language.split("-")[0];
+                               country = language.split("-")[1];
+                       }
+
+                       if (country != null)
+                               locale = new Locale(lang, country);
+                       else
+                               locale = new Locale(lang);
+               }
+
+               return locale;
+       }
 }