(- icu-core)

On 09/12/2011 03:19 PM, Nebojša Ćirić wrote:
(+es-discuss)

Hi Steven,
I've moved the discussion to the official es-discuss list. See my comments below.

Thanks. I've attempted to join the list at this address.

12. септембар 2011. 14.52, Mark Davis ☕ <[email protected] <mailto:[email protected]>> је написао/ла:

    A few comments from my perspective.

    Mark
    /— Il meglio è l’inimico del bene —/


    On Mon, Sep 12, 2011 at 14:13, Steven R. Loomis
    <[email protected] <mailto:[email protected]>> wrote:

        Hello Mark and Cira,

         We discussed the proposal
        
<https://docs.google.com/document/pub?id=1rsUxJQ03Ql6o3bh6RN7J81dtYZXE7OVsdQBw_h5ASnM&ndplr=1
        
<https://docs.google.com/document/pub?id=1rsUxJQ03Ql6o3bh6RN7J81dtYZXE7OVsdQBw_h5ASnM&ndplr=1>>
        a bit internally and came up with some response.  Please feel
        free to respond to me or as appropriate.

        Regards,
        Steven

        ------------------------

        Response to ECMAScript/JavaScript i18n proposal.

        1. What are the target scenarios for this proposal? Where, how
        would it be used? How does it solve the problems outlined in
        section 4.2 of the proposal?


    Cira, I think it would be useful to add more of this information
    to the intro.


I agree.


    In short, ECMAScript i18n is seriously deficient, and there is
    widespread need for better ECMAScript support. You can't, for
    example, do something as simple as sort a list of user names on a
    page, or format a currency value.


        2. The results of globalization operations are not defined, if
        one implementation has different results from another, what
        problem is solved? It would be no better than what we have today.


    While it would be great to have precisely predictable results,
    typically it is sufficient to have reasonably good results from
    each browser. For example, even though for symbols and punctuation
    IE and ICU differ, they both sort (say) Serbian letters according
    to reasonable user expectations. So it is vastly better than code
    point order.


The same problem exists with different versions of ICU. I agree with Mark, we are fine as long as you get locale acceptable result.

This is related to the discussion of #6 default locale below. The question is, what is defined as locale acceptable? Different versions of ICU are specified as collating according to a certain version of the UCA+CLDR tailorings.

        3. Collation tailoring is not addressed.


    True. Only a subset of the overall functionality is specified in
    the first release. The goal was to release useful functionality in
    a first release, and then follow up with more functionality later
    (eg break-iterators, etc.)


 That is helpful, thanks. Perhaps that could be noted in the proposal?

        4. Comments show the desire for a Globalization namespace,
        what is the reason for this?  Why not hang the services off
        objects that have the desired functoin,  such as
        String.collator (or 'new String.Collator()'), Date.format,
        Number.format etc?


    These are the results of a number of discussions and compromises
    over time in the working group.


There are couple reasons:

1. Decouple our work from main EcmaScript body and make API more like a library or ES6 module.
2. Limit conflicts with existing code
3. Future expandability - would you hang message/plural formatting on string class? What about Calendar?

It seems that this makes i18n a "feature, not an architecture", which is unfortunate.

        5. Using special objects is not JavaScript-like. Why isn't
        LocaleList a simple array, with functions which manipulate it?


    The reason is that it does have specific semantics, and allows for
    the validation of the list one time, instead of repeating it.


        6. Why isn't there any discovery of the default locale?
        Suggestion, expose HTTP "accept-language" as a LocaleList.


    A target is for web applications that need to be able to set the
    locale independently of the AL. (I thought we did have a way to
    get the AL as a LocaleList, Cira. Did that disappear, or am I
    misremembering.)


There were problems with defining default locale:
1. Not all platforms are browser based (client apps, servers)
This is true, however those platforms would still have some notion of a default locale (such as a system control panel or environment setting), or the standard could define 'None' as the 'no locale set' case.

2. Application developer should detect user language and pass it to the API (see http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference - JavaScript can't access acceptLanguage list) - but we could potentially get navigator.language at some point.

But.. as you said, JavaScript can't access acceptLanguage, and it also can't access the OS locale setting in a portable way. Therefore, you are leaving the users of your proposal with no guidance or resources as to what to provide as the locale argument - they will need to use the platform specific options referred to in that link, including making an HTTP request (!) to find out the value of accept-language. How much better off are we, than where we are today?

  What are you referring to with regards to navigator.language?

        7. Does not specify what behavior is where no locale is given.

    As I recall, there are vendors that do not want to be required to
    provide particular behavior if no locale is set.


It would seem that this should then be specified to have undefined results.

        8. We are concerned about a client environment simulating a
        different locale than the one the user has specified (at the
        desktop level). For example, new with a locale of "ja-JP" may
        have different results than new() [ default locale ] if the
        default locale is ja-JP, IF the user has customized their
        locale through a control panel.  Server side JavaScript would
        be a different situation, however.


    That is one of the goals, to allow use of a different locale.


We would assume there would be a goal of being able to provide the same behaviour as the host (desktop, mobile platform, server OS, etc), as a higher frequency operation than operations involving arbitrary locales.

        9. No Parsing capability, just formatting.


    Yes, known limitation (see #3). Formatting is a much
    higher-frequency operation than parsing.


        10. No way to format dates/numbers based on a pattern.


    Yes, known limitation (see #3).


We actually had it, and I don't think it was #3 that cut it out. We just felt that pattern format is not very user friendly and that skeleton as JSON object expresses the meaning much better. It may be more verbose than dense ICU pattern but it may be easier for web developer to digest. I think that ActionScript incorporated similar solution with collation for example (preset, easy to understand enums vs strenght).


        11. Overall this proposal seems to be much scaled back from
        the earlier proposals. Please comment on the planned future
        direction.


    See #3


--
Nebojša Ćirić

Thanks again for the quick feedback.


Steven R. Loomis (IBM)
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to