Index: lutinutil/src/java/org/codelutin/i18n/LanguageManager.java diff -u lutinutil/src/java/org/codelutin/i18n/LanguageManager.java:1.4 lutinutil/src/java/org/codelutin/i18n/LanguageManager.java:1.5 --- lutinutil/src/java/org/codelutin/i18n/LanguageManager.java:1.4 Mon Mar 17 22:37:03 2008 +++ lutinutil/src/java/org/codelutin/i18n/LanguageManager.java Thu Mar 20 01:29:42 2008 @@ -19,12 +19,14 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.codelutin.i18n.bundle.I18nBundleManager; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.TreeMap; +import java.net.URL; /** * Classe permettant de gerer plusieurs languages dans la meme jvm. @@ -57,12 +59,13 @@ * * @param locale la locale du language requis * @param encoding l'encondign du language requis + * @param extraUrl */ - public synchronized static void setLanguage(Locale locale, String encoding) { + public synchronized static void setLanguage(Locale locale, String encoding, URL... extraUrl) { Language result = getLanguage(locale, encoding); if (result == null) { - result = addLanguage(locale, encoding); + result = addLanguage(locale, encoding,extraUrl); } else { log.debug("using cached " + result); } @@ -86,6 +89,15 @@ return null; } + public static void reset() { + if (cache!=null) { + log.info(cache.size()); + cache.clear(); + cache=null; + } + I18nBundleManager.getInstance().reset(); + } + /** * @param encoding l'encoding recherche * @return la liste des languages du cache de l'encondig donné @@ -104,9 +116,9 @@ return cache; } - protected static Language addLanguage(Locale locale, String encoding) { + protected static Language addLanguage(Locale locale, String encoding, URL... extraUrl) { Language result; - result = Language.newLanguage(locale, encoding); + result = Language.newLanguage(locale, encoding,extraUrl); if (log.isDebugEnabled()) { log.debug(result); } Index: lutinutil/src/java/org/codelutin/i18n/Language.java diff -u lutinutil/src/java/org/codelutin/i18n/Language.java:1.10 lutinutil/src/java/org/codelutin/i18n/Language.java:1.11 --- lutinutil/src/java/org/codelutin/i18n/Language.java:1.10 Mon Mar 3 13:17:42 2008 +++ lutinutil/src/java/org/codelutin/i18n/Language.java Thu Mar 20 01:29:42 2008 @@ -32,6 +32,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.net.URLClassLoader; +import java.net.URL; import java.util.Enumeration; import java.util.Locale; import java.util.MissingResourceException; @@ -42,7 +43,7 @@ * resource for one language. *
* The class offers a public static factory method : - * {@link #newLanguage(Locale, String)}. + * {@link #newLanguage(Locale, String,URL[])}. * * Note : You SHOULD always use the factory method, since constructor does * not load i18n bundle resources. @@ -61,11 +62,12 @@ * * @param l la locale choisie * @param toEncoding l'encoding choisi + * @param extraUrl * @return l'instance du language correspondant, initialisé */ - public static Language newLanguage(Locale l, String toEncoding) { + public static Language newLanguage(Locale l, String toEncoding, URL... extraUrl) { Language language = new Language(l, toEncoding); - language.init(); + language.init(extraUrl); return language; } @@ -99,10 +101,11 @@ * charge les traductions de la langue. * * recherche dans un premier temps, les urls des bundles puis les charge. + * @param extraUrl */ - protected void init() { + protected void init(URL... extraUrl) { // make sure the bundlemanager is init - I18nBundleManager.init(); + I18nBundleManager.init(extraUrl); // load resources from bundles resource = new Properties(); Index: lutinutil/src/java/org/codelutin/i18n/I18n.java diff -u lutinutil/src/java/org/codelutin/i18n/I18n.java:1.13 lutinutil/src/java/org/codelutin/i18n/I18n.java:1.14 --- lutinutil/src/java/org/codelutin/i18n/I18n.java:1.13 Tue Mar 18 18:18:36 2008 +++ lutinutil/src/java/org/codelutin/i18n/I18n.java Thu Mar 20 01:29:42 2008 @@ -23,15 +23,16 @@ * * @author Benjamin PoussinlocaleISO-8859-1 enconding
*
- * @param locale language to use
+ * @param locale language to use
+ * @param extraUrl
*/
- public static void initISO88591(LocaleEnum locale) {
- setLanguage(locale, ISO_8859_1_ENCONDING);
+ public static void initISO88591(LocaleEnum locale, URL... extraUrl) {
+ setLanguage(locale, ISO_8859_1_ENCONDING, extraUrl);
}
/**
@@ -150,8 +152,8 @@
* Initialize the library with default locale {@link #DEFAULT_LOCALE}
* with ISO-8859-1 enconding
*/
- public static void initISO88591() {
- initISO88591((String)null);
+ public static void initISO88591() {
+ initISO88591(null);
}
/**
@@ -159,7 +161,7 @@
* with UTF-8 enconding
*/
public static void initUTF8() {
- initUTF8((String)null);
+ initUTF8((String) null);
}
/**
@@ -169,7 +171,7 @@
* @deprecated
*/
public static void init(String language) {
- init(language, null,DEFAULT_ENCODING);
+ init(language, null, DEFAULT_ENCODING);
}
/**
@@ -288,16 +290,16 @@
return recordFilePath;
}
- protected static void setLanguage(LocaleEnum locale, String toEncoding) {
+ protected static void setLanguage(LocaleEnum locale, String toEncoding, URL... extraUrl) {
Locale newLocale = locale.getLocale();
// delegate to LanguageManager
- LanguageManager.setLanguage(newLocale, toEncoding);
+ LanguageManager.setLanguage(newLocale, toEncoding, extraUrl);
}
- protected static void setLanguage(LanguageEnum language, CountryEnum country, String toEncoding) {
+ protected static void setLanguage(LanguageEnum language, CountryEnum country, String toEncoding, URL... extraUrl) {
Locale newLocale = newLocale(language, country);
// delegate to LanguageManager
- LanguageManager.setLanguage(newLocale, toEncoding);
+ LanguageManager.setLanguage(newLocale, toEncoding, extraUrl);
}
/**