Author: nextgens
Date: 2007-04-22 12:53:25 +0000 (Sun, 22 Apr 2007)
New Revision: 12857

Modified:
   trunk/freenet/src/freenet/l10n/L10n.java
Log:
Fix a bug reported by cooo: when an override was set, switching to an other 
language didn't "reset" the override

Modified: trunk/freenet/src/freenet/l10n/L10n.java
===================================================================
--- trunk/freenet/src/freenet/l10n/L10n.java    2007-04-22 12:40:27 UTC (rev 
12856)
+++ trunk/freenet/src/freenet/l10n/L10n.java    2007-04-22 12:53:25 UTC (rev 
12857)
@@ -42,7 +42,7 @@
        private static SimpleFieldSet fallbackTranslation = null;
        private static L10n currentClass = null;

-       private static SimpleFieldSet translationOverride = null;
+       private static SimpleFieldSet translationOverride;

        L10n(String selected) {
                selectedLanguage = selected;
@@ -52,7 +52,9 @@
                        if(tmpFile.exists() && tmpFile.canRead()) {
                                Logger.normal(this, "Override file detected : 
let's try to load it");
                                translationOverride = 
SimpleFieldSet.readFrom(tmpFile, true, false);
-                       }
+                       } else
+                               translationOverride = null;
+                       
                } catch (IOException e) {
                        translationOverride = null;
                        Logger.error(this, "IOError while accessing the file!" 
+ e.getMessage(), e);
@@ -67,6 +69,12 @@
         * @throws MissingResourceException
         */
        public synchronized static void setLanguage(String selectedLanguage) 
throws MissingResourceException {
+               // Save the current override if needed before switching
+               if(translationOverride != null) {
+                       _saveTranslationFile();
+                       translationOverride = null;
+               }
+               
                for(int i=0; i<AVAILABLE_LANGUAGES.length; i++){
                        
if(selectedLanguage.equalsIgnoreCase(AVAILABLE_LANGUAGES[i])){
                                selectedLanguage = AVAILABLE_LANGUAGES[i];


Reply via email to