At 02:39 PM 10/25/2001 +0200, you wrote:
> b)Maybe a bit nicer sollution could be to have an
>
> interface I18nDictonary {
> public String lookup( String key );
> public long getLastModified();
> }
>
> A helper class could delegate the lookup to the original
> XMLResourceBundle. If the getLastModified() is available
> making the I18nTransformer cacheable should be really easy,
> too. Cacheability would only depend on the features of
> the dictonary then.
I've already implemented something like that locally here, I just haven't
had a chance to port it back to the C2 tree and send a patch. Looks like
its needed tho :)
What I did:
I made an I18nResourceFactory component that returns XMLResourceBundles's :
XMLResourceBundle select(String name, Locale locale) throws ComponentException;
That component can be configured in cocoon.xconf with 2 parameters:
catalogue-location - the base directory to search for catalogues
cache-at-startup - same as XmlResourceBundle option
The I18nTransformer then uses the I18nResourceFactory to load its
XMLResouceBundles, thus having a single instance of each XMLResourceBundle
in memory.
I also gave the transformer some new options:
untranslated-text - set the text to insert if no translation is
found and no default. Can be an expression such as "[ut: $key]" where $key
was the attempted lookup key.
catalogue - this specifies which catalogue to request from the
I18nResourceFactory
ignore-no-catalogue - If the specified catalog cannot be found,
supress the error.
This is all against the 2.0 branch, as that is what we've been tracking
here. If interest is high I'll make a patch quicker :)
-pete
--
peter royal -> [EMAIL PROTECTED]
managing partners, inc. -> http://www.managingpartners.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]