﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <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"}
        hc{"Kitaran Jam (12 berbanding 24)"}
        lb{"Gaya Pemisah Baris"}
        ms{"Sistem Ukuran"}
        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"}
        ba{"Bashkir"}
        bal{"Baluchi"}
        bas{"Basaa"}
        bax{"Bamun"}
        bbj{"Ghomala"}
        be{"Belarus"}
        bej{"Beja"}
        bem{"Bemba"}
        bez{"Bena"}
        bfd{"Bafut"}
        bg{"Bulgaria"}
        bgn{"Balochi Barat"}
        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"}
        ewo{"Ewondo"}
        fa{"Parsi"}
        fi{"Finland"}
        fil{"Filipina"}
        fj{"Fiji"}
        fo{"Faroe"}
        fr{"Perancis"}
        fr_CA{"Perancis Kanada"}
        fr_CH{"Perancis Switzerland"}
        fy{"Frisian Barat"}
        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{"Croatia"}
        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"}
        lrc{"Luri Utara"}
        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"}
        nds{"Jerman Rendah"}
        nds_NL{"Saxon Rendah"}
        ne{"Nepal"}
        nl{"Belanda"}
        nl_BE{"Flemish"}
        nmg{"Kwasio"}
        nn{"Nynorsk Norway"}
        nnh{"Ngiemboon"}
        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"}
        sdh{"Kurdish Selatan"}
        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"}
        wbp{"Warlpiri"}
        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%short{
        az{"Azeri"}
        en_GB{"Inggeris U.K."}
        en_US{"Inggeris A.S."}
    }
    Languages%variant{
        ps{"Pushto"}
        ug{"Uighur"}
    }
    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"}
        }
        hc{
            h11{"Sistem 12 Jam (0–11)"}
            h12{"Sistem 12 Jam (1–12)"}
            h23{"Sistem 24 Jam (0–23)"}
            h24{"Sistem 24 Jam (1–24)"}
        }
        lb{
            loose{"Gaya Pemisah Baris Bebas"}
            normal{"Gaya Pemisah Baris Biasa"}
            strict{"Gaya Pemisah Baris Ketat"}
        }
        ms{
            metric{"Sistem Metrik"}
            uksystem{"Sistem Ukuran Imperial"}
            ussystem{"Sistem Ukuran AS"}
        }
        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.19.94"}
    codePatterns{
        language{"Bahasa: {0}"}
        script{"Skrip: {0}"}
        territory{"Kawasan: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
