[Development] ICU and Windows

Koehne Kai Kai.Koehne at digia.com
Thu Feb 7 18:20:28 CET 2013



> -----Original Message-----
> From: development-bounces+kai.koehne=digia.com at qt-project.org
> [mailto:development-bounces+kai.koehne=digia.com at qt-project.org] On
> Behalf Of Joseph Crowell
> Sent: Thursday, February 07, 2013 1:56 AM
> To: development at qt-project.org
> Subject: Re: [Development] ICU and Windows
> 
> On 02/06/2013 11:20 PM, Koehne Kai wrote:
> >
> > [...]
> > That is what we should do indeed. I learned from
> >
> > http://userguide.icu-project.org/icudata
> >
> > that one can also ship the ICU data in separate .data files, located in a "ICU
> data directory" that can be specified e.g. at compilation time. So how about
> creating a bare minimum icudt.dll, and rather ship .data files in a well-known
> place ($$[QT_INSTALL_ICU])? This would allow anyone with enough
> knowledge to tailor what exactly they want to ship, while reducing the
> footprint of "I don't care about localization for hello world" types of
> applications.

Alright, this is what I found out so far: You can configure ICU to either place all the data in the icudt49 library, or in one big .dat file at a specified location, or as individual files. Having multiple .dat files is supported too, but that requires someone deciding how they should be split up.

Shipping the library is what we have right now, which is IMO not acceptable. Just check out the comments on the 5.0.1 release blog, there are people still caring about 20 MB overhead :) Shipping the default .dat file would mean that either your app doesn't have any codec support etc at all, or has everything. If we ship individual files we'd need to ship 2345 files... that gives full flexibility, but good luck for the poor developer trying to find  out what he needs :)

So the bottom line for me is: _We_ have to come up with an ICU profile that contains what we consider important, and which we want to ship in our default icudt library. If someone needs additional things he could add it by just shipping e.g. an additional .dat file.

A good starting point would probably be to only support the encodings that we had in Qt 4 (actually still part of the Qt 5 documentation: http://qt-project.org/doc/qt-5.0/qtcore/qtextcodec.html#details). Language wise we should probably restrict ourselves to the languages that Qt officially supports / is translated to. Even for the languages we officially support though I doubt that we make actual use of all the data -  do we e.g. use any 'Transliterator' features from ICU?

So, anyone up for filling out http://apps.icu-project.org/datacustom/ICUData49.html ? I'm sure there are people with more knowledge than me on the matter :)

Regards

Kai

> Could documentation also be created on the data files, what each contains
> and how to include them in the project file? Thanks.

Don't know if a documentation for 2345 files is really benefical :)



More information about the Development mailing list