X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fbundles%2FStringIdBundle.java;h=24a9252d17a3fefafb2f430d69ad0d50e61e412a;hb=1163de3dcd121a4c1fb8814b40f39a71813289b1;hp=e94c05b448eb3ba3231035f9999ec4dbb22d40b7;hpb=24c1809356a3e15504f9d28053de1cf55ed78c0b;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/bundles/StringIdBundle.java b/src/be/nikiroo/fanfix/bundles/StringIdBundle.java index e94c05b..24a9252 100644 --- a/src/be/nikiroo/fanfix/bundles/StringIdBundle.java +++ b/src/be/nikiroo/fanfix/bundles/StringIdBundle.java @@ -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 { + 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 { */ 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 { 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; + } }