﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ms.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/ms.xml
 */
ms{
    Keys{
        calendar{"Kalendar"}
        colAlternate{"Abaikan Pengisihan Simbol"}
        colBackwards{"Pengisihan Aksen Terbalik"}
        colCaseFirst{"Penyusunan Huruf Besar/Huruf Kecil"}
        colCaseLevel{"Pengisihan Sensitif Atur"}
        colHiraganaQuaternary{"Pengisihan Kana"}
        colNormalization{"Pengisihan Ternormal"}
        colNumeric{"Pengisihan Berangka"}
        colStrength{"Kekuatan Pengisihan"}
        collation{"Urutan Isihan"}
        currency{"Mata wang"}
        numbers{"Nombor"}
        timezone{"Zon Waktu"}
        va{"Varian Tempat"}
        variableTop{"Isih Sebagai Simbol"}
        x{"Penggunaan Peribadi"}
    }
    Languages{
        ab{"Abkhazia"}
        ach{"Akoli"}
        ady{"Adyghe"}
        ae{"Avestan"}
        aeb{"Arab Tunisia"}
        af{"Afrikaans"}
        agq{"Aghem"}
        ak{"Akan"}
        alt{"Altai Selatan"}
        am{"Amharic"}
        ar{"Arab"}
        ar_001{"Arab Standard Moden"}
        arn{"Mapuche"}
        arq{"Arab Algeria"}
        ary{"Arab Maghribi"}
        arz{"Arab Mesir"}
        as{"Assam"}
        asa{"Asu"}
        av{"Avaric"}
        ay{"Aymara"}
        az{"Azerbaijan"}
        azb{"Azerbaijan Selatan"}
        ba{"Bashkir"}
        bal{"Baluchi"}
        bax{"Bamun"}
        bbj{"Ghomala"}
        be{"Belarus"}
        bej{"Beja"}
        bem{"Bemba"}
        bez{"Bena"}
        bfd{"Bafut"}
        bg{"Bulgaria"}
        bkm{"Kom"}
        bm{"Bambara"}
        bn{"Benggala"}
        bo{"Tibet"}
        bpy{"Bishnupriya"}
        br{"Breton"}
        brh{"Brahui"}
        brx{"Bodo"}
        bs{"Bosnia"}
        bss{"Akoose"}
        bua{"Buriat"}
        bum{"Bulu"}
        byv{"Medumba"}
        ca{"Catalonia"}
        cay{"Cayuga"}
        ce{"Chechen"}
        cgg{"Chiga"}
        chm{"Mari"}
        chr{"Cherokee"}
        ckb{"Kurdi Sorani"}
        co{"Corsica"}
        cop{"Coptic"}
        crh{"Turki Krimea"}
        cs{"Czech"}
        cu{"Slavik Gereja"}
        cv{"Chuvash"}
        cy{"Wales"}
        da{"Denmark"}
        dav{"Taita"}
        de{"Jerman"}
        de_AT{"Jerman Austria"}
        de_CH{"Jerman Halus Switzerland"}
        dje{"Zarma"}
        doi{"Dogri"}
        dsb{"Lower Sorbian"}
        dua{"Duala"}
        dv{"Divehi"}
        dyo{"Jola-Fonyi"}
        dz{"Dzongkha"}
        dzg{"Dazaga"}
        ebu{"Embu"}
        ee{"Ewe"}
        efi{"Efik"}
        el{"Greek"}
        en{"Inggeris"}
        en_AU{"Inggeris Australia"}
        en_CA{"Inggeris Kanada"}
        en_GB{"Inggeris British"}
        en_US{"Inggeris AS"}
        eo{"Esperanto"}
        es{"Sepanyol"}
        es_419{"Sepanyol Amerika Latin"}
        es_ES{"Sepanyol Eropah"}
        es_MX{"Sepanyol Mexico"}
        et{"Estonia"}
        eu{"Basque"}
        fa{"Parsi"}
        fi{"Finland"}
        fil{"Filipina"}
        fj{"Fiji"}
        fo{"Faroe"}
        fr{"Perancis"}
        fr_CA{"Perancis Kanada"}
        fr_CH{"Perancis Switzerland"}
        fy{"Frisian"}
        ga{"Ireland"}
        gaa{"Ga"}
        gag{"Gagauz"}
        gba{"Gbaya"}
        gbz{"Zoroastrian Dari"}
        gd{"Scots Gaelic"}
        gl{"Galicia"}
        glk{"Gilaki"}
        gn{"Guarani"}
        grc{"Greek Purba"}
        gsw{"Jerman Switzerland"}
        gu{"Gujerat"}
        guz{"Gusii"}
        gv{"Manx"}
        ha{"Hausa"}
        haw{"Hawaii"}
        he{"Ibrani"}
        hi{"Hindi"}
        hr{"Croat"}
        hsb{"Upper Sorbian"}
        ht{"Haiti"}
        hu{"Hungary"}
        hy{"Armenia"}
        ia{"Interlingua"}
        ibb{"Ibibio"}
        id{"Indonesia"}
        ie{"Interlingue"}
        ig{"Igbo"}
        ii{"Sichuan Yi"}
        is{"Iceland"}
        it{"Itali"}
        iu{"Inuktitut"}
        ja{"Jepun"}
        jgo{"Ngomba"}
        jmc{"Machame"}
        jv{"Jawa"}
        ka{"Georgia"}
        kab{"Kabyle"}
        kam{"Kamba"}
        kbl{"Kanembu"}
        kde{"Makonde"}
        kea{"Kabuverdianu"}
        kg{"Kongo"}
        khq{"Koyra Chiini"}
        khw{"Khowar"}
        ki{"Kikuya"}
        kk{"Kazakhstan"}
        kkj{"Kako"}
        kl{"Kalaallisut"}
        kln{"Kalenjin"}
        km{"Khmer"}
        kn{"Kannada"}
        ko{"Korea"}
        koi{"Komi-Permyak"}
        kok{"Konkani"}
        ks{"Kashmir"}
        ksb{"Shambala"}
        ksf{"Bafia"}
        ksh{"Colognian"}
        ku{"Kurdish"}
        kw{"Cornish"}
        ky{"Kirghiz"}
        la{"Latin"}
        lag{"Langi"}
        lah{"Lahnda"}
        lb{"Luxembourg"}
        lg{"Ganda"}
        lkt{"Lakota"}
        ln{"Lingala"}
        lo{"Laos"}
        loz{"Lozi"}
        lt{"Lithuania"}
        lu{"Luba-Katanga"}
        lua{"Luba-Lulua"}
        luo{"Luo"}
        lus{"Mizo"}
        luy{"Luyia"}
        lv{"Latvia"}
        maf{"Mafa"}
        mas{"Masai"}
        mde{"Maba"}
        mer{"Meru"}
        mfe{"Morisyen"}
        mg{"Malagasy"}
        mgh{"Makhuwa-Meetto"}
        mgo{"Meta’"}
        mi{"Maori"}
        mk{"Macedonia"}
        ml{"Malayalam"}
        mn{"Mongolia"}
        mni{"Manipuri"}
        moh{"Mohawk"}
        mr{"Marathi"}
        ms{"Bahasa Melayu"}
        mt{"Malta"}
        mua{"Mundang"}
        my{"Burma"}
        mye{"Myene"}
        mzn{"Mazanderani"}
        naq{"Nama"}
        nb{"Bokmål Norway"}
        nd{"Ndebele Utara"}
        ne{"Nepal"}
        nl{"Belanda"}
        nl_BE{"Flemish"}
        nmg{"Kwasio"}
        nn{"Nynorsk Norway"}
        no{"Norway"}
        nqo{"N’ko"}
        nso{"Sotho Utara"}
        nus{"Nuer"}
        ny{"Nyanja"}
        nyn{"Nyankole"}
        oc{"Occitania"}
        om{"Oromo"}
        or{"Oriya"}
        os{"Ossete"}
        pa{"Punjabi"}
        pl{"Poland"}
        ps{"Pashto"}
        pt{"Portugis"}
        pt_BR{"Portugis Brazil"}
        pt_PT{"Portugis Eropah"}
        qu{"Quechua"}
        quc{"Kʼicheʼ"}
        rm{"Romansh"}
        rn{"Rundi"}
        ro{"Romania"}
        ro_MD{"Moldavia"}
        rof{"Rombo"}
        ru{"Rusia"}
        rw{"Kinyarwanda"}
        rwk{"Rwa"}
        sa{"Sanskrit"}
        saq{"Samburu"}
        sba{"Ngambay"}
        sbp{"Sangu"}
        sd{"Sindhi"}
        se{"Sami Utara"}
        see{"Seneca"}
        seh{"Sena"}
        ses{"Koyraboro Senni"}
        sg{"Sango"}
        sh{"SerboCroatia"}
        shi{"Tachelhit"}
        shu{"Chadian Arab"}
        si{"Sinhala"}
        sk{"Slovak"}
        sl{"Slovenia"}
        sm{"Samoa"}
        sma{"Sami Selatan"}
        smj{"Lule Sami"}
        smn{"Inari Sami"}
        sms{"Skolt Sami"}
        sn{"Shona"}
        so{"Somali"}
        sq{"Albania"}
        sr{"Serbia"}
        ss{"Swati"}
        ssy{"Saho"}
        st{"Sotho Selatan"}
        su{"Sunda"}
        sv{"Sweden"}
        sw{"Swahili"}
        swb{"Comoria"}
        swc{"Congo Swahili"}
        ta{"Tamil"}
        te{"Telugu"}
        teo{"Teso"}
        tet{"Tetum"}
        tg{"Tajik"}
        th{"Thai"}
        ti{"Tigrinya"}
        tk{"Turkmen"}
        tlh{"Klingon"}
        tly{"Talysh"}
        tn{"Tswana"}
        to{"Tonga"}
        tpi{"Tok Pisin"}
        tr{"Turki"}
        trv{"Taroko"}
        ts{"Tsonga"}
        tt{"Tatar"}
        tum{"Tumbuka"}
        tw{"Twi"}
        twq{"Tasawaq"}
        ty{"Tahiti"}
        tzm{"Tamazight Atlas Tengah"}
        ug{"Uyghur"}
        uk{"Ukraine"}
        und{"Bahasa Tidak Diketahui"}
        ur{"Urdu"}
        uz{"Uzbekistan"}
        vai{"Vai"}
        ve{"Venda"}
        vi{"Vietnam"}
        vun{"Vunjo"}
        wae{"Walser"}
        wo{"Wolof"}
        xh{"Xhosa"}
        xog{"Soga"}
        yav{"Yangben"}
        ybb{"Yemba"}
        yi{"Yiddish"}
        yo{"Yoruba"}
        zgh{"Tamazight Maghribi Standard"}
        zh{"Cina"}
        zh_Hans{"Cina Ringkas"}
        zh_Hant{"Cina Tradisional"}
        zu{"Zulu"}
        zxx{"Tiada kandungan linguistik"}
        zza{"Zaza"}
    }
    Languages%variant{
        ps{"Pushto"}
        ug{"Uighur"}
    }
    LanguagesShort{
        az{"Azeri"}
        en_GB{"Inggeris U.K."}
        en_US{"Inggeris A.S."}
    }
    Scripts{
        Arab{"Arab"}
        Armn{"Armenia"}
        Bali{"Bali"}
        Bamu{"Bamu"}
        Beng{"Bengali"}
        Bopo{"Bopomofo"}
        Brai{"Braille"}
        Cans{"Cans"}
        Cyrl{"Cyril"}
        Deva{"Devanagari"}
        Ethi{"Ethiopia"}
        Geor{"Georgia"}
        Grek{"Greek"}
        Gujr{"Gujarat"}
        Guru{"Gurmukhi"}
        Hang{"Hangul"}
        Hani{"Han"}
        Hans{"Ringkas"}
        Hant{"Tradisional"}
        Hebr{"Ibrani"}
        Hira{"Hiragana"}
        Jpan{"Jepun"}
        Kana{"Katakana"}
        Khmr{"Khmer"}
        Knda{"Kannada"}
        Kore{"Korea"}
        Laoo{"Lao"}
        Latn{"Latin"}
        Mlym{"Malayalam"}
        Mong{"Mongolia"}
        Mymr{"Myammar"}
        Orya{"Oriya"}
        Sinh{"Sinhala"}
        Taml{"Tamil"}
        Telu{"Telugu"}
        Thaa{"Thaana"}
        Thai{"Thai"}
        Tibt{"Tibet"}
        Zsym{"Simbol"}
        Zxxx{"Tidak ditulis"}
        Zyyy{"Biasa"}
        Zzzz{"Skrip Tidak Diketahui"}
    }
    Scripts%stand-alone{
        Hans{"Han Ringkas"}
        Hant{"Han Tradisional"}
    }
    Scripts%variant{
        Arab{"Perso-Arab"}
    }
    Types{
        calendar{
            buddhist{"Kalendar Buddha"}
            chinese{"Kalendar Cina"}
            coptic{"Kalendar Qibti"}
            dangi{"Kalendar Dangi"}
            ethiopic{"Kalendar Ethiopia"}
            ethiopic-amete-alem{"Kalendar Amete Alem Ethiopia"}
            gregorian{"Kalendar Gregory"}
            hebrew{"Kalendar Ibrani"}
            indian{"Kalendar Kebangsaan India"}
            islamic{"Kalendar Islam"}
            islamic-civil{"Kalendar Sivil Islam"}
            iso8601{"Kalendar ISO-8601"}
            japanese{"Kalendar Jepun"}
            persian{"Kalendar Parsi"}
            roc{"Kalendar Minguo"}
        }
        colAlternate{
            non-ignorable{"Isih Simbol"}
            shifted{"Isih Mengabaikan Simbol"}
        }
        colBackwards{
            no{"Isih Aksen Secara Biasa"}
            yes{"Isih Aksen Terbalik"}
        }
        colCaseFirst{
            lower{"Isih Huruf Kecil Dahulu"}
            no{"Isih Urutan Atur Biasa"}
            upper{"Isih Huruf Besar Dahulu"}
        }
        colCaseLevel{
            no{"Isih Tidak Sensitif Atur"}
            yes{"Isih Sensitif Atur"}
        }
        colHiraganaQuaternary{
            no{"Isih Kana Berasingan"}
            yes{"Isih Kana Secara Berbeza"}
        }
        colNormalization{
            no{"Isih Tanpa Penormalan"}
            yes{"Isih Unikod Ternormal"}
        }
        colNumeric{
            no{"Isih Digit Secara Berasingan"}
            yes{"Isih Digit Mengikut Nombor"}
        }
        colStrength{
            identical{"Isih Semua"}
            primary{"Isih Huruf Asas Sahaja"}
            quaternary{"Isih Aksen/Atur/Lebar/Kana"}
            secondary{"Isih Aksen"}
            tertiary{"Isih Aksen/Atur/Lebar"}
        }
        collation{
            big5han{"Aturan Isih Cina Tradisional - Big5"}
            dictionary{"Aturan Isih Kamus"}
            ducet{"Aturan Isih Unikod Lalai"}
            gb2312han{"Aturan Isih Bahasa Cina Ringkas - GB2312"}
            phonebook{"Aturan Isih Buku Telefon"}
            phonetic{"Urutan Isih Fonetik"}
            pinyin{"Aturan Isih Pinyin"}
            reformed{"Aturan Isih Pembaharuan"}
            search{"Carian Tujuan Umum"}
            searchjl{"Cari Mengikut Konsonan Awal Hangul"}
            standard{"Urutan Isihan Standard"}
            stroke{"Aturan Isih Coretan"}
            traditional{"Aturan Isih Tradisional"}
            unihan{"Aturan Isih Coretan Radikal"}
        }
        numbers{
            arab{"Digit Indi-Arab"}
            arabext{"Digit Indi Arab Lanjutan"}
            armn{"Angka Armenia"}
            armnlow{"Angka Kecil Armenia"}
            beng{"Digit Bengali"}
            deva{"Digit Devanagari"}
            ethi{"Angka Ethiopia"}
            finance{"Angka Kewangan"}
            fullwide{"Digit Lebar Penuh"}
            geor{"Angka Georgia"}
            grek{"Angka Greek"}
            greklow{"Angka Huruf Kecil Greek"}
            gujr{"Digit Gujarat"}
            guru{"Digit Gurmukhi"}
            hanidec{"Angka Perpuluhan Cina"}
            hans{"Angka Cina Ringkas"}
            hansfin{"Angka Kewangan Cina Ringkas"}
            hant{"Angka Cina Tradisional"}
            hantfin{"Angka Kewangan Cina Tradisional"}
            hebr{"Angka Ibrani"}
            jpan{"Angka Jepun"}
            jpanfin{"Angka Kewangan Jepun"}
            khmr{"Digit Khmer"}
            knda{"Digit Kannada"}
            laoo{"Digit Lao"}
            latn{"Digit Barat"}
            mlym{"Digit Malayalam"}
            mong{"Digit Mongolia"}
            mymr{"Digit Myammar"}
            native{"Digit Asal"}
            orya{"Digit Oriya"}
            roman{"Angka Roman"}
            romanlow{"Angka Huruf Kecil Roman"}
            taml{"Angka Tamil"}
            tamldec{"Digit Tamil"}
            telu{"Digit Telugu"}
            thai{"Digit Thai"}
            tibt{"Digit Tibet"}
            traditional{"Angka Tradisional"}
            vaii{"Digit Vai"}
        }
    }
    Version{"2.1.8.9"}
    codePatterns{
        language{"Bahasa: {0}"}
        script{"Skrip: {0}"}
        territory{"Kawasan: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
