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:* [email protected] [[email protected]] on
behalf of Mark Davis ? [[email protected]]
*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
<[email protected]
<mailto:[email protected]>> 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: [email protected]
<mailto:[email protected]>
[mailto:[email protected]
<mailto:[email protected]>] 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
> [email protected] <mailto:[email protected]>
> https://mail.mozilla.org/listinfo/es-discuss
>
>
_______________________________________________
es-discuss mailing list
[email protected] <mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss