X-Git-Url: http://git.nikiroo.be/?p=nikiroo-utils.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fresources%2FTransBundle.java;h=125075a8bbd8268ca6c2310f2e3b40387132e2ac;hp=61bc92259de48c9a90164b69df8c4e93799f2253;hb=e9ca6bb892b5358a273807bff834945ffe7b0cee;hpb=ec1f3444e9f238ce1559d5fff32eb5a7ab8aba53 diff --git a/src/be/nikiroo/utils/resources/TransBundle.java b/src/be/nikiroo/utils/resources/TransBundle.java index 61bc922..125075a 100644 --- a/src/be/nikiroo/utils/resources/TransBundle.java +++ b/src/be/nikiroo/utils/resources/TransBundle.java @@ -8,8 +8,6 @@ import java.util.List; import java.util.Locale; import java.util.regex.Pattern; -import be.nikiroo.utils.resources.Bundles; - /** * This class manages a translation-dedicated Bundle. *

@@ -171,7 +169,12 @@ public class TransBundle> extends Bundle { private void setLanguage(String language) { defaultLocale = (language == null || language.length() == 0); locale = getLocaleFor(language); - setBundle(name, locale); + setBundle(name, locale, false); + } + + @Override + public void reload(boolean resetToDefault) { + setBundle(name, locale, resetToDefault); } @Override @@ -194,16 +197,26 @@ public class TransBundle> extends Bundle { @Override public void updateFile(String path) throws IOException { String prev = locale.getLanguage(); + Object status = takeChangesSnapshot(); - setLanguage(null); // default locale + // default locale + setLanguage(null); + if (prev.equals(getLocaleFor(null).getLanguage())) { + // restore snapshot if default locale = current locale + restoreChanges(status); + } super.updateFile(path); for (String lang : getKnownLanguages()) { setLanguage(lang); + if (lang.equals(prev)) { + restoreChanges(status); + } super.updateFile(path); } setLanguage(prev); + restoreChanges(status); } @Override