﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
wo{
    Languages{
        af{"Afrikaans"}
        am{"Amharik"}
        ar{"Araab"}
        as{"Asame"}
        az{"Aserbayjane"}
        ba{"Baskir"}
        ban{"Bali"}
        be{"Belaris"}
        bem{"Bemba"}
        bg{"Bilgaar"}
        bn{"Baŋla"}
        bo{"Tibetan"}
        br{"Breton"}
        bs{"Bosñak"}
        ca{"Katalan"}
        ceb{"Sibiyanoo"}
        chm{"Mari"}
        chr{"Ceroki"}
        ckb{"Kurdi gu Diggu"}
        co{"Kors"}
        cs{"Cek"}
        cy{"Wels"}
        da{"Danuwa"}
        de{"Almaa"}
        de_AT{"Almaa bu Ótiriis"}
        de_CH{"Almaa bu Kawe bu Swis"}
        dsb{"Sorab-Suuf"}
        dv{"Diweyi"}
        dz{"Dsongkaa"}
        el{"Gereg"}
        en{"Àngale"}
        en_AU{"Àngale bu Óstraali"}
        en_CA{"Àngale bu Kanadaa"}
        en_GB{"Àngale bu Grànd Brëtaañ"}
        en_US{"Àngale bu Amerik"}
        eo{"Esperantoo"}
        es{"Español"}
        es_419{"Español bu Amerik Latin"}
        es_ES{"Español bu Tugël"}
        es_MX{"Español bu Meksik"}
        et{"Estoñiye"}
        eu{"Bask"}
        fa{"Pers"}
        ff{"Pël"}
        fi{"Feylànde"}
        fil{"Filipiye"}
        fo{"Feroos"}
        fr{"Farañse"}
        fr_CA{"Frañse bu Kanadaa"}
        fr_CH{"Frañse bu Swis"}
        ga{"Irlànde"}
        gd{"Galuwaa bu Ekos"}
        gl{"Galisiye"}
        gn{"Garani"}
        gu{"Gujarati"}
        ha{"Hawsa"}
        haw{"Hawaye"}
        he{"Ebrë"}
        hi{"Endo"}
        hil{"Hiligaynon"}
        hr{"Krowat"}
        hsb{"Sorab-Kaw"}
        ht{"Kereyolu Ayti"}
        hu{"Ongruwaa"}
        hy{"Armaniye"}
        hz{"Herero"}
        ibb{"Ibibiyo"}
        id{"Endonesiye"}
        ig{"Igbo"}
        is{"Islànde"}
        it{"Italiye"}
        iu{"Inuktitit"}
        ja{"Sapone"}
        ka{"Sorsiye"}
        kk{"Kasax"}
        km{"Xmer"}
        kn{"Kannadaa"}
        ko{"Koreye"}
        kok{"Konkani"}
        kr{"Kanuri"}
        kru{"Kuruks"}
        ks{"Kashmiri"}
        ku{"Kurdi"}
        ky{"Kirgiis"}
        la{"Latin"}
        lb{"Liksàmbursuwaa"}
        lo{"Laaw"}
        lt{"Lituyaniye"}
        lv{"Letoniye"}
        men{"Mende"}
        mg{"Malagasi"}
        mi{"Mawri"}
        mk{"Maseduwaane"}
        ml{"Malayalam"}
        mn{"Mongoliye"}
        mni{"Manipuri"}
        moh{"Mowak"}
        mr{"Marati"}
        ms{"Malay"}
        mt{"Malt"}
        my{"Birmes"}
        ne{"Nepale"}
        niu{"Niweyan"}
        nl{"Neyerlànde"}
        no{"Nerwesiye"}
        ny{"Sewa"}
        oc{"Ositan"}
        om{"Oromo"}
        or{"Oja"}
        pa{"Punjabi"}
        pap{"Papiyamento"}
        pl{"Polone"}
        ps{"Pasto"}
        pt{"Purtugees"}
        pt_BR{"Purtugees bu Bresil"}
        pt_PT{"Portugees bu Tugël"}
        qu{"Kesuwa"}
        quc{"Kishe"}
        rm{"Romaas"}
        ro{"Rumaniyee"}
        ru{"Rus"}
        rw{"Kinyarwànda"}
        sa{"Sanskrit"}
        sah{"Saxa"}
        sat{"Santali"}
        sd{"Sindi"}
        se{"Penku Sami"}
        si{"Sinala"}
        sk{"Eslowaki (Eslowak)"}
        sl{"Esloweniye"}
        sma{"Sami gu Saalum"}
        smj{"Lule Sami"}
        smn{"Inari Sami"}
        sms{"Eskolt Sami"}
        so{"Somali (làkk)"}
        sq{"Albane"}
        sr{"Serb"}
        sv{"Suweduwaa"}
        syr{"Siryak"}
        ta{"Tamil"}
        te{"Telugu"}
        tg{"Tajis"}
        th{"Tay"}
        ti{"Tigriña"}
        tk{"Tirkmen"}
        to{"Tongan"}
        tr{"Tirk"}
        tt{"Tatar"}
        tzm{"Tamasis gu Digg Atlaas"}
        ug{"Uygur"}
        uk{"Ikreniye"}
        und{"Làkk wuñ xamul"}
        ur{"Urdu"}
        uz{"Usbek"}
        ve{"Wenda"}
        vi{"Wiyetnaamiye"}
        wo{"Wolof"}
        yi{"Yidis"}
        yo{"Yoruba"}
        zh{"Sinuwaa"}
        zh_Hans{"Sinuwaa buñ woyofal"}
        zh_Hant{"Sinuwaa bu cosaan"}
    }
    Languages%long{
        zh_Hans{"Sinuwaa buñ woyofal"}
        zh_Hant{"Sinuwaa bu cosaan"}
    }
    Languages%short{
        en_GB{"Àngale (RI)"}
        en_US{"Àngale (ES)"}
    }
    Scripts{
        Arab{"Araab"}
        Cyrl{"Sirilik"}
        Hans{"Buñ woyofal"}
        Hant{"Cosaan"}
        Latn{"Latin"}
        Zxxx{"Luñ bindul"}
        Zzzz{"Mbind muñ xamul"}
    }
    Scripts%stand-alone{
        Hans{"Han buñ woyofal"}
        Hant{"Han u cosaan"}
    }
    Types{
        calendar{
            gregorian{"Arminaatu Gregoriyee"}
        }
        collation{
            standard{"SSO (Toftalin wiñ gën a xam)"}
        }
        numbers{
            latn{"Siifari Tugal"}
        }
    }
    codePatterns{
        language{"{0}"}
        script{"{0}"}
        territory{"{0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
