Supported NumberingSystems

Per ticket #3516 and 4097 - we need a way to specify which numbering systems are supported in a particular locale.

We currently only have a single field, that defines the default numbering system for a locale, as follows:

<defaultNumberingSystem>latn</defaultNumberingSystem>

There are other categories of numbering systems that should be defined on a per-locale basis, so that programmers can access a certain type of numbering system without necessarily knowing the specific numbering system in place.

This proposal replaces the current “defaultNumberingSystem” field with a series of fields that denotes the different categories of numbering systems that might be desired. Although numbering systems could be categorized in a number of ways, the most common groupings would be as follows:

<default> - The default numbering system to be used for formatting numbers in the locale.

<native> - Numbering system using native digits. The “native” numbering system can only be a numeric numbering system, containing the native digits used in the locale.

<traditional> - The traditional or historic numbering system. Algorithmic systems are allowed in the “traditional” system.

<finance> - Special numbering system used for financial quantities. If “financial” is not explicitly specified, fall back to “default”.

BCP 47 - Locale keywords

<default> - No keyword is required

<native> - native ( Example: ar-MA-u-nu-native is Arabic locale for Morocco, but using native digits ).

<traditional> - traditio ( Example: ta-IN-u-nu-trad is Tamil locale for India, using traditional numerals ).

<finance> - finance ( Example: zh-Hant-TW-u-nu-finance would be Chinese locale in Tradtional Han script for Taiwan, using financial numbers ).

Proposed seed data for numbering systems


root.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

    </numberingSystems>

</numbers>

am.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>ethi</traditional>

    </numberingSystems>

</numbers>

ar.xml:

<numbers>

    <numberingSystems>

        <default>arab</default>

        <native>arab</native>

    </numberingSystems>

</numbers>

ar_DZ.xml: ( native=”arab” would be inherited from the “ar” locale )

<numbers>

    <numberingSystems>

        <default>latn</default>

    </numberingSystems>

</numbers>

ar_MA.xml:( native=”arab” would be inherited from the “ar” locale )

<numbers>

    <numberingSystems>

        <default>latn</default>

    </numberingSystems>

</numbers>

ar_TN.xml:( native=”arab” would be inherited from the “ar” locale )

<numbers>

    <numberingSystems>

        <default>latn</default>

    </numberingSystems>

</numbers>

as.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>beng</native>

    </numberingSystems>

</numbers>

bn.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>beng</native>

    </numberingSystems>

</numbers>

bo.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>tibt</native>

    </numberingSystems>

</numbers>

brx.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>deva</native>

    </numberingSystems>

</numbers>

byn.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>ethi</traditional>

    </numberingSystems>

</numbers>

el.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>grek</traditional>

    </numberingSystems>

</numbers>

fa.xml:

<numbers>

    <numberingSystems>

        <default>arabext</default>

        <native>arabext</native>

    </numberingSystems>

</numbers>

gu.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>gujr</native>

    </numberingSystems>

</numbers>

he.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>hebr</traditional>

    </numberingSystems>

</numbers>

hi.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>deva</native>

    </numberingSystems>

</numbers>

hy.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>armn</traditional>

    </numberingSystems>

</numbers>

ja.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>hanidec</native>

        <traditional>jpan</traditional>

        <finance>jpanfin</finance>

    </numberingSystems>

</numbers

ka.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>geor</traditional>

    </numberingSystems>

</numbers>

km.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>khmr</native>

    </numberingSystems>

</numbers>

kn.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>knda</native>

    </numberingSystems>

</numbers>

kok.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>deva</native>

    </numberingSystems>

</numbers>

ku.xml:

<numbers>

    <numberingSystems>

        <default>arab</default>

        <native>arab</native>

    </numberingSystems>

</numbers>

lo.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>laoo</native>

    </numberingSystems>

</numbers>

ml.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>mlym</native>

    </numberingSystems>

</numbers>

mr.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>deva</native>

    </numberingSystems>

</numbers>

mn_Mong.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>mong</native>

    </numberingSystems>

</numbers>

my.xml:

<numbers>

    <numberingSystems>

        <default>mymr</default>

        <native>mymr</native>

    </numberingSystems>

</numbers>

ne.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>deva</native>

    </numberingSystems>

</numbers>

om.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>ethi</traditional>

    </numberingSystems>

</numbers>

or.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>orya</native>

    </numberingSystems>

</numbers>

pa.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>guru</native>

    </numberingSystems>

</numbers>

pa_Arab.xml:

<numbers>

    <numberingSystems>

        <default>arabext</default>

        <native>arabext</native>

    </numberingSystems>

</numbers>

ta.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>tamldec</native>

        <traditional>taml</traditional>

    </numberingSystems>

</numbers>

te.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>telu</native>

    </numberingSystems>

</numbers>

th.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>thai</native>

    </numberingSystems>

</numbers>

ti.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>ethi</traditional>

    </numberingSystems>

</numbers>

tig.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>ethi</traditional>

    </numberingSystems>

</numbers>

ur.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>arabext</native>

    </numberingSystems>

</numbers

uz_Arab.xml:

<numbers>

    <numberingSystems>

        <default>arabext</default>

        <native>arabext</native>

    </numberingSystems>

</numbers>

wal.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>latn</native>

        <traditional>ethi</traditional>

    </numberingSystems>

</numbers>

zh.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>hanidec</native>

        <traditional>hans</traditional>

        <finance>hansfin</finance>

    </numberingSystems>

</numbers

zh_Hant.xml:

<numbers>

    <numberingSystems>

        <default>latn</default>

        <native>hanidec</native>

        <traditional>hant</traditional>

        <finance>hantfin</finance>

    </numberingSystems>

</numbers

The plan is that these fields would NOT be exposed to survey tool, and would only be changeable via ticket submissions in trac.