qt5base-lts/util/locale_database
Edward Welbourne a1ec66e7a3 Canonicalize space in lists of IANA time-zones
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 69a0cec4d0)
2023-08-04 09:45:48 +02:00
..
testlocales Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
cldr2qlocalexml.py Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
cldr2qtimezone.py LocaleDB: Make passing qtbase root dir on command-lines optional 2022-11-01 19:14:14 +02:00
cldr.py Canonicalize space in lists of IANA time-zones 2023-08-04 09:45:48 +02:00
dateconverter.py Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
enumdata.py Add new languages and a script for CLDR v43 2023-08-04 09:45:35 +02:00
formattags.txt Rename util/locale_database/ to include the e that was missing 2019-05-20 20:42:10 +02:00
iso639_3.py Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
ldml.py Cope with CLDR data conflict decimal == group 2023-08-04 09:45:28 +02:00
localetools.py LocaleDB: Make passing qtbase root dir on command-lines optional 2022-11-01 19:14:14 +02:00
qlocalexml2cpp.py Pack languageCodeList tighter 2023-03-15 19:48:30 +01:00
qlocalexml.py Fix typos in QLocaleXmlWriter 2023-08-04 09:45:15 +02:00
qlocalexml.rnc Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
README Update CLDR to v37, adding Nigerian Pidgin as a new language 2020-10-26 15:28:59 +02:00

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.