harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Gorr" <vvg...@gmail.com>
Subject Re: [drlvm] proposals for VM internationalization
Date Thu, 13 Jul 2006 07:07:07 GMT
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? 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).
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.

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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message