Package org.nuiton.i18n
Class I18n
java.lang.Object
org.nuiton.i18n.I18n
New generation I18n class.
Note: This class replace the previous one in project
nuiton-utils.
This class is a facility for internationalization. To use it in your soft,
you can either : - import the org.nuiton.i18n.I18n class,
- init the translation support with the init(String language) or init(String language, String country), init(Localelocale) static methods in your main, ( eg: I18n.init("fr","FR") )
- call the translate static method for each sentence, ( eg: I18n.l("hello you !") )
- create a resource file for each language following the naming convention given in the java.util.ResourceBundle javadoc and translate all the sentence.
- Since:
- 1.1
- Author:
- Tony Chemit - chemit@codelutin.com
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static I18nFilterFiltre a appliquer avant de retourner les chainesprotected static I18nInitializerDeprecated.protected static I18nMessageFormatterFormatter to apply on each translation.protected static I18nStoreI18n store of languages -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static StringapplyFilter(String message) Applique le filtre s'il y en a unprotected static voidChecks if the I18n was initialized and if not as a fall-back, init it with default initializer and default locale.static voidclose()Close i18n caches, says the store if exists.protected static I18nLanguageObtain the registred language from the store.protected static I18nInitializerstatic LocaleObtain the default locale setted in I18n.protected static I18nFilterprotected static I18nLanguagegetLanguage(Locale locale) Obtain the language for the givenlocale.static I18nMessageFormatterstatic I18nStoregetStore()Get the i18n store.static booleanLook into the defaultI18nLanguageif the givenmessagecan be found.static booleanstatic voidinit(I18nInitializer initializer, Locale locale) Initialize I18n system.protected static voidinitStore(I18nInitializer initializer, Locale locale) Init the store with given parameters and set the current language in the store to the default givenlocale.static StringRetourne la chaine traduite si possible dans la locale demandée.static StringDeprecated.since 2.9, will be removed soon or later, prefer use now methodl(Locale, String, Object...)static StringRetourne la chaine passée en argument.static StringDeprecated.since 2.9, will be removed soon or later, prefer use now methodn(String, Object...)static voidreload()static voidsetDefaultLocale(Locale locale) Sets the default locale used by I18n for the methodt(String, Object...).static voidsetFilter(I18nFilter filter) Change le filtre des chaines traduitesstatic StringRetourne la chaine traduite si possible.
-
Field Details
-
initializer
Deprecated.since 2.1, will be removed in version 3.0, in stead use the methodinit(I18nInitializer, Locale)which will pass directly the initializer to the store.I18n initializer, -
store
I18n store of languages -
filter
Filtre a appliquer avant de retourner les chaines -
messageFormatter
Formatter to apply on each translation. This formatter can not be configured directly here, but must be setted into theinitializerused to configure the I18n system.- Since:
- 2.4
- See Also:
-
-
Constructor Details
-
I18n
public I18n()
-
-
Method Details
-
setFilter
Change le filtre des chaines traduites- Parameters:
filter- l'objet filtre a utiliser
-
init
Initialize I18n system. Theinitializercan be null, in that case it will use the default implementation of it given by the methodgetDefaultInitializer(). Thelocalecan also be null, and in that case we will use the default locale of the system given by the methodLocale.getDefault(). We strongly recommand not to use the default initializer, since this one scanq all the class-path to detects i18n files and can NOT garantee the order of loading such files. Prefer use at least theDefaultI18nInitializerinstead. In version 3.0, we will try to make theDefaultI18nInitializerthe default initializer using a convention over i18n files names.- Parameters:
initializer- the initializer to use to detect bundleslocale- the default locale to use- Since:
- 2.1
-
reload
public static void reload() -
setDefaultLocale
Sets the default locale used by I18n for the methodt(String, Object...). * As a side effect, it will also set this locale is the default locale in the system (says the methodLocale.getDefault()will return the given locale). Note : The I18n system must have been initialized by one of theinitmethod.- Parameters:
locale- the new default locale.- Since:
- 2.1
-
getDefaultLocale
Obtain the default locale setted in I18n. This very locale is used in translation when no locale information is given (says in methodt(String, Object...). Note : The I18n system must have been initialized by one of theinitmethod.- Returns:
- the default locale initialized in I18n
-
hasKey
Look into the defaultI18nLanguageif the givenmessagecan be found.- Parameters:
message- the message to check presence- Returns:
- true/false whether the message is present in the default language
- Since:
- 2.4.1
- See Also:
-
hasKey
- Parameters:
locale- the locale to be used to get the I18nLanguagemessage- the message to check presence- Returns:
- true/false whether the message is present for the given locale
- Since:
- 2.4.1
-
l_
Deprecated.since 2.9, will be removed soon or later, prefer use now methodl(Locale, String, Object...)Retourne la chaine traduite si possible dans la locale demandée.- Parameters:
locale- la locale dans lequel on souhaite la traductionmessage- message formate avecI18nMessageFormatterargs- les parametres pour le message.- Returns:
- la traduction si possible ou la chaine passee en parametre sinon.
- Since:
- 2.1
-
l
Retourne la chaine traduite si possible dans la locale demandée.- Parameters:
locale- la locale dans lequel on souhaite la traductionmessage- message formate avecI18nMessageFormatterargs- les parametres pour le message.- Returns:
- la traduction si possible ou la chaine passee en parametre sinon.
- Since:
- 2.1
-
t
Retourne la chaine traduite si possible.- Parameters:
message- message formate avecI18nMessageFormatterargs- les parametres pour le message.- Returns:
- la traduction si possible ou la chaine passee en parametre sinon.
-
n_
Deprecated.since 2.9, will be removed soon or later, prefer use now methodn(String, Object...)Retourne la chaine passée en argument. Utile surtout pour collecter les chaines et ne pas les traduires à leur apparition. Par exemple :String key = "nuitonutils.key"; String result = l(key)
fonctionnera, mais la chaine n'aura pas été marquée comme devant être internationalisé. Tres utile par exemple, pour crée des objets non internationnalisé, et devant être traduit seulement à leur lecture suivant la locale du lecteur et non du créateur.- Parameters:
message- message formate avecI18nMessageFormatterargs- les parametres pour le message.- Returns:
- le message passe en argument mais formatté avec les parametres
-
n
Retourne la chaine passée en argument. Utile surtout pour collecter les chaines et ne pas les traduires à leur apparition. Par exemple :String key = "nuitonutils.key"; String result = l(key)
fonctionnera, mais la chaine n'aura pas été marquée comme devant être internationalisé. Tres utile par exemple, pour crée des objets non internationnalisé, et devant être traduit seulement à leur lecture suivant la locale du lecteur et non du créateur.- Parameters:
message- message formate avecI18nMessageFormatterargs- les parametres pour le message.- Returns:
- le message passe en argument mais formatté avec les parametres
-
close
public static void close()Close i18n caches, says the store if exists. This method should be called to reset all caches (languages, bundles,...) -
getStore
Get the i18n store. If store is not init, then instanciate it.- Returns:
- the instanciated i18n store
-
applyFilter
Applique le filtre s'il y en a un- Parameters:
message- le message qui devrait etre retourne avant application du filtre.- Returns:
- le message filtre
-
getCurrentLanguage
Obtain the registred language from the store. If no language were registred in the store, then use the language with the default locale of the store.- Returns:
- the current language of the store, or the default one if store is not init.
-
getLanguage
Obtain the language for the givenlocale. If locale isnull, it means we wants to use the language registred in the store. As a fallback if this language is not defined, we use the language of the default locale of the store.- Parameters:
locale- the required locale ornullif we wants to use the one from the store- Returns:
- the language associated with the given locale.
- Since:
- 2.1
-
getFilter
-
getMessageFormatter
-
initStore
protected static void initStore(I18nInitializer initializer, Locale locale) throws NullPointerException Init the store with given parameters and set the current language in the store to the default givenlocale. All values must be nonenull.- Parameters:
initializer- the initializer to use to detect bundleslocale- the default locale to set in the store- Throws:
NullPointerException- if any parameter isnull
-
getDefaultInitializer
-
checkInit
protected static void checkInit()Checks if the I18n was initialized and if not as a fall-back, init it with default initializer and default locale. It could not works for you... A call to the methodinit(I18nInitializer, Locale)is mandatory if you want to be safe.- Since:
- 2.1
-
init(I18nInitializer, Locale)which will pass directly the initializer to the store.