On Wednesday, May 4, 2011 at 7:53 PM, Phillips, Addison wrote: 
> Hi Marcos and Webapps,
> 
> This is a personal last call comment [chair hat off]. I realize that it is 
> late, but I was on vacation....
> 
> A developer recently sent me a code review implementing the latest spec and I 
> found some code that was utterly mystifying to me. It turns out that he 
> implemented rule 9.1.12 in the current spec, which defines 
> "user_agent_locales". This text seems really odd to me.
> 
> What I expected was from looking at step 8 in section 9.1.17 was to have a 
> "language priority list" containing the locale(s) to search for using the 
> Lookup algorithm from BCP 47. I expected that this list would usually consist 
> of a single locale identifier (language tag) representing the current Widget 
> runtime locale, although an implementation might occasionally use 
> Accept-Language or some other source for a full language priority list such 
> as shown in the examples. I read "user_agent_locales" to be the Widget's 
> version of a language priority list.
> 
> The odd thing is that the rules in 9.1.12 "explode" each language range, but 
> the BCP 47 Lookup algorithm already does this. For example, 9.1.12 would 
> convert the language priority list "zh-Hans-CN,*" to the user_agent_locales 
> string "zh-Hans-CN,zh-Hans,zh,*". But this is unnecessary because the Lookup 
> algorithm's "remove from right logic" already does this (or, for xml:lang 
> matching, you can use prefix matching). If you do both the lookup algorithm 
> *and* the computation of user_agent_locales, you will do a bunch of 
> unnecessary searching with lower efficiency.
> 
> If what you want is to define lookup by computing user_agent_locales and then 
> doing exact path matches for each element, then that's okay, I suppose, 
> although personally I would (and have) implemented it in memory rather than 
> by computing an "exploded" user_agent_locales list.
> 
> So my request/proposal would be to either (a) eliminate section 9.1.12 and 
> just specify BCP 47 Lookup or (b) specify the complete match algorithm using 
> the list computed in 9.1.12 and state that it is compatible with BCP 47 
> lookup. I would strongly prefer (a) personally. The internationalization work 
> in ECMAScript and at least one implementation do it that way.
I am all for using (a), so long as the result is the same as what we currently 
have today (i.e., we don't break existing implementations and the test suite). 




Reply via email to