Globalization API: supportedLocalesOf vs. getSupportedLocales
Nicholas C. Zakas
standards at nczconsulting.com
Tue Nov 29 13:22:37 PST 2011
From a developer point of view, the last thing I'd want is to get a
long array that I have to iterate through in order to start my work. I'd
much rather say "hey, do you support this?" and have a method say "yes"
or something similar. For instance:
//where xx, yy, zz are a prioritized list
var supportedLocale = Locale.getSupportedLocale("xx", "yy", "zz");
if (supportedLocale == "zz") {
//do something
}
-N
On 11/29/2011 9:22 AM, Shawn Steele wrote:
>
> Furthermore some implementations succeed for *any* input locale. In
> those cases DateTimeFormat could succeed for any input RFC4646
> string. Many of those may fall back to non-specific data, but it is
> possible for getSupportedLocales to succeed for all of those.
>
> It might be more practical to have a "getExplicitLocales" for the
> locales that the system has explicit information for, but I'm not sure
> how that'd be helpful. In Mark's case "de" might be the explicit
> locale that supports the collator but your application would somehow
> have to infer that "de" might also be useful for de-*. Furthermore,
> if Mark had a "de" collator, and generic Number/DateTimeFormats, but
> additional specific de-AT and de-CH Number formats, then he might
> return de, de-AT, and de-CH, but you'd still be left inferring that de
> supported de-DE by default (not necessarily a good assumption,
> particularly across implementations).
>
> -Shawn
>
> ???? ?????
>
> http://blogs.msdn.com/shawnste
>
> ------------------------------------------------------------------------
> *From:* mark.edward.davis at gmail.com [mark.edward.davis at gmail.com] on
> behalf of Mark Davis ? [mark at macchiato.com]
> *Sent:* Monday, November 28, 2011 6:28 PM
> *To:* Norbert Lindenberg
> *Cc:* Shawn Steele; Eric Albright; es-discuss
> *Subject:* Re: Globalization API: supportedLocalesOf vs.
> getSupportedLocales
>
> Here's the problem.
>
> The very same collator for "de" is valid for "de-DE", "de-AT", and
> "de-CH". In ICU you actually get a functionally-equivalent object
> back, no matter which of these you ask for.
>
> However, that collator is /also/ valid for other countries where 'de'
> is official: de-LU, de-BE, de-LI. Moreover, it is /also/ valid for
> countries with sizable German speaking populations, including de-US
> and de-BR. And, it is /also/ valid for German as used in any other
> country: "de-FR", ..., even "de-AQ".
>
> That is, you would not expect any variation in collators between
> "de-DE" and "de-US". A German collator is equally valid for both. It
> is somewhat arbitrary where any given implementation draws the line in
> terms of indicating which locales a valid collator can be returned for.
>
> Mark
> /--- Il meglio è l'inimico del bene ---/
> /
> /
> /
> [https://plus.google.com/114199149796022210033]
> /
>
>
>
> On Tue, Nov 29, 2011 at 02:15, Norbert Lindenberg
> <ecmascript at norbertlindenberg.com
> <mailto:ecmascript at norbertlindenberg.com>> wrote:
>
> The set of locales returned by a getSupportedLocales method would
> have to reflect what's actually supported by a Collator,
> NumberFormat, or DateTimeFormat implementation, so I doubt we'd
> get to the millions. Many of these 6000+ languages are spoken by
> fewer than 200 people, so certainly not in 200+ regions. And even
> where languages are spoken in many countries, there may not be
> defined regional variants: For example, I speak German and live in
> the U.S., but I don't know of any defined de-US collation, number
> format, or date format (in a German context, I'd use de-DE).
>
> If we let the application pass in the languages that it's
> interested in, that would probably be based on what a user has
> requested, so rarely more than 10 languages. If English, French,
> Spanish, and Arabic are on the list, you might still get over 100
> locales, but that's about it.
>
> Norbert
>
>
> On Nov 28, 2011, at 17:37 , Shawn Steele wrote:
>
> > There are 6000+ languages, and presumably any of them could be
> spoken in 200+ regions. There are additionally many variations of
> some of these languages. So that's not a thousand locales, that's
> over a million locales. Additionally there may be legitimate tags
> an application can support that it may have been originally
> designed for. (Perhaps a new language or region or variant) For
> an application that doesn't care much about the input locale,
> that's a lot of room for variety.
> >
> > For applications that are only localized to a certain number of
> languages, then perhaps a getSupportedLocalizations() would be
> manageable. Again though, that scope is narrow and may be
> inappropriate to use in other contexts. Eg: my app is localized
> to only English, but someone uploaded French content, does that count?
> >
> > -Shawn
> >
> > -----Original Message-----
> > From: es-discuss-bounces at mozilla.org
> <mailto:es-discuss-bounces at mozilla.org>
> [mailto:es-discuss-bounces at mozilla.org
> <mailto:es-discuss-bounces at mozilla.org>] On Behalf Of Norbert
> Lindenberg
> > Sent: Monday, November 28, 2011 5:30 PM
> > To: Eric Albright; Peter Constable; Shawn Steele
> > Cc: es-discuss
> > Subject: Re: Globalization API: supportedLocalesOf vs.
> getSupportedLocales
> >
> > We invented the supportedLocalesOf method to let applications
> find out which of its requested locales are supported by the
> implementation of a service. A getSupportedLocales function that
> simply returns the locales that the implementation actually
> supports would be easier to understand, and could also be used by
> an application to implement its own locale negotiation. If I
> remember correctly, we chose not to offer getSupportedLocales
> primarily because the list returned might be huge - possibly over
> 1000 locales.
> >
> > Maybe we should reconsider this? If an application really wants
> to have a list of 1000 locales, why not let it have it? If we want
> the ability to restrict the list, maybe there can be locale list
> as a parameter, and we return only those supported locales for
> which a prefix is on the locale list passed in? Or is there a more
> fundamental issue with getSupportedLocales?
> >
> > Thanks,
> > Norbert
> >
> >
> > On Nov 21, 2011, at 11:12 , Nicholas C. Zakas wrote:
> >
> >> 2. supportedLocalesOf
> >>
> >> I find this method name strange - I've read it several times
> and am still not sure I fully understand what it does. Perhaps
> "getSupportedLocales()" is a better name for this method? (I
> always prefer methods begin with verbs.)
> >
> > _______________________________________________
> > es-discuss mailing list
> > es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
> > https://mail.mozilla.org/listinfo/es-discuss
> >
> >
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
> https://mail.mozilla.org/listinfo/es-discuss
>
>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20111129/c58219c4/attachment-0001.html>
More information about the es-discuss
mailing list