commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Florey" <>
Subject Re: [i18n] Entry qualifier (was Re: Status?)
Date Mon, 18 Apr 2005 09:11:34 GMT
"Jakarta Commons Developers List" <> schrieb am 18.04.05
> 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

Do you want this to be able to install different resources with the same message key or is
it mainly because of implementation details (performance)?

> 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 try my best to get your point...
At the moment there is only one MessageProvider holding many resources. You want to change
this to many MessageProviders holding one resource each in order to improve performance?
I currently don't have access to the sources as I'm on a project in Jordan, but as soon as
I'm back home I'll try to have a closer look at this.
Always keep in mind that it should be very simple to use the component.
Do you have sandbox commit access?

> 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:
> For additional commands, e-mail:

Mit WEB.DE FreePhone mit hoechster Qualitaet ab 0 Ct./Min.
weltweit telefonieren!

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message