[loc-en-dev] Comments on the locale enhancement proposal
Steven R Loomis
srloomis at us.ibm.com
Tue Jan 20 16:18:59 PST 2009
Comments here:
As to compatibility, I think the principle here is: existing locales
should have existing behavior. So, zh_Hans_CN and zh_Hant_TW would NOT
be used as system default locales.
You said:
MO> "We should define a minimal set of changes that should go to
JDK 7. I'm considering support of ISO 639 (new 2-letter and part 2-3)
and script as the minimal set. We will be able to add more if the
schedule allows."
I would like to also consider the keyword support as well, to allow for
interoperability with CLDR, and also to enable future selection of
services. The JDK services are not being asked to implement any behavior
at all with the keywords. It allows for a flexible selection of items
that currently use variants (such as th_TH_TH or ja_JP_JP- those IDs
would continue to work as they do now, of course.)
Regards,
Steven
From: Masayoshi Okutsu <Masayoshi.Okutsu at Sun.COM>
To: locale-enhancement-dev at openjdk.java.net
Date: 01/20/2009 12:27 AM
Subject: [loc-en-dev] Comments on the locale enhancement proposal
Folks,
Finally I've spent some time to review the locale enhancement proposal.
Here are my comments on the proposal.
- Compatibility Strategy
I think we should have a cleaner and simpler strategy to support the
enhancements while keeping compatibility so that it's easier for non-i18n
people how to use new staff for the new features.
My proposal is:
the existing interfaces should be kept fully compatible in both
binaries and source code.
the enhancements should be available only through new interfaces
given by the builder pattern design which is flexible and extensible.
the factory method for creating a Locale should be eliminated because
having both factory methods and a builder is redundant.
enum IDType should be eliminate and add methods with ID type names
(e.g., toBCP47String() instead of toString(IDType.BCP47))
support a method which performs conversions between old and new
Locales. (best effort basis) e.g., zh_TW (old) -> zh_Hant_TW (new),
zh_Hant (new) -> zh_TW (old)
- Development
We should define a minimal set of changes that should go to JDK 7. I'm
considering support of ISO 639 (new 2-letter and part 2-3) and script as
the minimal set. We will be able to add more if the schedule allows.
- 6.1 Script
The 4-arg Locale constructor examples in the table should be removed.
new Locale("", "", "US").toString() should return "" for compatibility,
assuming that new Locale("", "", US") is a typo of new Locale("", "",
"US").
- 7. Locale Resource/Service Lookup
Should the script part be treated as additional information to the language
to disambiguate the writing system? So the zh_Hans_CN look-up sequence
should be zh_Hans_CN -> zh_CN -> zh_Hans -> zh? (zh_CN and zh shouldn't
exist to avoid conflicts with zh_Hant_CN and other zh_* sequences, though.)
Should country really be added to the lang_script? (e.g., zh_Hant ->
zh_Hant_TW)
Should script be added to language? (e.g., pa -> pa_Guru)
The *_NO look-up sequences should be consistent with the no and nb ones. So
the sequences should be:
no_NO -> nb_NO -> no -> nb
no_NO_NY -> nn_NO -> no_NO -> nn -> no
nn_NO -> no_NO_NY -> nn -> no
nb_NO -> no_NO -> nb -> no
- 5.3. Locale Builder
- 8. Summary Proposed API Changes
- LocaleBuilder API
The builder class should be a nested class of Locale. (LocaleBuilder should
be Locale.Builder.)
The builder methods should return the builder object so that it can support
a fluent interface.
I prefer build() instead of getLocale().
That's all for today.
Thanks,
Masayoshi
More information about the locale-enhancement-dev
mailing list