Author: nextgens
Date: 2007-03-31 23:55:58 +0000 (Sat, 31 Mar 2007)
New Revision: 12502
Modified:
trunk/freenet/src/freenet/l10n/L10n.java
Log:
Fix the "changing the configuration from the configCallbackHook doesn't work"
problem
Modified: trunk/freenet/src/freenet/l10n/L10n.java
===================================================================
--- trunk/freenet/src/freenet/l10n/L10n.java 2007-03-31 23:37:34 UTC (rev
12501)
+++ trunk/freenet/src/freenet/l10n/L10n.java 2007-03-31 23:55:58 UTC (rev
12502)
@@ -23,13 +23,14 @@
// English has to remain the first one!
public static final String[] availableLanguages = { "en", "fr" };
- private static String selectedLanguage = availableLanguages[0];
+ private String selectedLanguage = availableLanguages[0];
- private static Properties currentProperties =
loadProperties(selectedLanguage);
+ private static Properties currentProperties = null;
private static Properties fallbackProperties = null;
-
- private static void loadDefaultProperties() {
- selectedLanguage = availableLanguages[0];
+ private static L10n currentClass = null;
+
+ L10n(String selected) {
+ selectedLanguage = selected;
currentProperties = loadProperties(selectedLanguage);
}
@@ -44,14 +45,14 @@
if(selectedLanguage.equalsIgnoreCase(availableLanguages[i])){
selectedLanguage = availableLanguages[i];
Logger.normal(CLASS_NAME, "Changing the current
language to : " + selectedLanguage);
- currentProperties =
loadProperties(selectedLanguage);
+ currentClass = new L10n(selectedLanguage);
if(currentProperties == null)
- loadDefaultProperties();
+ currentClass = new
L10n(availableLanguages[0]);
return;
}
}
- loadDefaultProperties();
+ currentClass = new L10n(availableLanguages[0]);
Logger.error(CLASS_NAME, "The requested translation is not
available!" + selectedLanguage);
throw new MissingResourceException("The requested translation
("+selectedLanguage+") hasn't been found!", CLASS_NAME, selectedLanguage);
}
@@ -108,28 +109,30 @@
Properties result = null;
InputStream in = null;
try {
- ClassLoader loader = ClassLoader.getSystemClassLoader ();
+ ClassLoader loader = ClassLoader.getSystemClassLoader();
// Returns null on lookup failures:
in = loader.getResourceAsStream(name);
- if(in != null) {
- result = new Properties ();
- result.load (in); // Can throw IOException
+ if(in != null) {
+ result = new Properties();
+ result.load(in); // Can throw IOException
}
} catch (Exception e) {
result = null;
} finally {
- if (in != null) try { in.close (); } catch (Throwable ignore) {}
+ if (in != null) try { in.close(); } catch (Throwable ignore) {}
}
return result;
}
public static String getSelectedLanguage() {
- return selectedLanguage;
+ return currentClass.selectedLanguage;
}
public static void main(String[] args) {
+ L10n.setLanguage("en");
+ System.out.println(L10n.getString("testing.test"));
L10n.setLanguage("fr");
System.out.println(L10n.getString("testing.test"));
System.out.println(L10n.getString("testing.test", new String[]{
"test1", "test2" }, new String[] { "a", "b" }));