﻿// ***************************************************************************
// *
// * Copyright (C) 2004 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File: ../../../locale/common/main\ms.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: ../../../locale/icu/main\ms.xml
 */
ms{
    Countries{
        AD{"Andorra"}
        AE{"Emiriah Arab Bersatu"}
        AF{"Afghanistan"}
        AG{"Antigua dan Barbuda"}
        AI{"Anguilla"}
        AL{"Albania"}
        AM{"Armenia"}
        AN{"Netherlands Antilles"}
        AO{"Angola"}
        AQ{"Antarctica"}
        AR{"Argentina"}
        AS{"American Samoa"}
        AT{"Austria"}
        AU{"Australia"}
        AW{"Aruba"}
        AZ{"Azerbaijan"}
        BA{"Bosnia dan Herzegovina"}
        BB{"Barbados"}
        BD{"Bangladesh"}
        BE{"Belgium"}
        BF{"Burkina Faso"}
        BG{"Bulgaria"}
        BH{"Bahrain"}
        BI{"Burundi"}
        BJ{"Benin"}
        BM{"Bermuda"}
        BN{"Brunei"}
        BO{"Bolivia"}
        BR{"Brazil"}
        BS{"Bahamas"}
        BT{"Bhutan"}
        BV{"Bouvet Island"}
        BW{"Botswana"}
        BY{"Belarus"}
        BZ{"Belize"}
        CA{"Kanada"}
        CC{"Cocos (Keeling) Islands"}
        CD{"Democratic Republic of the Congo"}
        CF{"Republik Afrika Tengah"}
        CG{"Congo"}
        CH{"Switzerland"}
        CI{"Pantai Gading"}
        CK{"Cook Islands"}
        CL{"Cile"}
        CM{"Kamerun"}
        CN{"Cina"}
        CO{"Colombia"}
        CR{"Kosta Rika"}
        CU{"Cuba"}
        CV{"Cape Verde"}
        CX{"Christmas Island"}
        CY{"Kibris"}
        CZ{"Republik Czech"}
        DE{"Jerman"}
        DJ{"Jibouti"}
        DK{"Denmark"}
        DM{"Dominica"}
        DO{"Republik Dominican"}
        DZ{"Aljazair"}
        EC{"Ecuador"}
        EE{"Estonia"}
        EG{"Mesir"}
        EH{"Sahara Barat"}
        ER{"Eritrea"}
        ES{"Sepanyol"}
        ET{"Ethiopia"}
        FI{"Finland"}
        FJ{"Fiji"}
        FK{"Falkland Islands"}
        FM{"Micronesia"}
        FO{"Faroe Islands"}
        FR{"Perancis"}
        GA{"Gabon"}
        GB{"United Kingdom"}
        GD{"Grenada"}
        GE{"Georgia"}
        GF{"French Guiana"}
        GH{"Ghana"}
        GI{"Gibraltar"}
        GL{"Greenland"}
        GM{"Gambia"}
        GN{"Guinea"}
        GP{"Guadeloupe"}
        GQ{"Equatorial Guinea"}
        GR{"Yunani"}
        GS{"South Georgia and the South Sandwich Islands"}
        GT{"Guatemala"}
        GU{"Guam"}
        GW{"Guinea Bissau"}
        GY{"Guyana"}
        HK{"Hong Kong S.A.R., China"}
        HM{"Heard Island and McDonald Islands"}
        HN{"Honduras"}
        HR{"Croatia"}
        HT{"Haiti"}
        HU{"Hungari"}
        ID{"Indonesia"}
        IE{"Ireland"}
        IL{"Israel"}
        IN{"Hindia"}
        IO{"British Indian Ocean Territory"}
        IQ{"Iraq"}
        IR{"Iran"}
        IS{"Iceland"}
        IT{"Itali"}
        JM{"Jamaika"}
        JO{"Jordan"}
        JP{"Jepun"}
        KE{"Kenya"}
        KG{"Kyrgyzstan"}
        KH{"Kemboja"}
        KI{"Kiribati"}
        KM{"Comoros"}
        KN{"Saint Kitts dan Nevis"}
        KP{"Utara Korea"}
        KR{"Selatan Korea"}
        KW{"Kuwait"}
        KY{"Cayman Islands"}
        KZ{"Kazakhstan"}
        LA{"Laos"}
        LB{"Lubnan"}
        LC{"Saint Lucia"}
        LI{"Liechtenstein"}
        LK{"Sri Lanka"}
        LR{"Liberia"}
        LS{"Lesotho"}
        LT{"Lithuania"}
        LU{"Luksembourg"}
        LV{"Latvia"}
        LY{"Libya"}
        MA{"Maghribi"}
        MC{"Monaco"}
        MD{"Moldova"}
        MG{"Madagaskar"}
        MH{"Kepulauan Marshall"}
        MK{"Macedonia"}
        ML{"Mali"}
        MM{"Myanmar"}
        MN{"Mongolia"}
        MO{"Macao S.A.R., China"}
        MP{"Northern Mariana Islands"}
        MQ{"Martinique"}
        MR{"Mauritania"}
        MS{"Montserrat"}
        MT{"Malta"}
        MU{"Mauritius"}
        MV{"Maldiv"}
        MW{"Malawi"}
        MX{"Meksiko"}
        MY{"Malaysia"}
        MZ{"Mozambik"}
        NA{"Namibia"}
        NC{"New Caledonia"}
        NE{"Niger"}
        NF{"Norfolk Island"}
        NG{"Nigeria"}
        NI{"Nicaragua"}
        NL{"Belanda"}
        NO{"Norway"}
        NP{"Nepal"}
        NR{"Nauru"}
        NU{"Niue"}
        NZ{"New Zealand"}
        OM{"Oman"}
        PA{"Panama"}
        PE{"Peru"}
        PF{"French Polynesia"}
        PG{"Papua New Guinea"}
        PH{"Filipina"}
        PK{"Pakistan"}
        PL{"Poland"}
        PM{"Saint Pierre and Miquelon"}
        PN{"Pitcairn"}
        PR{"Puerto Rico"}
        PS{"Palestinian Territory"}
        PT{"Feringgi"}
        PW{"Palau"}
        PY{"Paraguay"}
        QA{"Qatar"}
        RE{"Réunion"}
        RO{"Romania"}
        RU{"Russia"}
        RW{"Rwanda"}
        SA{"Arab Saudi"}
        SB{"Kepulauan Solomon"}
        SC{"Seychelles"}
        SD{"Sudan"}
        SE{"Sweden"}
        SG{"Singapura"}
        SH{"Saint Helena"}
        SI{"Slovenia"}
        SJ{"Svalbard and Jan Mayen"}
        SK{"Slovakia"}
        SL{"Siera Leon"}
        SM{"San Marino"}
        SN{"Senegal"}
        SO{"Somalia"}
        SP{"Serbia"}
        SR{"Surinam"}
        ST{"Sao Tome dan Principe"}
        SV{"El Salvador"}
        SY{"Syria"}
        SZ{"Swaziland"}
        TC{"Turks and Caicos Islands"}
        TD{"Cad"}
        TF{"French Southern Territories"}
        TG{"Togo"}
        TH{"Thailand"}
        TJ{"Tadjikistan"}
        TK{"Tokelau"}
        TL{"Timor-Leste"}
        TM{"Turkmenistan"}
        TN{"Tunisia"}
        TO{"Tonga"}
        TR{"Turki"}
        TT{"Trinidad dan Tobago"}
        TV{"Tuvalu"}
        TW{"Taiwan"}
        TZ{"Tanzania"}
        UA{"Ukraine"}
        UG{"Uganda"}
        UM{"United States Minor Outlying Islands"}
        US{"Amerika Syarikat"}
        UY{"Uruguay"}
        UZ{"Uzbekistan"}
        VA{"Vatican"}
        VC{"Saint Vincent dan Grenadines"}
        VE{"Venezuela"}
        VG{"British Virgin Islands"}
        VI{"U.S. Virgin Islands"}
        VN{"Vietnam"}
        VU{"Vanuatu"}
        WF{"Wallis and Futuna"}
        WS{"Samoa"}
        YE{"Yaman"}
        YT{"Mayotte"}
        YU{"Yugoslavia"}
        ZA{"Afrika Selatan"}
        ZM{"Zambia"}
        ZW{"Zimbabwe"}
    }
    Currencies{
        MYR{
            "RM",
            "Ringgit Malaysia",
        }
    }
    ExemplarCharacters{"[a-z]"}
    Languages{
        ms{"Bahasa Melayu"}
    }
    LocaleScript{
        "Latn",
    }
    Version{"1.2"}
    calendar{
        gregorian{
            DateTimeElements:intvector{
                2,
                1,
            }
            dayNames{
                format{
                    abbreviated{
                        "Ahd",
                        "Isn",
                        "Sel",
                        "Rab",
                        "Kha",
                        "Jum",
                        "Sab",
                    }
                    wide{
                        "Ahad",
                        "Isnin",
                        "Selasa",
                        "Rabu",
                        "Khamis",
                        "Jumaat",
                        "Sabtu",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mac",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Jul",
                        "Ogos",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Dis",
                    }
                    wide{
                        "Januari",
                        "Februari",
                        "Mac",
                        "April",
                        "Mei",
                        "Jun",
                        "Julai",
                        "Ogos",
                        "September",
                        "Oktober",
                        "November",
                        "Disember",
                    }
                }
            }
        }
    }
}
