harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paulex Yang <paulex.y...@gmail.com>
Subject Re: [drlvm] proposals for VM internationalization
Date Thu, 13 Jul 2006 07:37:40 GMT
Vladimir Gorr wrote:
> On 7/13/06, Paulex Yang <paulex.yang@gmail.com> wrote:
>>
>> Hi, Vladimir
>>
>> Log4c and log4cpp are both good tools, but if our requirements are just
>> message internationalization, maybe log4cxx is overkill? After all, as a
>> complete log framework, it provides supports to  i18n, category,
>> layout....
>>
>> And if we talk about ResourceBundle only,  I'd suggest consider ICU4C as
>> a candidate, which provides many i18n features including
>> ResourceBundle[1] support to c as well as c++, and more important, it
>> has been included as Harmony dependencies.
>>
>> Of course, if you think VM needs more complicated log mechanism support,
>> this will be another story.
>
>
> Yes, this is such case. I suppose some of us will want to read the debug
> output from JIT
> in the Chinese language. Why not? 
Cool! You are right I do want to ;-) !
> However you're right the ICU4C can be also
> used for some cases.
> Maybe it makes sense to combine these two mechanisms (one for user 
> messages,
> other for internal needs).
Maybe, if the ICU4C usage can introduce less footprint/performance 
impact to DRLVM in non-debug mode. (I have no idea about this actually, 
just guess if ICU4C only cares about ResourceBundle while log4cxx has 
much more things in its mind...)
> Just the log4cxx is used as logging system for DRLVM and we think a 
> little
> of efforts will need to internationalize
> the native code in this case.
I see, this is what I expected, thank you to clarify this. :)
>
> Thanks,
> Vladimir.
>
>
>> [1]http://icu.sourceforge.net/apiref/icu4c/
>>
>> Vladimir Gorr wrote:
>> > Hi Harmony community.
>> >
>> >
>> >
>> > I'd like to discuss with you a design for the VM native code
>> > internationalization (attached below).
>> >
>> > We'd like to consider this approach for the DRLVM first of all.
>> > However it
>> > can be suitable for other parts of Harmony project I suppose.
>> >
>> > Please let me know your opinions/objections.
>> >
>> >
>> >
>> > Thanks,
>> >
>> > Vladimir .
>> >
>> >
>> >
>> >
>> -----------------------------------------------------------------------------------------------------------------------------------

>>
>> >
>> >
>> > Internationalization design *1. Introduction*
>> >
>> >
>> >
>> > The VM's output needs to be internationalized in order to provide
>> > localized
>> > versions of our product.
>> >
>> > The key idea is to use ResourceBundle class from apache log4cxx which
>> > allow
>> > to store and effective use bundles with localized messages.
>> >
>> > The document describes:
>> >
>> > ·         ResourceBundle naming conventions for bundles with localized
>> > messages.
>> >
>> > ·         Structure of* *ResourceBundle file. "MessageId" (keys for
>> > localized message in ResourceBundle) development guidelines.
>> >
>> > ·         Requirements.
>> >
>> > ·         How it works inside VM.
>> >
>> >
>> >
>> > *Definitions: *
>> >
>> >
>> >
>> > I18n – internationalization
>> >
>> > L10n – localization
>> >
>> > L7d – localized
>> >
>> >
>> >
>> > *2. ResourceBundle naming conventions for bundles with localized
>> > messages. *
>> >
>> >
>> >
>> > We offer to use ResourceBundle class from apache log4cxx as storage of
>> > localized messages. At first time all Resourcebundles are files.
>> >
>> > After VM starts, on VM's logging subsystem initialization stage, 
>> logging
>> > system chooses appropriate set of ResourceBundles
>> >
>> > according to values of environment variables: LC_ALL, LC_MESSAGES, and
>> > LANG.
>> >
>> > Chosen ResourceBundles should be used for printing localized messages
>> > from
>> > VM.
>> >
>> >
>> >
>> > E.g. If the environment variable LANG is equal to "ru_RU" then the
>> > following
>> > set of ResourceBundles should be used (see naming conventions below):
>> >
>> > ·         java_ru_RU.properties
>> >
>> > ·         java_ru.properties
>> >
>> > ·         java.properties
>> >
>> >
>> >
>> > Each file which presents ResourceBundle class should have the 
>> following
>> > name:
>> >
>> > *java_language_country_variant.properties *where:
>> >
>> >
>> >
>> > "_language" is a language e.g. "_ru" (Russian language). It may be
>> empty.
>> >
>> > "_country" is a country e.g. "_RU" (Russian federation ). It may be
>> > empty.
>> >
>> > "_variant" is a variant. It may be empty.
>> >
>> >
>> >
>> >            The main ResourceBundle file (with messages on English)
>> should
>> > be "java.properties".
>> >
>> >
>> >
>> > *3. Structure of ResourceBundle file. "MessageId" development
>> > guidelines. *
>> >
>> >
>> >
>> > The structure of ResourceBundle file should be the following:
>> >
>> >
>> >
>> > MessageId1=localized message1
>> >
>> > MessageId2=localized message2
>> >
>> > ….
>> >
>> > Where:
>> >
>> > MessageId{i} – ASCII string on English language. It should consist of
>> > vm's
>> > subcomponent name ( e.g. init, port, gc.) and short description of
>> > message.
>> >
>> > E.g. "init.help" is localized help message from "init" subcomponent of
>> > VM.
>> >
>> > Localized message{i} – localized message.
>> >
>> >
>> >
>> > Localized message can contain parameters. E.g. localized message
>> pattern:
>> > "This is message on English with two parameters: parameter number one
>> > – {0},
>> >
>> >
>> > and parameter number two – {1}. We can print it again and in back 
>> order:
>> > {1}, {0}".   For the first parameter is equal to integer value "1"
>> >
>> > and the second is equal to string "two" the message for pattern above
>> > should
>> > be:
>> >
>> > "This is message on English with two parameters: parameter number one
>> > – 1,
>> > and parameter number two – two. We can print it again and in back 
>> order:
>> > two, 1".
>> >
>> > *  *
>> >
>> > *4. Requirements. *
>> >
>> >
>> >
>> >   - All localized messages may be printed through apache log4cxx 
>> logger.
>> >
>> >   - Parameters may be present in localized messages.
>> >   - VM-I18N subsystem should automatically detect user's locale
>> >   according to values of environment variables.
>> >   - Minimize performance impact.
>> >
>>
>>
>> -- 
>> Paulex Yang
>> China Software Development Lab
>> IBM
>>
>>
>>
>> ---------------------------------------------------------------------
>> 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
>>
>>
>


-- 
Paulex Yang
China Software Development Lab
IBM



---------------------------------------------------------------------
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