[loc-en-dev] Locale Display Name with script
Naoto Sato
Naoto.Sato at Sun.COM
Fri Mar 6 10:27:19 PST 2009
Ah, yes. Thank you.
Naoto
Doug Felt wrote:
> The builder defaults language to 'und'
>
> Doug
>
> On Fri, Mar 6, 2009 at 9:51 AM, Naoto Sato <Naoto.Sato at sun.com
> <mailto:Naoto.Sato at sun.com>> wrote:
>
> I vote for the simpler ones for now. We could change display names
> after JDK7.
>
> BTW, the last paragraph reminds me of a question: do we allow Locale
> instance creation through the factory method or the builder, without
> "language"? In BCP47, it is mandatory, otherwise you cannot tell
> the first two letter code is language or region. I may have asked
> this question before, but cannot remember the answer.
>
> Naoto
>
>
> Yoshito Umaoka wrote:
>
> Below is the current specification of Locale#getDisplayName.
>
>
>
> getDisplayName
>
> public final java.lang.String *getDisplayName*()
>
> Returns a name for the locale that is appropriate for
> display to
> the user. This will be the values returned by
> getDisplayLanguage(), getDisplayCountry(), and
> getDisplayVariant()
> assembled into a single string. The display name will
> have one of
> the following forms:
>
> language (country, variant)
>
> language (country)
>
> language (variant)
>
> country (variant)
>
> language
>
> country
>
> variant
>
> depending on which fields are specified in the locale. If the
> language, country, and variant fields are all empty, this
> function
> returns the empty string.
>
> A couple days ago, Mark Davis suggested that we may need to make
> up a display name not just by concatenating individual fields'
> display names. For example, en_US may be displayed as "American
> English". I'm not fully supporting this idea for the specific
> example he raised, but when we think about script support, we
> may want to look at two examples - Simplified Chinese and
> Traditional Chinese. I want to extend the existing pattern
> based display name generation for this reason, but at the same
> time, it requires some design changes in LocaleNameProvider.
>
> Locale display name could be supported via custom
> LocaleNameProvider implementation. For now, the contract is
> that LocaleNameProvider implementation returns a display name of
> individual field when JDK does not have the translation. But
> Locale#getDisplayName is formatting them based on the rule
> described above. Technically, we could add a new API in
> LocaleNameProvider which handles a locale name as a whole (e.g.
> getDisplayLocale(Locale loc, Locale inLoc)).
>
> In longer term, we should consider better way to handle this.
> But I do not think we can do much for JDK7. So my current
> proposal is simply add script display name based on the current
> rule (with minor extension). More specfically -
>
> language (script, country, varinat)
> language (script, country)
> language (script)
> language (country, variant)
> language (country)
> language (variant)
> language
> script (country, variant)
> script (country)
> script (variant)
> script
> country (variant)
> country
> variant
>
> Practically, script without language does not make much sense.
> We could prevent such locale instance is created through the
> builder, but I'm not sure we really need to do this. I prefer
> to keep it simple (allows script only locales). Do you have any
> preferences?
>
> -Yoshito
>
>
>
>
> --
> Naoto Sato
>
>
--
Naoto Sato
More information about the locale-enhancement-dev
mailing list