Details
-
Task
-
Resolution: Fixed
-
P2: Important
-
6.0, 6.5.0 FF
-
None
-
-
8
-
5465e4723 (dev)
-
Foundation Sprint 117, Foundation Sprint 118, Foundation Sprint 119, Foundation Sprint 120
Description
Since Qt 6, QLocale has included the CLDR data governing how to group digits correctly (where previously it grouped them in threes). However, the user may have configured rules at odds with the locale they are otherwise using (for example, es_ES requires at least two digits in the most significant group but some users prefer to allow a single-digit first group, as in many other locales). So we need a QSystemLocale::QueryType for the grouping rule, GroupingRule, for which we'll need to package three numbers into the return type; QLocaleData packs them into a single byte as two bits for the minimum size of most significant group, three bits each for the sizes of the least significant and all groups in between.
Given that CLDR has potentially separate grouping rules for currency digits, it'll probably make sense to add a
struct { int least, higher, top; }
that gets constructed out of the packed bits in QLocaleData or the return from QSystemLocale::query(); this implies an opportunity to possibly amend the bit-field to use some more tightly-packed form (e.g. all three fields are necessarily > 0, so storing the bit-field values with 1 subtracted from each would make two bits suffice for each, if they don't already).
Attachments
Issue Links
- relates to
-
QTBUG-122633 QLocale doesn't align with C library functions to let us use them for system locale data
- Open
-
QTBUG-108339 Use DFSAs to handle number conversion in QLocale
- Reported
-
QTBUG-116396 userGrouping feature for Spanish numbers locale
- Reported
-
QTBUG-58351 QLocale: Allow fully customized locale settings (user-configured date strings, etc)
- Open
-
QTBUG-127966 Error formating number with locale es_ES
- Closed
- replaces
-
QTBUG-109652 QLocale.toString() issues
- Closed
- resulted from
-
PYSIDE-2168 QLocale.toString() issues
- Closed