org.apache.wicket
Class Localizer

java.lang.Object
  extended by org.apache.wicket.Localizer

public class Localizer
extends Object

A utility class that encapsulates all of the localization related functionality in a way that it can be accessed by all areas of the framework in a consistent way. A singleton instance of this class is available via the Application object.

You may register additional IStringResourceLoader to extend or replace Wickets default search strategy for the properties. E.g. string resource loaders which load the properties from a database. There should be hardly any need to extend Localizer.

Author:
Chris Turner, Juergen Donnerstag
See Also:
Settings.getLocalizer(), IStringResourceLoader, Settings.getStringResourceLoaders()

Constructor Summary
Localizer()
          Create the utils instance class backed by the configuration information contained within the supplied application object.
 
Method Summary
 void clearCache()
          Clear all cache entries
protected  String getCacheKey(String key, Component component)
          Gets the cache key
protected  String getFromCache(String cacheKey)
          Get the value associated with the key from the cache.
 String getString(String key, Component component)
           
 String getString(String key, Component component, IModel<?> model)
           
 String getString(String key, Component component, IModel<?> model, Locale locale, String style, String defaultValue)
          Deprecated. please use getString(String, Component, IModel, String)
 String getString(String key, Component component, IModel<?> model, String defaultValue)
          Get the localized string using all of the supplied parameters.
 String getString(String key, Component component, String defaultValue)
           
 String getStringIgnoreSettings(String key, Component component, IModel<?> model, String defaultValue)
          This is similar to getString(String, Component, IModel, String) except that the resource settings are ignored.
protected  Iterator<IStringResourceLoader> getStringResourceLoaders()
          In case you want to provide your own list of string resource loaders
protected  Map<String,String> newCache()
          Create a new cache, override this method if you want a different map to store the cache keys, for example a map that hold only the last X number of elements..
protected  void putIntoCache(String cacheKey, String string)
          Put the value into the cache and associate it with the cache key
 void setEnableCache(boolean value)
          By default the cache is enabled.
 String substitutePropertyExpressions(Component component, String string, IModel<?> model)
          Helper method to handle property variable substitution in strings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Localizer

public Localizer()
Create the utils instance class backed by the configuration information contained within the supplied application object.

Method Detail

clearCache

public final void clearCache()
Clear all cache entries


getString

public String getString(String key,
                        Component component)
                 throws MissingResourceException
Parameters:
key - The key to obtain the resource for
component - The component to get the resource for
Returns:
The string resource
Throws:
MissingResourceException - If resource not found and configuration dictates that exception should be thrown
See Also:
getString(String, Component, IModel, Locale, String, String)

getString

public String getString(String key,
                        Component component,
                        IModel<?> model)
                 throws MissingResourceException
Parameters:
key - The key to obtain the resource for
component - The component to get the resource for
model - The model to use for property substitutions in the strings (optional)
Returns:
The string resource
Throws:
MissingResourceException - If resource not found and configuration dictates that exception should be thrown
See Also:
getString(String, Component, IModel, Locale, String, String)

getString

public String getString(String key,
                        Component component,
                        String defaultValue)
                 throws MissingResourceException
Parameters:
key - The key to obtain the resource for
component - The component to get the resource for
defaultValue - The default value (optional)
Returns:
The string resource
Throws:
MissingResourceException - If resource not found and configuration dictates that exception should be thrown
See Also:
getString(String, Component, IModel, Locale, String, String)

getString

@Deprecated
public String getString(String key,
                                   Component component,
                                   IModel<?> model,
                                   Locale locale,
                                   String style,
                                   String defaultValue)
                 throws MissingResourceException
Deprecated. please use getString(String, Component, IModel, String)

This method is now deprecated.

Parameters:
key -
component -
model -
locale -
style -
defaultValue -
Returns:
String
Throws:
MissingResourceException

getStringIgnoreSettings

public String getStringIgnoreSettings(String key,
                                      Component component,
                                      IModel<?> model,
                                      String defaultValue)
This is similar to getString(String, Component, IModel, String) except that the resource settings are ignored. This allows to to code something like
 String option = getLocalizer().getStringIgnoreSettings(getId() + ".null", this, "");
 if (Strings.isEmpty(option))
 {
        option = getLocalizer().getString("null", this, CHOOSE_ONE);
 }
 

Parameters:
key - The key to obtain the resource for
component - The component to get the resource for (optional)
model - The model to use for substitutions in the strings (optional)
defaultValue - The default value (optional)
Returns:
The string resource

getStringResourceLoaders

protected Iterator<IStringResourceLoader> getStringResourceLoaders()
In case you want to provide your own list of string resource loaders

Returns:
Iterator

getString

public String getString(String key,
                        Component component,
                        IModel<?> model,
                        String defaultValue)
                 throws MissingResourceException
Get the localized string using all of the supplied parameters. This method is left public to allow developers full control over string resource loading. However, it is recommended that one of the other convenience methods in the class are used as they handle all of the work related to obtaining the current user locale and style information.

Parameters:
key - The key to obtain the resource for
component - The component to get the resource for (optional)
model - The model to use for substitutions in the strings (optional)
defaultValue - The default value (optional)
Returns:
The string resource
Throws:
MissingResourceException - If resource not found and configuration dictates that exception should be thrown

putIntoCache

protected void putIntoCache(String cacheKey,
                            String string)
Put the value into the cache and associate it with the cache key

Parameters:
cacheKey -
string -

getFromCache

protected String getFromCache(String cacheKey)
Get the value associated with the key from the cache.

Parameters:
cacheKey -
Returns:
The value of the key

getCacheKey

protected String getCacheKey(String key,
                             Component component)
Gets the cache key

Parameters:
key -
component -
Returns:
The value of the key

substitutePropertyExpressions

public String substitutePropertyExpressions(Component component,
                                            String string,
                                            IModel<?> model)
Helper method to handle property variable substitution in strings.

Parameters:
component - The component requesting a model value
string - The string to substitute into
model - The model
Returns:
The resulting string

setEnableCache

public final void setEnableCache(boolean value)
By default the cache is enabled. Disabling the cache will disable it and clear the cache. This can be handy for example in development mode.

Parameters:
value -

newCache

protected Map<String,String> newCache()
Create a new cache, override this method if you want a different map to store the cache keys, for example a map that hold only the last X number of elements.. By default it uses the ConcurrentHashMap

Returns:
cache


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.