﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/id.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/id.xml
 */
id{
    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"}
        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ål"}
        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"}
        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ük"}
        wa{"Walloon"}
        wo{"Wolof"}
        xh{"Xhosa"}
        yi{"Yiddish"}
        yo{"Yoruba"}
        za{"Zhuang"}
        zh{"Cina"}
        zu{"Zulu"}
    }
    Version{"2.0.42.82"}
}
