On 12/14/2011 10:17 AM, Nebojša Ćirić wrote:
Item we discussed the least is the global default locale. I would propose __Globalization.localeList property as a way of setting/reading default locale list. For example:

var intl = Object.system.load('@globalization');
*intl.localeList* = new intl.LocaleList(['sr', 'fr', 'de']);

Date.now().toLocaleString(options);
I think you mean:

    (new Date()).toLocaleString(options);

Date.now() returns a number, not a Date object.

Are you saying that intl.localeList would be initialized prior to being loaded via Object.system.load("@globalization")? And then a developer could override that property to create a new global localList?

FWIW: One issue with using toLocaleString() for formatting is that it already exists, so there isn't a straightforward way to feature detect that it's the new implementation instead of the old implementation.

or

var dtf = new intl.DateTimeFormat(options);
dtf.format(new Date());

Both toLocaleString call and DateTimeFormat constructor would use intl.localeList as default locale list with the current value.

There are 3 ways of picking which locale list to use:

1. DateTimeFormat has a valid localeList parameter. That parameter gets used - globals and defaults are ignored.
2. DateTimeFormat doesn't have localeList parameter specified:
  2a. Use intl.localeList if defined.
2b. Use implementation specific default locale if intl.localeList was not defined.
3. Ultimate fallback is implementation specific default locale.

What do you think?

Part of the reason I was proposing the change to a single Locale object is because, with a single authority such as this, any script on a page would be capable of overriding the default locale and, therefore, changing the behavior of everything on the page. That seems like a very problematic behavior.

-N

14. децембар 2011. 09.47, Nebojša Ćirić <[email protected] <mailto:[email protected]>> је написао/ла:

    I have a feeling that the main group prefers module approach
    (Object.system.load('@globalization') kind) over a new global
    object given the future direction of the standard. Please correct
    me if I am wrong.

    Global Locale approach could be implemented with thin wrapper over
    our object proposal (very similar to tie in to the built in
    toLocaleString method). Should we make that wrapper part of the
    standard or not is a different question (maybe as a v2.0 of the
    standard?).

    I'll start implementing the latest proposal in v8 soon. If anybody
    has any major issues with the current state please yell.

    09. децембар 2011. 14.51, Nicholas C. Zakas
    <[email protected] <mailto:[email protected]>>
    је написао/ла:

        I'm still holding out hope for a Locale object that handles
        everything. :) Other than that, I think you have covered
        everything else.

        -N


        On 12/8/2011 12:55 PM, Nebojša Ćirić wrote:
        6. Ability to set global locale list.

        08. децембар 2011. 10.25, Nebojša Ćirić <[email protected]
        <mailto:[email protected]>> је написао/ла:

            There are couple of threads going on and I wanted to wrap
            up current state before the holidays...

            API:
             1. Use built in toLocaleString family of methods in
            simple, functional case*
             2. Use Globalization API as proposed (with some tweaks)
            for complex scenarios**

            * -
            
http://wiki.ecmascript.org/doku.php?id=strawman:globalization-integration
            ** -
            
http://wiki.ecmascript.org/doku.php?id=globalization:specification_drafts

            Proposed changes to the original API:
             1. Remove global namespace *Globalization* (give an
            internal name to remove chance of conflicts, i.e.
            __Globalization).

             2. Use module loading logic instead (we need a way to do
            a blocking load of built-in library -
            *Object.system.load*() is async at the moment)
              2a. What happens with toLocaleString methods when user
            doesn't load @globalization module?

             3. Accept either a String (LDML) or an option Object as
            a format parameter in formatters. Simplifies the simple
            use case and loading resources from files.
              3a. In addition to DateTimeFormat({year:'long'}) one
            can DateTimeFormat("yyyy").

             4. Come up with the name of the built-in library -
            *module intl import '@globalization'* doesn't sound so
            terrible to me as one time operation.

             5. Move locale list parameter into the options. I think
            that clashes with item 3. where options are being
            replaced with the string in some cases. Keeping locales
            separate removes the conflict.
              5a. Instead of DateTimeFormat(locList, options) have
            DateTimeFormat(options), where options hold locale info.

            Did I miss anything?

-- Nebojša Ćirić




-- Nebojša Ćirić


-- ___________________________
        Nicholas C. Zakas
        http://www.nczonline.net




-- Nebojša Ćirić




--
Nebojša Ćirić


--
___________________________
Nicholas C. Zakas
http://www.nczonline.net

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to