c++icu

Where is spellout rule(RuleBasedNumberFormat) of ICU library?


I use ICU to spell out number to string like :
"one hundred and thirty-four" // 134 using en_US spellout
the out of box spellout rule for my locale(vi_VN) is seem wrong
15 become "mười năm" instead of "mười lăm" and many more wrong
so I need to edit the rule but don't know where to change


Solution

  • ICU data comes from CLDR. Please file a bug in CLDR, https://cldr.unicode.org - If you have trouble, let me know.

    Ideally you would download CLDR source and rebuild ICU data from CLDR. CLDR uses a slightly different format for rules.

    But, if you want to make a patch, you can download ICU from Subversion, and the data will be in the icu/source/data/rbnf directory.

    Hope this helps, and please do file a bug in CLDR. There's no reason to file the bug in ICU, ICU will pick up the fixed data automatically.

    (I work on both ICU and CLDR)