// ***************************************************************************
// *
// *   Copyright (C) 1997-2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
//
// Significant contributions from Mohammad DAMT


id {
    Version { "2.0" }
    Countries {
        AD { "Andora" }
        AE { "Uni Emirat Arab" }
        AF { "Afghanistan" }
        AG { "Antigua dan Barbuda" }
        AI { "Anguilla" }
        AL { "Albania" }
        AM { "Armenia" }
        AN { "Antilles Belanda" }
        AO { "Angola" }
        AQ { "Antarktika" }
        AR { "Argentina" }
        AS { "Samoa Amerika" }
        AT { "Austria" }
        AU { "Australia" }
        AW { "Aruba" }
        AZ { "Azerbaijan" }

        BA { "Bosnia dan Herzegovina" }
        BB { "Barbados" }
        BD { "Bangladesh" }
        BE { "Belgia" }
        BF { "Burkina Faso" }
        BG { "Bulgaria" }
        BH { "Bahrain" }
        BI { "Burundi" }
        BJ { "Benin" }
        BM { "Bermuda" }
        BN { "Brunei" }
        BO { "Bolivia" }
        BR { "Brazil" }
        BS { "Bahamas" }
        BT { "Bhutan" }
        BV { "Kepulauan Bouvet" }
        BW { "Botswana" }
        BY { "Belarusia" }
        BZ { "Belize" }

        CA { "Kanada" }
        CC { "Kepulauan Cocos"}
        CD { "Republik Demokratik Kongo" }
        CF { "Republik Afrika Tengah" }
        CG { "Kongo" }
        CH { "Swiss" }
        CI { "Pantai Gading" }
        CK { "Kepulauan Cook" }
        CL { "Chili" }
        CM { "Kamerun" }
        CN { "Cina" }
        CO { "Kolombia" }
        CR { "Kosta Rika" }
        CU { "Kuba" }
        CV { "Tanjung Verde" }
        CX { "Pulau Christmas" }
        CY { "Siprus" }
        CZ { "Republik Ceko" }

        DE { "Jerman" }
        DJ { "Jibouti" }
        DK { "Denmark" }
        DM { "Dominika" }
        DO { "Republik Dominika" }
        DZ { "Algeria" }

        EC { "Ekuador" }
        EE { "Estonia" }
        EG { "Mesir" }
        EH { "Sahara Barat" }
        ER { "Eritrea" }
        ES { "Spanyol" }
        ET { "Ethiopia" }

        FI { "Finlandia" }
        FJ { "Fiji" }
        FK { "Kepulauan Falkland" }
        FM { "Mikronesia" }
        FO { "Kepulauan Faroe" }
        FR { "Perancis" }

        GA { "Gabon" }
        GB { "Inggris Raya" }
        GD { "Grenada" }
        GE { "Georgia" }
        GF { "Guyana Perancis" }
        GH { "Ghana" }
        GI { "Gibraltar" }
        GL { "Greenland" }
        GM { "Gambia" }
        GN { "Guinea" }
        GP { "Guadeloupe" }
        GQ { "Guinea Khatulistiwa" }
        GR { "Yunani" }
        GS { "Georgia Selatan dan Kepulauan Sandwich Selatan" }
        GT { "Guatemala" }
        GU { "Guam" }
        GW { "Guinea-Bissau" }
        GY { "Guyana" }

        HK { "Hong Kong S.A.R., Cina" }
        HM { "Pulau Heard dan Kepulauan McDonald" }
        HN { "Honduras" }
        HR { "Kroasia" }
        HT { "Haiti" }
        HU { "Hungaria" }

        ID { "Indonesia" }
        IE { "Irlandia" }
        IL { "Israel" }
        IN { "India" }
        //IO { "British Indian Ocean Territory" }
        IQ { "Iraq" }
        IR { "Iran" }
        IS { "Islandia" }
        IT { "Itali" }

        JM { "Jamaika" }
        JO { "Yordania" }
        JP { "Jepang" }

        KE { "Kenya" }
        KG { "Kyrgyzstan" }
        KH { "Kamboja" }
        KI { "Kiribati" }
        KM { "Komoros" }
        KN { "Saint Kitts dan Nevis" }
        KP { "Korea Utara" }
        KR { "Korea Selatan" }
        KW { "Kuwait" }
        KY { "Kepulauan Kayman" }
        KZ { "Kazakhstan" }

        LA { "Laos" }
        LB { "Lebanon" }
        LC { "Santa Lusia" }
        LI { "Liechtenstein" }
        LK { "Sri Lanka" }
        LR { "Liberia" }
        LS { "Lesotho" }
        LT { "Lithuania" }
        LU { "Luxembourg" }
        LV { "Latvia" }
        LY { "Libya" }

        MA { "Maroko" }
        MC { "Monaco" }
        MD { "Moldova" }
        MG { "Madagaskar" }
        MH { "Kepulauan Marshall"}
        MK { "Macedonia" }
        ML { "Mali" }
        MM { "Myanmar" }
        MN { "Mongolia" }
        MO { "Makao S.A.R. Cina" }
        MP { "Kepualuan Mariana Utara" }
        MQ { "Martinique" }
        MR { "Mauritania" }
        MS { "Montserrat" }
        MT { "Malta" }
        MU { "Mauritius" }
        MV { "Maldives" }
        MW { "Malawi" }
        MX { "Mexico" }
        MY { "Malaysia" }
        MZ { "Mozambique" }

        NA { "Namibia" }
        NC { "Kaledonia Baru" }
        NE { "Niger" }
        NF { "Kepulauan Norfolk" }
        NG { "Nigeria" }
        NI { "Nicaragua" }
        NL { "Netherlands" }
        NO { "Norwegia" }
        NP { "Nepal" }
        NR { "Nauru" }
        NU { "Niue" }
        NZ { "Selandia Baru" }

        OM { "Oman" }

        PA { "Panama" }
        PE { "Peru" }
        PF { "Polynesia Perancis" }
        PG { "Papua Nugini" }
        PH { "Filipina" }
        PK { "Pakistan" }
        PL { "Polandia" }
        PM { "Saint Pierre dan Miquelon" }
        PN { "Pitcairn" }
        PR { "Puerto Riko" }
        PS { "Otoritas Palestina" }
        PT { "Portugis" }
        PW { "Palau" }
        PY { "Paraguay" }

        QA { "Qatar" }

        RE { "R\u00E9union" }
        RO { "Romania" }
        RU { "Rusia" }
        RW { "Rwanda" }

        SA { "Arab Saudi" }
        SB { "Kepulauan Solomon" }
        SC { "Seychelles" }
        SD { "Sudan" }
        SE { "Sweden" }
        SG { "Singapura" }
        SH { "Saint Helena" }
        SI { "Slovenia" }
        SJ { "Svalbard dan Jan Mayen" }
        SK { "Slovakia" }
        SL { "Sierra Leone" }
        SM { "San Marino" }
        SN { "Senegal" }
        SO { "Somalia" }
        SP { "Serbia" }
        SR { "Suriname" }
        ST { "Sao Tome dan Principe" }
        SV { "El Salvador" }
        SY { "Syria" }
        SZ { "Swaziland" }

        //TC { "Turks and Caicos Islands" }
        TD { "Chad" }
        //TF { "French Southern Territories" }
        TG { "Togo" }
        TH { "Thailand" }
        TJ { "Tajikistan" }
        TK { "Tokelau" }
        //TL { "Timor-Leste" }    // This was called East Timor
        TM { "Turkmenistan" }
        TN { "Tunisia" }
        TO { "Tonga" }
        TR { "Turkey" }
        TT { "Trinidad dan Tobago" }
        TV { "Tuvalu" }
        TW { "Taiwan" }
        TZ { "Tanzania" }

        UA { "Ukraina" }
        UG { "Uganda" }
        //UM { "United States Minor Outlying Islands" }
        US { "Amerika Serikat" }
        UY { "Uruguay" }
        UZ { "Uzbekistan" }

        VA { "Vatikan" }
        VC { "Saint Vincent dan Grenadines" }
        VE { "Venezuela" }
        VG { "Kepulauan British Virgin" }
        VI { "Kepulauan U.S. Virgin" }
        VN { "Vietnam" }
        VU { "Vanuatu" }

        WF { "Wallis dan Futuna" }
        WS { "Samoa" }

        YE { "Yaman" }
        YT { "Mayotte" }
        YU { "Yugoslavia" }

        ZA { "Afrika Selatan" }
        ZM { "Zambia" }
        ZW { "Zimbabwe" }
    }
    // Currency display names
    Currencies {
        IDR { "Rp", "IDR" }
    }
    Languages {
        aa  { "Afar" }
        ab  { "Abkhaz" }
        ace { "Aceh" }
        ae  { "Avestan" }
        af  { "Afrikaans" }
        afa { "Afro-Asiatik (Lainnya)" }
        ak  { "Akan" }
        akk { "Akkadien" }
        alg { "Bahasa Algonquia" }
        am  { "Amharik" }
        ang { "Inggris Kuno (kl.450-1100)" }
        apa { "Bahasa-bahasa Apache"}
        ar  { "Arab" }
        arc { "Aram" }
        arn { "Araucan" }
        art { "Buatan (Lainnya)" }
        as  { "Assam" }
        ast { "Astur" }
        ath { "Bahasa-bahasa Athapaska" }
        aus { "Bahasa-bahasa Australia" }
        av  { "Avarik" }
        ay  { "Aymara" }
        az  { "Azerbaijan" }
        ba  { "Bashkir" }
        bai { "Bahasa-bahasa Bamileke" }
        ban { "Balin" }
        bat { "Baltik (Lainnya)" }
        be  { "Belarusia" }
        bg  { "Bulgaria" }
        bh  { "Bihari" }
        bi  { "Bislama" }
        bm  { "Bambara" }
        bn  { "Bengal" }
        bo  { "Tibet" }
        br  { "Breton" }
        bs  { "Bosnia"}
        bug { "Bugis" }
        ca  { "Catalan" }
        cai { "India Amerika Tengah (Lainnnya)" }
        car { "Karib" }
        cau { "Kaukasia (Lainnya)" }
        ce  { "Chechen" }
        cel { "Celtic (Lainnya)" }
        ch  { "Chamorro" }
        chk { "Chuuke" }
        co  { "Korsika" }
        cop { "Koptik" }
        cr  { "Cree" }
        cs  { "Ceko" }
        cv  { "Chuvash" }
        cy  { "Welsh" }
        da  { "Denmark" }
        de  { "Jerman" }
        dv  { "Divehi" }
        dz  { "Dzongkha" }
        ee  { "Ewe" }
        egy { "Mesir Kuno" }
        el  { "Yunani" } //  Modern (1453-)
        en  { "Inggris" }
        enm { "Inggris, Abad Pertengahan (1100-1500)" }
        eo  { "Esperanto" }
        es  { "Spanyol" }
        et  { "Estonian" }
        eu  { "Basque" }
        fa  { "Persia" }
        ff  { "Fulah" }
        fi  { "Finlandia" }
        fj  { "Fiji" }
        fo  { "Faro" }
        fr  { "Perancis" }
        frm { "Perancis, Abad Pertengahan (kl.1400-1600)" }
        fro { "Perancis Kuno (842-kl.1400)" }
        fur { "Friuli" }
        fy  { "Frisi" }
        ga  { "Irlandia" }
        gd  { "Gaelik Skotlandia" }
        gem { "Jermanik (Lainnya)" }
        gil { "Gilbert" }
        gl  { "Gallegan" }
        gmh { "Jerman, Abad Pertengahan (kl.1050-1500)" }
        gn  { "Guarani" }
        goh { "Jerman Kuno (kl.750-1050)" }
        got { "Gothik" }
        grc { "Yunani Kuno (sd 1453)" }
        gu  { "Gujarati" }
        gv  { "Manx" }
        ha  { "Hausa" }
        haw { "Hawaii" }
        he  { "Ibrani" }
        hi  { "Hindi" }
        ho  { "Hiri Motu" }
        hr  { "Kroasia" }
        hu  { "Hungaria" }
        hy  { "Armenia" }
        hz  { "Herero" }
        ia  { "Interlingua" }
        id  { "Bahasa Indonesia" }
        ie  { "Interlingue" }
        ig  { "Igbo" }
        ii  { "Sichuan Yi" }
        ik  { "Inupiaq" }
        io  { "Ido" }
        is  { "Icelandic" }
        it  { "Italian" }
        ja  { "Japanese" }
        jpr { "Judeo-Persia" }
        jrb { "Judeo-Arab" }
        jv  { "Jawa" }
        ka  { "Georgian" }
        kg  { "Kongo" }
        ki  { "Kikuyu" }
        kj  { "Kuanyama" }
        kk  { "Kazakh" }
        kl  { "Kalaallisut" }
        km  { "Khmer" }
        kn  { "Kannada" }
        ko  { "Korea" }
        kok { "Konkani" }
        kos { "Kosrae" }
        kr  { "Kanuri" }
        ks  { "Kashmir" }
        ku  { "Kurdi" }
        kv  { "Komi" }
        kw  { "Cornish" }
        ky  { "Kirghiz" }
        la  { "Latin" }
        lb  { "Luxembourg" }
        lez { "Lezghia" }
        lg  { "Ganda" }
        li  { "Limburg" }
        ln  { "Lingala" }
        lo  { "Lao" }
        lt  { "Lithuania" }
        lu  { "Luba-Katanga" }
        lv  { "Latvian" }
        mad { "Madura" }
        mak { "Makassar" }
        map { "Austronesia" }
        mg  { "Malagasi" }
        mga { "Irlandia Abad Pertengahan (900-1200)" }
        mh  { "Marshall"}
        mi  { "Maori" }
        mis { "Bahasa Lain-lain" }
        mk  { "Macedonian" }
        mkh { "Mon-Khmer (Lainnya)" }
        ml  { "Malayalam" }
        mn  { "Mongolian" }
        mo  { "Moldavian" }
        mr  { "Marathi" }
        ms  { "Malay" }
        mt  { "Maltese" }
        my  { "Burma" }
        na  { "Nauru" }
        nb  { "Norwegian Bokm\u00e5l" }
        ne  { "Nepal" }
        ng  { "Ndonga" }
        nl  { "Belanda" }
        nn  { "Norwegian Nynorsk" }
        no  { "Norwegian" }
        nv  { "Navajo"}
        ny  { "Nyanja; Chichewa; Chewa" }
        oj  { "Ojibwa" }
        om  { "Oromo" }
        or  { "Oriya" }
        os  { "Ossetic" }
        pa  { "Punjabi" }
        paa { "Papuan (Lainnya)" }
        peo { "Persia Kuno (kl.600-400 SM.)" }
        phi { "Filipina (Lainnya)" }
        pi  { "Pali" }
        pl  { "Polish" }
        ps  { "Pashto (Pushto)" }
        pt  { "Portugis" }
        qu  { "Quechua" }
        // The range qaa-qtz is reserved for local use.
        rm  { "Rhaeto-Romance" }
        rn  { "Rundi" }
        ro  { "Romanian" }
        ru  { "Russian" }
        rw  { "Kinyarwanda" }
        sa  { "Sanskrit" }
        sc  { "Sardinian" }
        sd  { "Sindhi" }
        se  { "Northern Sami" }
        sg  { "Sango" }
        sh  { "Serbo-Croatian" }
        si  { "Sinhalese" }
        sk  { "Slovak" }
        sl  { "Slovenian" }
        sm  { "Samoan" }
        sn  { "Shona" }
        so  { "Somali" }
        sq  { "Albanian" }
        sr  { "Serbian" }
        ss  { "Swati" }
        su  { "Sundan" }
        sux { "Sumeria"}
        sv  { "Swedia" }
        sw  { "Swahili" }
        syr { "Syria" }
        ta  { "Tamil" }
        te  { "Telugu" }
        tg  { "Tajik" }
        th  { "Thai" }
        ti  { "Tigrinya" }
        tk  { "Turkmen" }
        tl  { "Tagalog" }
        tn  { "Tswana" }
        tr  { "Turkish" }
        ts  { "Tsonga" }
        tt  { "Tatar" }
        tw  { "Twi" }
        ty  { "Tahitian" }
        ug  { "Uighur" }
        uk  { "Ukrainian" }
        ur  { "Urdu" }
        uz  { "Uzbek" }
        ve  { "Venda" }
        vi  { "Vietnamese" }
        vo  { "Volap\u00FCk" }   // Yes the iso-639 standard uses the umlaut in the English name
        wa  { "Walloon" }
        wo  { "Wolof" }
        xh  { "Xhosa" }
        yi  { "Yiddish" }
        yo  { "Yoruba" }
        za  { "Zhuang" }
        zh  { "Cina" }
        zu  { "Zulu" }
    }
    LocaleScript:array{ 
       "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters{
       "[a-z]"
    }
    NumberElements {
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    NumberPatterns {
        "#,##0.###;-#,##0.###",
        "\u00a4#,##0.00;-\u00a4#,##0.00",
        "#,##0%",
        "#E0",
    }
    // /**************** Info Below is needed ****************/
    // AmPmMarkers{}
    // Eras{}
    // localPatternChars{}
    calendar{
        gregorian{
            dayNames{
                format{
                    abbreviated{
                        "Min",
                        "Sen",
                        "Sel",
                        "Rab",
                        "Kam",
                        "Jum",
                        "Sab",
                    }
                    wide{
                        "Minggu",
                        "Senin",
                        "Selasa",
                        "Rabu",
                        "Kamis",
                        "Jumat",
                        "Sabtu",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mar",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Agu",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Des",
                    }
                    wide{
                        "Januari",
                        "Februari",
                        "Maret",
                        "April",
                        "Mei",
                        "Juni",
                        "Juli",
                        "Agustus",
                        "September",
                        "Oktober",
                        "November",
                        "Desember",
                    }
                }
            }
        }
    }
}
