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 Poussin * Copyright Code Lutin - * @version $Revision: 1.13 $ + * @version $Revision: 1.14 $ * - * Mise a jour: $Date: 2008-03-18 18:18:36 $ + * Mise a jour: $Date: 2008-03-20 01:29:42 $ * par : $Author: tchemit $ */ package org.codelutin.i18n; import java.io.InputStream; +import java.net.URL; import java.text.MessageFormat; import java.util.Arrays; import java.util.Locale; @@ -77,10 +78,11 @@ * Initialize the library for given localeISO-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); } /**