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. 
                         May be the same as "native" for some locales, but it may be different for others, such as Tamil or Chinese.
                         If "traditional" is not explicitly specified, fall back to "native".
<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.


Comments