Index: lutinutil/src/java/org/codelutin/i18n/LocaleEnum.java diff -u lutinutil/src/java/org/codelutin/i18n/LocaleEnum.java:1.1 lutinutil/src/java/org/codelutin/i18n/LocaleEnum.java:1.2 --- lutinutil/src/java/org/codelutin/i18n/LocaleEnum.java:1.1 Thu Feb 21 22:29:45 2008 +++ lutinutil/src/java/org/codelutin/i18n/LocaleEnum.java Thu Feb 21 23:11:49 2008 @@ -33,7 +33,7 @@ public enum LocaleEnum { fr(LanguageEnum.fr, CountryEnum.FR, n_("lutinutil.i18n.locale.fr")), - gb(LanguageEnum.en, CountryEnum.GB, n_("lutinutil.i18n.locale.en")); + en(LanguageEnum.en, CountryEnum.GB, n_("lutinutil.i18n.locale.en")); private CountryEnum country; private LanguageEnum langage; Index: lutinutil/src/java/org/codelutin/i18n/LanguageManager.java diff -u lutinutil/src/java/org/codelutin/i18n/LanguageManager.java:1.1 lutinutil/src/java/org/codelutin/i18n/LanguageManager.java:1.2 --- lutinutil/src/java/org/codelutin/i18n/LanguageManager.java:1.1 Sun Feb 10 16:00:25 2008 +++ lutinutil/src/java/org/codelutin/i18n/LanguageManager.java Thu Feb 21 23:11:49 2008 @@ -107,7 +107,7 @@ protected static Language addLanguage(Locale locale, String encoding) { Language result; - result = new Language(locale, encoding); + result = Language.valueOf(locale, encoding); 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.8 lutinutil/src/java/org/codelutin/i18n/Language.java:1.9 --- lutinutil/src/java/org/codelutin/i18n/Language.java:1.8 Wed Feb 20 21:09:17 2008 +++ lutinutil/src/java/org/codelutin/i18n/Language.java Thu Feb 21 23:11:49 2008 @@ -53,6 +53,10 @@ protected Locale locale; protected String encoding; + public static Language valueOf(Locale l,String toEncoding) { + return new Language(l,toEncoding); + } + public Language(Locale l,String toEncoding) { this.locale=l; this.encoding=toEncoding; Index: lutinutil/src/java/org/codelutin/i18n/I18n.java diff -u lutinutil/src/java/org/codelutin/i18n/I18n.java:1.9 lutinutil/src/java/org/codelutin/i18n/I18n.java:1.10 --- lutinutil/src/java/org/codelutin/i18n/I18n.java:1.9 Sun Feb 10 16:01:47 2008 +++ lutinutil/src/java/org/codelutin/i18n/I18n.java Thu Feb 21 23:11:49 2008 @@ -23,50 +23,49 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ * - * Mise a jour: $Date: 2008-02-10 16:01:47 $ + * Mise a jour: $Date: 2008-02-21 23:11:49 $ * par : $Author: tchemit $ */ package org.codelutin.i18n; +import java.io.InputStream; import java.text.MessageFormat; -import java.util.Locale; import java.util.Arrays; +import java.util.Locale; import java.util.logging.Logger; -import java.io.InputStream; /** * This class is a facility for internationalization. To use it in your soft, * you can either : * * - * * @author poussin * @author chemit * @created 2 decembre 2003 */ public class I18n { - static final LanguageEnum DEFAULT_LANGUAGE= LanguageEnum.en; - - static final CountryEnum DEFAULT_COUNTRY= CountryEnum.GB; - static final String ISO_8859_1_ENCONDING = "ISO-8859-1"; static final String UTF_8_ENCONDING = "UTF-8"; + static final LocaleEnum DEFAULT_LOCALE = LocaleEnum.en; + + static final String DEFAULT_ENCODING = ISO_8859_1_ENCONDING; + /** Filtre a appliquer avant de retourner les chaines */ protected static I18nFilter filter; @@ -82,18 +81,45 @@ protected static String recordFilePath; /** + * Initialize the library for given localeISO-8859-1 enconding + * + * @param locale language to use + */ + public static void initISO88591(LocaleEnum locale) { + setLanguage(locale, ISO_8859_1_ENCONDING); + } + + /** + * Initialize the library for given localeUTF-8 enconding + * + * @param locale language to use + */ + public static void initUTF8(LocaleEnum locale) { + setLanguage(locale, UTF_8_ENCONDING); + } + + /** + * Initialise la librairie + * + * @param language une chaine representant la langue à utiliser fr, en, ... + * @param country une chaine representant le pays à utiliser FR, GB, ... + * @deprecated voir le bug sur {@link I18nFileReader#load(InputStream, String)} + */ + public static void init(String language, String country) { + init(language, country, null); + } + + /** * Initialize the library for given language and given * country with ISO-8859-1 enconding * * @param language language to use - * @param country country to use + * @param country country to use */ public static void initISO88591(String language, String country) { - setLanguage( - LanguageEnum.valueOf(language, DEFAULT_LANGUAGE), - country == null ? null : CountryEnum.valueOf(country, DEFAULT_COUNTRY), - ISO_8859_1_ENCONDING - ); + init(language, country, ISO_8859_1_ENCONDING); } /** @@ -101,14 +127,10 @@ * given country with UTF-81 enconding * * @param language language to use - * @param country country to use + * @param country country to use */ public static void initUTF8(String language, String country) { - setLanguage( - LanguageEnum.valueOf(language, DEFAULT_LANGUAGE), - country == null ? null : CountryEnum.valueOf(country, DEFAULT_COUNTRY), - UTF_8_ENCONDING - ); + init(language, country, UTF_8_ENCONDING); } /** @@ -118,7 +140,7 @@ * @param language language to use */ public static void initISO88591(String language) { - initISO88591(language,null); + initISO88591(language, null); } /** @@ -132,25 +154,50 @@ } /** - * Initialize the library with default language {@link #DEFAULT_LANGUAGE} - * and default country {@link #DEFAULT_COUNTRY} with - * ISO-8859-1 enconding + * Initialize the library with default locale {@link #DEFAULT_LOCALE} + * with ISO-8859-1 enconding */ - public static void initISO88591() { - String lang = System.getProperty("user.language", DEFAULT_LANGUAGE.toString()); - String country = System.getProperty("user.country", DEFAULT_COUNTRY.toString()); - initISO88591(lang, country); + public static void initISO88591() { + initISO88591((String)null); } /** - * Initialize the library with default language {@link #DEFAULT_LANGUAGE} - * and default country {@link #DEFAULT_COUNTRY} with - * UTF-8 enconding + * Initialize the library with default locale {@link #DEFAULT_LOCALE} + * with UTF-8 enconding */ public static void initUTF8() { - String lang = System.getProperty("user.language", DEFAULT_LANGUAGE.toString()); - String country = System.getProperty("user.country", DEFAULT_COUNTRY.toString()); - initUTF8(lang, country); + initUTF8((String)null); + } + + /** + * Initialise la librairie. + * + * @param language une chaine representant la langue à utiliser fr, en, ... + * @deprecated + */ + public static void init(String language) { + init(language, null,DEFAULT_ENCODING); + } + + /** + * Initialise la librairie + * + * @param language une chaine representant la langue à utiliser fr, en, ... + * @param country une chaine representant le pays à utiliser FR, GB, ... + * @param encoding l'encoding a utiliser, si null DEFAULT_ENCODING est utilise + */ + protected static void init(String language, String country, String encoding) { + if (language == null) { + language = System.getProperty("user.language", DEFAULT_LOCALE.getLangage().toString()); + } + if (country == null) { + country = System.getProperty("user.country", DEFAULT_LOCALE.getCountry().toString()); + } + setLanguage( + LanguageEnum.valueOf(language, DEFAULT_LOCALE.getLangage()), + CountryEnum.valueOf(country, DEFAULT_LOCALE.getCountry()), + encoding == null ? DEFAULT_ENCODING : encoding + ); } /** @@ -217,7 +264,7 @@ try { return MessageFormat.format(message, args); } catch (Exception eee) { - Logger.getLogger("org.codelutin.i18n.I18n").warning(_("lutinutil.error.i18n.unformated.message", message, Arrays.toString(args))); + Logger.getLogger("org.codelutin.i18n.I18n").warning(I18n._("lutinutil.error.i18n.unformated.message", message, Arrays.toString(args))); return message; } } @@ -237,9 +284,7 @@ } protected static Language getLanguage() { - //TODO supprimer le test, des que l'on utilisera plus le champs language - //TODO i.e apres prochaine release lutinutil - return language!=null?language:LanguageManager.getLanguage(); + return LanguageManager.getLanguage(); } protected static I18nFilter getFilter() { @@ -250,10 +295,16 @@ return recordFilePath; } + protected static void setLanguage(LocaleEnum locale, String toEncoding) { + Locale newLocale = locale.getLocale(); + // delegate to LanguageManager + LanguageManager.setLanguage(newLocale, toEncoding); + } + protected static void setLanguage(LanguageEnum language, CountryEnum country, String toEncoding) { Locale newLocale = newLocale(language, country); // delegate to LanguageManager - LanguageManager.setLanguage(newLocale,toEncoding); + LanguageManager.setLanguage(newLocale, toEncoding); } /** @@ -276,26 +327,4 @@ return new Locale(language.toString(), country.toString()); } - /** - * Initialise la librairie - * - * @param language une chaine representant la langue à utiliser fr, en, ... - * @param country une chaine representant le pays à utiliser FR, GB, ... - * @deprecated voir le bug sur {@link I18nFileReader#load(InputStream, String)} - */ - public static void init(String language, String country) { - Locale locale = new Locale(language, country); - I18n.language = new Language(locale,UTF_8_ENCONDING); - } - - /** - * Initialise la librairie. - * - * @param language une chaine representant la langue à utiliser fr, en, ... - * @deprecated voir le bug sur {@link I18nFileReader#load(InputStream, String)} - */ - public static void init(String language) { - init(language,null); - } - } //I18n