On 10/15/2013 06:06 PM, Benjamin Smedberg wrote:
> Do we need this data for any language other than the language Firefox ships 
> in? Can we just include the relevant language data in each localized build of 
> Firefox, and allow users to get other language data via downloadable language 
> packs, similarly to how dictionaries are handled?
> 
> Is it possible that some of this data (the collation tables?) should be in 
> all Firefox locales, but other data (currency and timezone names) is not as 
> important and we can ship it only in one language?

It seems a fairly bad thing to me for us to get into the habit of prioritizing 
certain languages above others.

Technically, if the data is compiled into the code, this would mean language 
repacks would...not be repacks any more.  If you had sidealong data files 
everywhere, then you could perhaps repack still.  This might require some 
repacking adjustments, possibly.  ICU provides a udata_setCommonData function 
that lets you load data from anywhere, so there's some flexibility here.

It's worth noting we currently have no central "hook" to insert this call 
before ICU's ever used.  We init ICU at startup, but that init-call is fast.  
Presumably this new call can't be so fast, because you have to page in all the 
ICU data.  And if you can't delay that til ICU is used, there's really no 
difference between the current setup and a setup that calls udata_setCommonData 
at startup.  Of course, this is all just software.  :-)

> As far as I can tell, the spec allows user agents to ship whatever languages 
> they need; the real question is what users and site authors actually need and 
> expect out of the API. (I'm reading the spec out of 
> http://wiki.ecmascript.org/doku.php?id=globalization:specification_drafts)

Grunging through v8's code, I...think...they cull locale lists for stuff to 
some degree.  Maybe to the language set they ship.  I'm looking at 
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/icu/README.chromium
 and honestly don't understand enough about ICU to fully grok the substantial 
set of changes they've made.

> Also, we are currently duplicating the data tables on mac universal builds, 
> because they are compiled-in symbols.

That means sync I/O on the main thread, and not well-optimized because it won't 
be part of the binary.  Just to note.

Jeff
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to