a1ec66e7a3
In the Windows zone-ID code, we tokenize() a text extracted from CLDR
data. However, a leading or trailing space (or a repeated internal
space) would then give an empty "IANA ID" for us to match, causing the
empty ID to be mapped to the Windows ID for the entry with the
superfluous space. This was uncovered by an entry with a trailing
space in CLDR v43's data.
Canonicalize spacing in the IANA ID lists extracted from CLDR so as to
ensure this doesn't happen. (We could pass Qt::SkipEmptyParts to the
tokenize() call, but fixing the issue when generating the data is
cheaper and more robust than fixing it at run-time every time it's
consulted.)
Task-number: QTBUG-111550
Change-Id: Ib3883419558d6574141e9ab0bc929ade2d73e020
Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
(cherry picked from commit
|
||
---|---|---|
.. | ||
testlocales | ||
cldr2qlocalexml.py | ||
cldr2qtimezone.py | ||
cldr.py | ||
dateconverter.py | ||
enumdata.py | ||
formattags.txt | ||
iso639_3.py | ||
ldml.py | ||
localetools.py | ||
qlocalexml2cpp.py | ||
qlocalexml.py | ||
qlocalexml.rnc | ||
README |
locale_database is used to generate qlocale data from CLDR. CLDR is the Common Locale Data Repository, a database for localized data (like date formats, country names etc). It is provided by the Unicode consortium. See cldr2qlocalexml.py for how to run it and qlocalexml2cpp.py to update the locale data tables (principally text/qlocale_data_p.h and time/q*calendar_data_p.h under src/corelib/). See enumdata.py for when and how to update the data it provides. You shall definitely need to pass --no-verify or -n to git commit for these changes. See cldr2qtimezone.py on how to update tables of Windows-specific names for zones and UTC-offset zone names.