CLDR-19633 Update TR35 Section 3.4.1 to fallback to dynamic short compact currency synthesis - #5908
Draft
younies wants to merge 1 commit into
Draft
CLDR-19633 Update TR35 Section 3.4.1 to fallback to dynamic short compact currency synthesis#5908younies wants to merge 1 commit into
younies wants to merge 1 commit into
Conversation
younies
added a commit
to younies/cldr
that referenced
this pull request
Jul 14, 2026
…-compact currency formatting' Per review comment on PR unicode-org#5908, replaced informal 'uncompacted currency strings' with standard TR35 specification terminology 'non-compact currency formatting' across bullet 2 and all synthesis examples. TAG=agy CONV=d40cada6-48bf-4ae3-be3b-7a53f8978a15
|
Hooray! The files in the branch are the same across the force-push. 😃 ~ Your Friendly Jira-GitHub PR Checker Bot |
macchiati
requested changes
Jul 14, 2026
macchiati
left a comment
Member
There was a problem hiding this comment.
We need first to agree on exactly the construction to be used.
I'll be back next week.
…pact currency synthesis In `docs/ldml/tr35-numbers.md` (TR35 Section 3.4.1 Compact Currency Formatting), updated the fallback specification when `currencyFormatLength[@type="short"]` is absent or defaulted (`0`). ### Rationale & AI Investigation 1. **Broken Non-Compact Fallback Bug (CLDR-19633)**: When explicit short compact currency is absent across secondary numbering systems (`ar/arab`, `hi/deva`, `ja/hanidec`, etc.), TR35 previously mandated reverting to non-compact currency formatting (`$1,200,000.00`). This causes 15-character overflows in UI components across 3,456 magnitude rows across 24 numbering systems. 2. **Dynamic Synthesis Fallback Rule**: Updated TR35 Section 3.4.1 to mandate that when explicit short compact currency is absent (`0` or unpopulated XML table) for magnitudes $\ge$ 1000, implementations dynamically synthesize short compact currency by interpolating `decimalFormatLength[@type="short"]` into the numeric placeholder of `currencyFormat[@type="standard"]` (or `alphaNextToNumber`). 3. **Global Architectural Benefit**: Instantly unlocks 100% accurate, space-constrained compact currency across all 24 numbering systems (`ar/arab` -> `١٫٢ مليون ¤`, `hi/deva` -> `¤ १.२ लाख`, `ja/hanidec` -> `¤120万`) out of the box with zero redundant XML data added to CLDR. TAG=agy CONV=d40cada6-48bf-4ae3-be3b-7a53f8978a15
|
Notice: the branch changed across the force-push!
~ Your Friendly Jira-GitHub PR Checker Bot |
Member
we need to balance additional burden on implementations vs. processes to get improved data input. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CLDR-19633
Description of Changes
In
docs/ldml/tr35-numbers.md(TR35 Section 3.4.1 Compact Currency Formatting), updated the fallback specification whencurrencyFormatLength[@type="short"]is absent or defaulted (0).Rationale & AI Investigation
ar/arab,hi/deva,ja/hanidec, etc.), TR35 previously mandated reverting to non-compact currency formatting ($1,200,000.00). This causes 15-character overflows in UI components across 3,456 magnitude rows across 24 numbering systems.0or unpopulated XML table) for magnitudesdecimalFormatLength[@type="short"]into the numeric placeholder ofcurrencyFormat[@type="standard"](oralphaNextToNumber).ar/arab->١٫٢ مليون ¤,hi/deva->¤ १.२ लाख,ja/hanidec->¤120万) out of the box with zero redundant XML data added to CLDR.Concrete Examples of Dynamic Compact Currency Synthesis (Fallback Rule)
When
currencyFormatLength[@type="short"]is absent or set to0, implementations dynamically combinedecimalFormatLength[@type="short"]withcurrencyFormat[@type="standard"](oralphaNextToNumber):Arabic (
ar/arab- Power 1000000, other):decimalFormatLength[@type="short"]):0 مليون١٫٢ مليونcurrencyFormat[@type="standard"]):#,##0.00 ¤١٫٢ مليون ¤(1.2M ¤) instead of non-compact$1,200,000.00(١٬٢٠٠٬٠٠٠٫٠٠ ¤).Hindi (
hi/deva- Power 100000, one):decimalFormatLength[@type="short"]):0 लाख१.२ लाख(1.2 Lakh)currencyFormat[@type="standard"]):¤#,##,##0.00¤ १.२ लाख($1.2 Lakh) instead of non-compact¤१२,००,०००.००.Japanese (
ja/hanidec- Power 10000, other):decimalFormatLength[@type="short"]):0万120万currencyFormat[@type="standard"]):¤#,##0.00¤120万($120万) instead of non-compact¤1,200,000.00.Primary Financial Press Research & Real-World Verification
To verify that this dynamic compact currency synthesis (
DecComp+StdCurr) produces linguistically and typographically accurate output without separate XML override tables, we audited primary financial news organizations and corporate disclosure sources across Arabic and Japanese:1. Primary Arabic Financial Press Verification (
ar/arab&ar/latn)In Arabic journalism, whether formatting millions (
$$\text{Numeric Quantity} + \text{Non-Breaking Space} + \text{Compact Unit (مليون/مليار)} + \text{Non-Breaking Space} + \text{Currency Word/Symbol (¤)}$$
مليون) or billions (مليار) in domestic or foreign currencies (دولار/ريال/¤), the universal structure is:DecComp+StdCurr)2.2 مليار دولار(2.2 billion dollars)50 مليار دولار(50 billion dollars)250 مليون دولار(250 million dollars)[Number]+مليار/مليون+¤(Matches
#,##0.00 ¤standard suffix placement)80 إلى 100 مليار دولار(80 to 100 billion dollars)50 مليار دولار(Shein valuation)[Number]+مليار/مليون+¤2. Primary Japanese Financial Press Verification (
ja/hanidec&ja/latn)In Japanese financial journalism ($10^4$ , $10^8$ ) directly to the number, followed by the currency unit (or preceded by
$$\text{Numeric Quantity} + \text{Kanji Compact Unit (万/億)} + \text{Currency Affix (円/ドル/¤)}$$
Nikkei,SBI Securities), whether formatting domestic yen (円) or foreign currency (ドル/USD), the structure glues the compact kanji unit (万for億for$/¥/¤when symbol notation is used):DecComp+StdCurr)2,616億円(2,616 Oku Yen / 261.6B JPY)200億円(200 Oku Yen / 20B JPY)百万円(Million Yen)[Number]+億/万+¤(Matches
0億 ¤/¤0万synthesis)1000億ドル(100B USD buyback disclosure)30億ドル(3B USD bond issuance)100万ドル(1M USD target)[Number]+億/万+¤(Matches
0億 ¤/¤0万synthesis)TAG=agy
CONV=d40cada6-48bf-4ae3-be3b-7a53f8978a15