X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fresources%2FTransBundle.java;h=125075a8bbd8268ca6c2310f2e3b40387132e2ac;hb=e9ca6bb892b5358a273807bff834945ffe7b0cee;hp=a3804401034692909302f04c50c39cdcad828e6d;hpb=80383c142f85a7850d0fbea418689608fdccac05;p=fanfix.git
diff --git a/src/be/nikiroo/utils/resources/TransBundle.java b/src/be/nikiroo/utils/resources/TransBundle.java
index a380440..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,12 +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() {
- setBundle(name, locale);
+ public void reload(boolean resetToDefault) {
+ setBundle(name, locale, resetToDefault);
}
@Override
@@ -199,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