From 4e23dbb7423dbb5b7f7697cf8140039aaf4aa3eb Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 13 Mar 2024 18:02:33 +0100 Subject: [PATCH] Add assorted notes and suggestions in util/locale_database/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I22534943f2c9710d501235672811a861a5fd3aea Reviewed-by: Øystein Heskestad Reviewed-by: Mårten Nordheim --- src/corelib/time/qtimezoneprivate_data_p.h | 2 ++ util/locale_database/cldr.py | 2 ++ util/locale_database/ldml.py | 1 + util/locale_database/qlocalexml.py | 2 ++ 4 files changed, 7 insertions(+) diff --git a/src/corelib/time/qtimezoneprivate_data_p.h b/src/corelib/time/qtimezoneprivate_data_p.h index 28fbff2d842..a5a9bbead32 100644 --- a/src/corelib/time/qtimezoneprivate_data_p.h +++ b/src/corelib/time/qtimezoneprivate_data_p.h @@ -57,6 +57,7 @@ struct AliasData constexpr QByteArrayView ianaId() const; }; +// FIXME: rename ianaIdData[] to ianaListData[], aliasIdData[] to ianaIdData[] struct ZoneData { // Keys (table is sorted in Windows ID, then on territory enum value): @@ -76,6 +77,7 @@ struct WindowsData // Values for this Windows zone: quint16 ianaIdIndex; // Index in ianaIdData of space-joined IANA IDs qint32 offsetFromUtc; // Standard Time Offset from UTC, used for quick look-ups + // FIXME: ianaIdIndex is actually always a single IANA ID, so re-route to alias table constexpr QByteArrayView windowsId() const; constexpr QByteArrayView ianaId() const; // Space-joined list of IANA IDs }; diff --git a/util/locale_database/cldr.py b/util/locale_database/cldr.py index a56322fcc8c..2a4d8914403 100644 --- a/util/locale_database/cldr.py +++ b/util/locale_database/cldr.py @@ -620,6 +620,8 @@ enumdata.py (keeping the old name as an alias): source = self.__supplementalData for elt in source.findNodes('currencyData/region'): iso, digits, rounding = '', 2, 1 + # TODO: fractions/info[iso4217=DEFAULT] has rounding=0 - why do we differ ? + # Also: some fractions/info have cashDigits and cashRounding - should we use them ? try: territory = elt.dom.attributes['iso3166'].nodeValue except KeyError: diff --git a/util/locale_database/ldml.py b/util/locale_database/ldml.py index b94c2421725..219d1f71454 100644 --- a/util/locale_database/ldml.py +++ b/util/locale_database/ldml.py @@ -358,6 +358,7 @@ class LocaleScanner (object): def endonyms(self, language, script, territory, variant): # TODO: take variant into account ? + # TODO: QTBUG-47892, support query for all combinations for seq in ((language, script, territory), (language, script), (language, territory), (language,)): if not all(seq): diff --git a/util/locale_database/qlocalexml.py b/util/locale_database/qlocalexml.py index 5cb56c21652..8ac6eda433e 100644 --- a/util/locale_database/qlocalexml.py +++ b/util/locale_database/qlocalexml.py @@ -195,6 +195,8 @@ class QLocaleXmlReader (object): child = elt.firstChild while child: if child.nodeType == elt.TEXT_NODE: + # Note: do not strip(), as some group separators are + # non-breaking spaces, that strip() will discard. yield child.nodeValue child = child.nextSibling