harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: [classlib] internationalization
Date Thu, 13 Jul 2006 15:58:43 GMT
Denis Kishenko wrote:
> Hi all !
> 
> I would like to take part in internationalization discussion.
> 
> I agree with Alexey Petrenko that traditional way is better for work with
> exception messages.
> 
> Yes, Eclipse method has much faster access but needs to load ALL module
> messages at once. Exception messages are used rarely, so it's too expensive
> to keep all of them in memory. As Alexey said exception is a long
> operation,
> so don't pay attention to access speed so much.

When you load the messages using a ResourceBundle they also get loaded
all at once though, right?

Regards,
Tim


> 2006/7/12, Alexey Petrenko <alexey.a.petrenko@gmail.com>:
>>
>> Geir,
>>
>> I've reread your email in the morning :)
>>
>> Internationalization classes auto-generation is really good idea. We
>> can apply it for method described here and for "new Eclipse" method.
>>
>> In the first case "generator" will insert correct resource bundle and
>> package name. In the second one we can generate the supporting class
>> from the resource bundle file.
>>
>> There will be 2 big differences between this two methods:
>> 1. Initialization time: much faster for the "first" method
>> 2. Run time access time: much faster for the "second" method
>>
>> So if we will have situation with the big resource file and small
>> number of accesses to it then the "first" method will be faster. In
>> the case with large number of accesses the "second" method will be
>> more preferable.
>>
>> Probably we should think about using both methods depends on the purpose.
>>
>> For example. For UI application we have a huge number of messages
>> which are widely used during normal run (menu items, user messages
>> etc) and in this case the "second" method seems better.
>> Otherwise for the code without user interaction the messages from the
>> bundle will be mostly used as error messages for the throwing
>> exceptions. We hope that exceptions will not happen very often. And we
>> know that throwing an exception is rather long operation. So in this
>> case the "first" method seems better.
>>
>> Hmm... It looks like I've found an argument for using traditional
>> method in class library :)
>>
>> SY, Alexey
>>
>> 2006/7/11, Geir Magnusson Jr <geir@pobox.com>:
>> >
>> >
>> > Tim Ellison wrote:
>> > > Ilya Okomin wrote:
>> > >> I'd like to be a volunteer for that.
>> > >
>> > > I just started working in this area (for SQL), maybe that is what
>> > > prompted you...<g>
>> > >
>> > >> IMHO it's reasonable to use framework presented in luni module with
>> some
>> > >> modifications.
>> > >> To avoid duplication of Msg class I'd suggest use slightly modified
>> Msg
>> > >> class named let say
>> > >> o.a.h.luni.utils.ExtMsg.
>> > >> ExtMsg has the same methods as Msg, the difference is only these
>> methods
>> > >> are
>> > >> non static,
>> > >> also specific external messages resource bundle will be initialized
>> by name
>> > >> in the constructor.
>> > >> Each module will have class o.a.h.<module>.MsgUtils with static
>> field
>> 'msg'
>> > >> that is the instance of ExtMsg
>> > >> initialized with the name of the external messages resource bundle
>> related
>> > >> to this module.
>> > >> Thus external message for e.g. security module could be obtained
>> using next
>> > >> call:
>> > >>
>> > >> "org.apache.harmony.security.internal.MsgUtils.msg.getString("
>> security.1");"
>> > >
>> > > I see your point, and considered doing it that way too.  I'm not
>> overly
>> > > concerned about the duplication, they are trivial helper methods
>> anyway,
>> > > and we all know that singletons are evil ;-)
>> >
>> > I don't understand this, given you have one...
>> >
>> > >
>> > >> And at last, place to keep resources with external messages I
>> suppose
>> to be
>> > >> o.a.h.<module>.internal.
>> > >
>> > > I went for o.a.h.<module>.internal.nls just to keep them tidy.
>> > >
>> > >> If all these thoughts sounds reasonable, I'd like to implement
>> framework
>> > >> mentioned above and send you a patch.
>> > >
>> > > The real work is going through and externalizing all the messages,
>> and
>> > > if I were to be really ambitious to add messages to all the
>> exceptions
>> > > that we throw that don't have anything right now.
>> > >
>> > > Patches are always welcome.  We can work on that that as we finalize
>> on
>> > > the framework.
>> >
>> > Have you had any thoughts about a 'common' code set, that is copied and
>> > modified at build time, setting the right package name and bundle name
>> > by convention?  That would remove the need to duplicate the code.
>> >
>> > geir
>> >
>> >
>> > ---------------------------------------------------------------------
>> > Terms of use : http://incubator.apache.org/harmony/mailing.html
>> > To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>> > For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>> >
>> >
>>
>>
>> -- 
>> Alexey A. Petrenko
>> Intel Middleware Products Division
>>
>> ---------------------------------------------------------------------
>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>>
>>
> 

-- 

Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message