org.apache.cocoon.transformation
Class I18nTransformer

java.lang.Object
  extended byorg.apache.cocoon.util.AbstractLogEnabled
      extended byorg.apache.cocoon.xml.AbstractXMLProducer
          extended byorg.apache.cocoon.xml.AbstractXMLPipe
              extended byorg.apache.cocoon.transformation.AbstractTransformer
                  extended byorg.apache.cocoon.transformation.I18nTransformer
All Implemented Interfaces:
org.apache.cocoon.caching.CacheableProcessingComponent, Configurable, ContentHandler, Disposable, LexicalHandler, Poolable, Recyclable, Serviceable, org.apache.cocoon.sitemap.SitemapModelComponent, org.apache.cocoon.transformation.Transformer, XMLConsumer, org.apache.cocoon.xml.XMLConsumer, org.apache.cocoon.xml.XMLPipe, org.apache.cocoon.xml.XMLProducer

public class I18nTransformer
extends org.apache.cocoon.transformation.AbstractTransformer
implements org.apache.cocoon.caching.CacheableProcessingComponent, Serviceable, Configurable, Disposable

Internationalization transformer is used to transform i18n markup into text based on a particular locale.

Overview

The i18n transformer works by finding a translation for the user's locale in the configured catalogues. Locale is passed as parameter to the transformer, and it can be determined based on the request, session, or a cookie data by the LocaleAction.

For the passed local it then attempts to find a message catalogue that satisifies the locale, and uses it for for processing text replacement directed by i18n markup.

Message catalogues are maintained in separate files, with a naming convention similar to that of ResourceBundle. I.e. basename_locale, where basename can be any name, and locale can be any locale specified using ISO 639/3166 characters (eg. en_AU, de_AT, es).

NOTE: ISO 639 is not a stable standard; some of the language codes it defines (specifically, iw, ji, and in) have changed (see Locale for details).

Message Catalogues

Catalogues are of the following format:

 <?xml version="1.0"?>
 <!-- message catalogue file for locale ... -->
 <catalogue xml:lang="locale">
   <message key="key">text <i>or</i> markup</message>
   ....
 </catalogue>
 
Where key specifies a particular message for that language.

Usage

Files to be translated contain the following markup:

 <?xml version="1.0"?>
 ... some text, translate <i18n:text>key</i18n:text>
 
At runtime, the i18n transformer will find a message catalogue for the user's locale, and will appropriately replace the text between the <i18n:text> markup, using the value between the tags as the lookup key.

If the i18n transformer cannot find an appropriate message catalogue for the user's given locale, it will recursively try to locate a parent message catalogue, until a valid catalogue can be found. ie:

eg: Assuming a basename of messages and a locale of en_AU (no variant), the following search will occur: This allows the developer to write a hierarchy of message catalogues, at each defining messages with increasing depth of variation.

In addition, catalogues can be split across multiple locations. For example, there can be a default catalogue in one directory with a user or client specific catalogue in another directory. The catalogues will be searched in the order of the locations specified still following the locale ordering specified above. eg: Assuming a basename of messages and a locale of en_AU (no variant) and locations of translations/client and translations, the following search will occur:

The i18n:text element can optionally take an attribute i18n:catalogue to indicate which specific catalogue to use. The value of this attribute should be the id of the catalogue to use (see sitemap configuration).

Sitemap Configuration

 <map:transformer name="i18n"
     src="org.apache.cocoon.transformation.I18nTransformer">

     <catalogues default="someId">
       <catalogue id="someId" name="messages" [location="translations"]>
         [<location>translations/client</location>]
         [<location>translations</location>]
       </catalogue>
       ...
     </catalogues>
     <untranslated-text>untranslated</untranslated-text>
     <preload>en_US</preload>
     <preload catalogue="someId">fr_CA</preload>
 </map:transformer>
 
Where:

Pipeline Usage

To use the transformer in a pipeline, simply specify it in a particular transform, and pass locale parameter:

 <map:match pattern="file">
   <map:generate src="file.xml"/>
   <map:transform type="i18n">
     <map:parameter name="locale" value="..."/>
   </map:transform>
   <map:serialize/>
 </map:match>
 
You can use LocaleAction or any other way to provide transformer with a locale.

If in certain pipeline, you want to use a different catalogue as the default catalogue, you can do so by specifying a parameter called default-catalogue-id.

The untranslated-text can also be overridden at the pipeline level by specifying it as a parameter.

i18n markup

For date, time and number formatting use the following tags:

Elements date, date-time and time accept pattern and src-pattern attribute, with values of: See DateFormat for more info on these values.

Elements date, date-time, time and number, a different locale and source-locale can be specified:

 <i18n:date src-pattern="short" src-locale="en_US" locale="de_DE">
   12/24/01
 </i18n:date>
 
Will result in 24.12.2001.

A given real pattern and src-pattern (not keywords short, medium, long, full) overrides any value specified by locale and src-locale attributes.

Future work coming:

Version:
$Id: I18nTransformer.html 1304280 2012-03-23 11:18:01Z ilgrosso $

Nested Class Summary
 class I18nTransformer.CatalogueInfo
          Holds information about one catalogue.
 
Field Summary
static String CURRENCY_LOCALE_ATTRIBUTE
          This attribute is used to specify a different locale for the currency.
protected  BundleFactory factory
          Message bundle loader factory component (service)
static String I18N_ATTR_ATTRIBUTE
          This attribute is used with any element (even not i18n) to translate attribute values.
static String I18N_CATALOGUE_ATTRIBUTE
          This attribute can be used on i18n:text to indicate the catalogue from which the key should be retrieved.
static String I18N_CHOOSE_ELEMENT
          i18n:choose element is used to translate elements in-place.
static String I18N_CURRENCY_ELEMENT
          Currency element name
static String I18N_CURRENCY_NO_UNIT_ELEMENT
          Currency without unit element name
static String I18N_DATE_ELEMENT
          i18n:date is used to provide a localized date string.
static String I18N_DATE_TIME_ELEMENT
          i18n:date-time is used to provide a localized date and time string.
static String I18N_DEFAULT_CATALOGUE_ID
          This configuration parameter specifies the id of the catalogue to be used as default catalogue, allowing to redefine the default catalogue on the pipeline level.
static String I18N_EXPR_ATTRIBUTE
          This attribute is used with any element (even not i18n) to evaluate attribute values.
static String I18N_FRACTION_DIGITS_ATTRIBUTE
          fraction-digits attribute is used with i18:number to indicate the number of digits behind the fraction
static String I18N_IF_ELEMENT
          i18n:if is used to test a locale.
static String I18N_INT_CURRENCY_ELEMENT
          Integer currency element name
static String I18N_INT_CURRENCY_NO_UNIT_ELEMENT
          Integer currency without unit element name
static String I18N_KEY_ATTRIBUTE
          This attribute is used with i18n:text element to indicate the key of the according message.
static String I18N_LOCALE
          This configuration parameter specifies the default locale to be used.
static String I18N_LOCALE_ATTRIBUTE
          This attribute is used with date and number formatting elements to indicate the locale that should be used to format the element value.
static String I18N_NAMESPACE_URI
          The namespace for i18n is "http://apache.org/cocoon/i18n/2.1".
static String I18N_NUMBER_ELEMENT
          i18n:number is used to provide a localized number string.
static String I18N_OLD_NAMESPACE_URI
          The old namespace for i18n is "http://apache.org/cocoon/i18n/2.0".
static String I18N_OTHERWISE_ELEMENT
          i18n:otherwise is used to match any locale when no matching locale has been found inside an i18n:choose block.
static String I18N_PARAM_ELEMENT
          i18n:param is used with i18n:translate to provide substitution params.
static String I18N_PARAM_NAME_ATTRIBUTE
          This attribute affects a name to the param that could be used for substitution.
static String I18N_PATTERN_ATTRIBUTE
          This attribute is used with date and number formatting elements to indicate the pattern that should be used to format the element value.
static String I18N_PERCENT_ELEMENT
          Percent element name
static String I18N_PRELOAD
          This configuration parameter specifies locale for which catalogues should be preloaded.
static String I18N_SRC_LOCALE_ATTRIBUTE
          This attribute is used with date and number formatting elements to indicate the locale that should be used to parse the element value.
static String I18N_SRC_PATTERN_ATTRIBUTE
          This attribute is used with date and number formatting elements to indicate the pattern that should be used to parse the element value.
static String I18N_TEXT_ELEMENT
          i18n:text element is used to translate any text, with or without markup.
static String I18N_TIME_ELEMENT
          i18n:time is used to provide a localized time string.
static String I18N_TRANSLATE_ELEMENT
          i18n:translate element is used to translate text with parameter substitution.
static String I18N_TYPE_ATTRIBUTE
          Deprecated. since 2.1. Use nested tags instead, e.g.: <i18n:param><i18n:date/></i18n:param>
static String I18N_UNTRANSLATED
          This configuration parameter specifies the message that should be displayed in case of a not translated text (message not found).
static String I18N_VALUE_ATTRIBUTE
          This attribute is used with date and number formatting elements to indicate the value that should be parsed and formatted.
static String I18N_WHEN_ELEMENT
          i18n:when is used to test a locale.
protected  Locale locale
          Locale
protected  ServiceManager manager
          Component (service) manager
protected  Map objectModel
           
 
Fields inherited from class org.apache.cocoon.xml.AbstractXMLProducer
contentHandler, EMPTY_CONTENT_HANDLER, lexicalHandler, xmlConsumer
 
Fields inherited from interface org.apache.cocoon.transformation.Transformer
ROLE
 
Constructor Summary
I18nTransformer()
           
 
Method Summary
 void characters(char[] ch, int start, int len)
           
 void configure(Configuration conf)
          Implementation of Configurable interface.
 void dispose()
           
 void endElement(String uri, String name, String raw)
           
 Serializable getKey()
          Implemenation of CacheableProcessingComponents.
 Locale getLocale()
          Returns the current locale setting of this transformer instance.
protected  ParamSaxBuffer getMessage(String catalogueID, String key)
          Helper method to retrieve a message from the dictionary.
 SourceValidity getValidity()
          Implementation of CacheableProcessingComponent.
 void recycle()
           
 void service(ServiceManager manager)
          Look up the BundleFactory to be used.
 void setup(org.apache.cocoon.environment.SourceResolver resolver, Map objectModel, String source, Parameters parameters)
          Setup current instance of transformer.
 void startElement(String uri, String name, String raw, Attributes attr)
           
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLPipe
comment, endCDATA, endDocument, endDTD, endEntity, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startCDATA, startDocument, startDTD, startEntity, startPrefixMapping
 
Methods inherited from class org.apache.cocoon.xml.AbstractXMLProducer
setConsumer, setContentHandler, setLexicalHandler
 
Methods inherited from class org.apache.cocoon.util.AbstractLogEnabled
getLogger, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
endDocument, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping
 
Methods inherited from interface org.xml.sax.ext.LexicalHandler
comment, endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity
 
Methods inherited from interface org.apache.cocoon.xml.XMLProducer
setConsumer
 

Field Detail

I18N_NAMESPACE_URI

public static final String I18N_NAMESPACE_URI
The namespace for i18n is "http://apache.org/cocoon/i18n/2.1".

See Also:
Constant Field Values

I18N_OLD_NAMESPACE_URI

public static final String I18N_OLD_NAMESPACE_URI
The old namespace for i18n is "http://apache.org/cocoon/i18n/2.0".

See Also:
Constant Field Values

I18N_TEXT_ELEMENT

public static final String I18N_TEXT_ELEMENT
i18n:text element is used to translate any text, with or without markup. Example:
   <i18n:text>
     This is <strong>translated</strong> string.
   </i18n:text>
 

See Also:
Constant Field Values

I18N_TRANSLATE_ELEMENT

public static final String I18N_TRANSLATE_ELEMENT
i18n:translate element is used to translate text with parameter substitution. Example:
 <i18n:translate>
   <i18n:text>This is translated string with {0} param</i18n:text>
   <i18n:param>1</i18n:param>
 </i18n:translate>
 
The i18n:text fragment can include markup and parameters at any place. Also do parameters, which can include i18n:text, i18n:date, etc. elements (without keys only).

See Also:
I18N_TEXT_ELEMENT, I18N_PARAM_ELEMENT, Constant Field Values

I18N_CHOOSE_ELEMENT

public static final String I18N_CHOOSE_ELEMENT
i18n:choose element is used to translate elements in-place. The first i18n:when element matching the current locale is selected and the others are discarded.

To specify what to do if no locale matched, simply add a node with locale="*". Note that this element must be the last child of <i18n:choose>.

 <i18n:choose>
   <i18n:when locale="en">
     Good Morning
   </en>
   <i18n:when locale="fr">
     Bonjour
   </jp>
   <i18n:when locale="jp">
     Aligato?
   </jp>
   <i18n:otherwise>
     Sorry, i don't know how to say hello in your language
   </jp>
 <i18n:translate>
 

You can include any markup within i18n:when elements, with the exception of other i18n:* elements.

Since:
2.1
See Also:
I18N_IF_ELEMENT, I18N_LOCALE_ATTRIBUTE, Constant Field Values

I18N_WHEN_ELEMENT

public static final String I18N_WHEN_ELEMENT
i18n:when is used to test a locale. It can be used within i18:choose elements or alone. Note: Using locale="*" here has no sense. Example:
 <greeting>
   <i18n:when locale="en">Hello</i18n:when>
   <i18n:when locale="fr">Bonjour</i18n:when>
 </greeting>
 

Since:
2.1
See Also:
I18N_LOCALE_ATTRIBUTE, I18N_CHOOSE_ELEMENT, Constant Field Values

I18N_IF_ELEMENT

public static final String I18N_IF_ELEMENT
i18n:if is used to test a locale. Example:
 <greeting>
   <i18n:if locale="en">Hello</i18n:when>
   <i18n:if locale="fr">Bonjour</i18n:when>
 </greeting>
 

Since:
2.1
See Also:
I18N_LOCALE_ATTRIBUTE, I18N_CHOOSE_ELEMENT, I18N_WHEN_ELEMENT, Constant Field Values

I18N_OTHERWISE_ELEMENT

public static final String I18N_OTHERWISE_ELEMENT
i18n:otherwise is used to match any locale when no matching locale has been found inside an i18n:choose block.

Since:
2.1
See Also:
I18N_CHOOSE_ELEMENT, I18N_WHEN_ELEMENT, Constant Field Values

I18N_PARAM_ELEMENT

public static final String I18N_PARAM_ELEMENT
i18n:param is used with i18n:translate to provide substitution params. The param can have i18n:text as its value to provide multilungual value. Parameters can have additional attributes to be used for formatting:
  • type: can be date, date-time, time, number, currency, currency-no-unit or percent. Used to format params before substitution.
  • value: the value of the param. If no value is specified then the text inside of the param element will be used.
  • locale: used only with number, date, time, date-time types and used to override the current locale to format the given value.
  • src-locale: used with number, date, time, date-time types and specify the locale that should be used to parse the given value.
  • pattern: used with number, date, time, date-time types and specify the pattern that should be used to format the given value.
  • src-pattern: used with number, date, time, date-time types and specify the pattern that should be used to parse the given value.

See Also:
I18N_TRANSLATE_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_PARAM_NAME_ATTRIBUTE

public static final String I18N_PARAM_NAME_ATTRIBUTE
This attribute affects a name to the param that could be used for substitution.

Since:
2.1
See Also:
Constant Field Values

I18N_DATE_ELEMENT

public static final String I18N_DATE_ELEMENT
i18n:date is used to provide a localized date string. Allowed attributes are: pattern, src-pattern, locale, src-locale. Usage examples:
  <i18n:date src-pattern="short" src-locale="en_US" locale="de_DE">
    12/24/01
  </i18n:date>

  <i18n:date pattern="dd/MM/yyyy" />
 
If no value is specified then the current date will be used. E.g.:
   <i18n:date />
 
Displays the current date formatted with default pattern for the current locale.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_DATE_TIME_ELEMENT

public static final String I18N_DATE_TIME_ELEMENT
i18n:date-time is used to provide a localized date and time string. Allowed attributes are: pattern, src-pattern, locale, src-locale. Usage examples:
  <i18n:date-time src-pattern="short" src-locale="en_US" locale="de_DE">
    12/24/01 1:00 AM
  </i18n:date>

  <i18n:date-time pattern="dd/MM/yyyy hh:mm" />
 
If no value is specified then the current date and time will be used. E.g.:
  <i18n:date-time />
 
Displays the current date formatted with default pattern for the current locale.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_TIME_ELEMENT

public static final String I18N_TIME_ELEMENT
i18n:time is used to provide a localized time string. Allowed attributes are: pattern, src-pattern, locale, src-locale. Usage examples:
  <i18n:time src-pattern="short" src-locale="en_US" locale="de_DE">
    1:00 AM
  </i18n:time>

 <i18n:time pattern="hh:mm:ss" />
 
If no value is specified then the current time will be used. E.g.:
  <i18n:time />
 
Displays the current time formatted with default pattern for the current locale.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_DATE_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_NUMBER_ELEMENT

public static final String I18N_NUMBER_ELEMENT
i18n:number is used to provide a localized number string. Allowed attributes are: pattern, src-pattern, locale, src-locale, type. Usage examples:
  <i18n:number src-pattern="short" src-locale="en_US" locale="de_DE">
    1000.0
  </i18n:number>

 <i18n:number type="currency" />
 
If no value is specifies then 0 will be used.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_TIME_ELEMENT, I18N_DATE_ELEMENT, Constant Field Values

I18N_CURRENCY_ELEMENT

public static final String I18N_CURRENCY_ELEMENT
Currency element name

See Also:
Constant Field Values

I18N_PERCENT_ELEMENT

public static final String I18N_PERCENT_ELEMENT
Percent element name

See Also:
Constant Field Values

I18N_INT_CURRENCY_ELEMENT

public static final String I18N_INT_CURRENCY_ELEMENT
Integer currency element name

See Also:
Constant Field Values

I18N_CURRENCY_NO_UNIT_ELEMENT

public static final String I18N_CURRENCY_NO_UNIT_ELEMENT
Currency without unit element name

See Also:
Constant Field Values

I18N_INT_CURRENCY_NO_UNIT_ELEMENT

public static final String I18N_INT_CURRENCY_NO_UNIT_ELEMENT
Integer currency without unit element name

See Also:
Constant Field Values

I18N_KEY_ATTRIBUTE

public static final String I18N_KEY_ATTRIBUTE
This attribute is used with i18n:text element to indicate the key of the according message. The character data of the element will be used if no message is found by this key. E.g.:
 <i18n:text i18n:key="a_key">article_text1</i18n:text>
 

See Also:
Constant Field Values

I18N_ATTR_ATTRIBUTE

public static final String I18N_ATTR_ATTRIBUTE
This attribute is used with any element (even not i18n) to translate attribute values. Should contain whitespace separated attribute names that should be translated:
 <para title="first" name="article" i18n:attr="title name"/>
 
Attribute value considered as key in message catalogue.

See Also:
Constant Field Values

I18N_EXPR_ATTRIBUTE

public static final String I18N_EXPR_ATTRIBUTE
This attribute is used with any element (even not i18n) to evaluate attribute values. Should contain whitespace separated attribute names that should be evaluated:
 <para title="first" name="{one} {two}" i18n:attr="name"/>
 
Attribute value considered as expression containing text and catalogue keys in curly braces.

See Also:
Constant Field Values

I18N_SRC_PATTERN_ATTRIBUTE

public static final String I18N_SRC_PATTERN_ATTRIBUTE
This attribute is used with date and number formatting elements to indicate the pattern that should be used to parse the element value.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_PATTERN_ATTRIBUTE

public static final String I18N_PATTERN_ATTRIBUTE
This attribute is used with date and number formatting elements to indicate the pattern that should be used to format the element value.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_LOCALE_ATTRIBUTE

public static final String I18N_LOCALE_ATTRIBUTE
This attribute is used with date and number formatting elements to indicate the locale that should be used to format the element value. Also used for in-place translations.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, I18N_WHEN_ELEMENT, Constant Field Values

I18N_SRC_LOCALE_ATTRIBUTE

public static final String I18N_SRC_LOCALE_ATTRIBUTE
This attribute is used with date and number formatting elements to indicate the locale that should be used to parse the element value.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_VALUE_ATTRIBUTE

public static final String I18N_VALUE_ATTRIBUTE
This attribute is used with date and number formatting elements to indicate the value that should be parsed and formatted. If value attribute is not used then the character data of the element will be used.

See Also:
I18N_PARAM_ELEMENT, I18N_DATE_TIME_ELEMENT, I18N_DATE_ELEMENT, I18N_TIME_ELEMENT, I18N_NUMBER_ELEMENT, Constant Field Values

I18N_TYPE_ATTRIBUTE

public static final String I18N_TYPE_ATTRIBUTE
Deprecated. since 2.1. Use nested tags instead, e.g.: <i18n:param><i18n:date/></i18n:param>

This attribute is used with i18:param to indicate the parameter type: date, time, date-time or number, currency, percent, int-currency, currency-no-unit, int-currency-no-unit. Also used with i18:translate to indicate inplace translations: inplace

See Also:
Constant Field Values

CURRENCY_LOCALE_ATTRIBUTE

public static final String CURRENCY_LOCALE_ATTRIBUTE
This attribute is used to specify a different locale for the currency. When specified, this locale will be combined with the "normal" locale: e.g. the seperator symbols are taken from the normal locale but the currency symbol and possition will be taken from the currency locale. This enables to see a currency formatted for Euro but with US grouping and decimal char.

See Also:
Constant Field Values

I18N_CATALOGUE_ATTRIBUTE

public static final String I18N_CATALOGUE_ATTRIBUTE
This attribute can be used on i18n:text to indicate the catalogue from which the key should be retrieved. This attribute is optional, if it is not mentioned the default catalogue is used.

See Also:
Constant Field Values

I18N_LOCALE

public static final String I18N_LOCALE
This configuration parameter specifies the default locale to be used.

See Also:
Constant Field Values

I18N_DEFAULT_CATALOGUE_ID

public static final String I18N_DEFAULT_CATALOGUE_ID
This configuration parameter specifies the id of the catalogue to be used as default catalogue, allowing to redefine the default catalogue on the pipeline level.

See Also:
Constant Field Values

I18N_UNTRANSLATED

public static final String I18N_UNTRANSLATED
This configuration parameter specifies the message that should be displayed in case of a not translated text (message not found).

See Also:
Constant Field Values

I18N_PRELOAD

public static final String I18N_PRELOAD
This configuration parameter specifies locale for which catalogues should be preloaded.

See Also:
Constant Field Values

I18N_FRACTION_DIGITS_ATTRIBUTE

public static final String I18N_FRACTION_DIGITS_ATTRIBUTE
fraction-digits attribute is used with i18:number to indicate the number of digits behind the fraction

See Also:
Constant Field Values

manager

protected ServiceManager manager
Component (service) manager


factory

protected BundleFactory factory
Message bundle loader factory component (service)


objectModel

protected Map objectModel

locale

protected Locale locale
Locale

Constructor Detail

I18nTransformer

public I18nTransformer()
Method Detail

getLocale

public Locale getLocale()
Returns the current locale setting of this transformer instance.

Returns:
current Locale object

getKey

public Serializable getKey()
Implemenation of CacheableProcessingComponents. Generates unique key for the current locale.

Specified by:
getKey in interface org.apache.cocoon.caching.CacheableProcessingComponent

getValidity

public SourceValidity getValidity()
Implementation of CacheableProcessingComponent. Generates validity object for this transformer or null if this instance is not cacheable.

Specified by:
getValidity in interface org.apache.cocoon.caching.CacheableProcessingComponent

service

public void service(ServiceManager manager)
             throws ServiceException
Look up the BundleFactory to be used.

Specified by:
service in interface Serviceable
Throws:
ServiceException

configure

public void configure(Configuration conf)
               throws ConfigurationException
Implementation of Configurable interface. Configure this transformer.

Specified by:
configure in interface Configurable
Throws:
ConfigurationException

setup

public void setup(org.apache.cocoon.environment.SourceResolver resolver,
                  Map objectModel,
                  String source,
                  Parameters parameters)
           throws org.apache.cocoon.ProcessingException,
                  SAXException,
                  IOException
Setup current instance of transformer.

Specified by:
setup in interface org.apache.cocoon.sitemap.SitemapModelComponent
Throws:
org.apache.cocoon.ProcessingException
SAXException
IOException

startElement

public void startElement(String uri,
                         String name,
                         String raw,
                         Attributes attr)
                  throws SAXException
Specified by:
startElement in interface ContentHandler
Throws:
SAXException

endElement

public void endElement(String uri,
                       String name,
                       String raw)
                throws SAXException
Specified by:
endElement in interface ContentHandler
Throws:
SAXException

characters

public void characters(char[] ch,
                       int start,
                       int len)
                throws SAXException
Specified by:
characters in interface ContentHandler
Throws:
SAXException

getMessage

protected ParamSaxBuffer getMessage(String catalogueID,
                                    String key)
Helper method to retrieve a message from the dictionary.

Parameters:
catalogueID - if not null, this catalogue will be used instead of the default one.
Returns:
SaxBuffer containing message, or null if not found.

recycle

public void recycle()
Specified by:
recycle in interface Recyclable

dispose

public void dispose()
Specified by:
dispose in interface Disposable


Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.