You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Mattias J <mj...@expertsystem.se> on 2005/04/18 10:56:21 UTC
[i18n] Entry qualifier (was Re: Status?)
At 2005-04-18 10:33, Daniel Florey wrote:
> > i18n is appealing to me because it allows for multiple properties (such as
> > title and details) under a common key. We solve very similar problems in
> > our project, but I would like to use a generic API reusable among several
> > projects. Although I see some changes I would like to make ti i18n. For
> > example, I'd like the ability to qualify the entry with a source (i.e.
> base
> > name). This requires some other changes of the internal structure.
>
>Do you want to introduce something like a namespace for message keys? I've
>been thinking of something comparable in the past but dropped it as it
>would introduce addintional complexity.
>You can add namespaces by prefixing the message-keys.
My though was to re-use the basename or id used when "installing"
ResourceBundle or XML providers. For example, after issuing
ResourceBundleMessageProvider.install("errorMessages");
I would like to be able to qualify the newly installed messages with
MessageBundle msg = new MessageBundle("errorMessages", "unexpectedError");
but also keep the existing alternative with
MessageBundle msg = new MessageBundle("unexpectedError"); //
"unexpectedError" from any source
This may seem like a minor change at a first glance, but to also improve
performance my thought was to to change the MessageManager class from
holding a list of provider instances - which in turn can contain multiple
resources (and thus assumes one instance per provider class) - to holding a
Map from basename/id/namespace/qualifier to provider instance, where each
instance only contains a single resource (i.e. XML-file/ResourceBundle).
Though I planned on backwards compatibilty, by looping over the Map values
- instead of the List entries - in the current MessageManager.getText() method.
(Did I make myself clear?)
I'm also considering adding a DatabaseMessageProvider as a starting point
for database resouces (which is what I will be using primarily).
Mattias Jiderhamn
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org