﻿// © 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
ku{
    Keys{
        calendar{"salname"}
        currency{"diwîz"}
    }
    Languages{
        aa{"afarî"}
        ab{"abxazî"}
        ace{"açehî"}
        ady{"adîgeyî"}
        af{"afrîkansî"}
        ain{"aynuyî"}
        ale{"alêwîtî"}
        am{"amharî"}
        an{"aragonî"}
        ar{"erebî"}
        ar_001{"erebiya standard"}
        as{"asamî"}
        ast{"astûrî"}
        av{"avarî"}
        ay{"aymarayî"}
        az{"azerî"}
        ba{"başkîrî"}
        ban{"balînî"}
        be{"belarusî"}
        bem{"bembayî"}
        bg{"bulgarî"}
        bho{"bojpûrî"}
        bi{"bîslamayî"}
        bla{"blakfotî"}
        bm{"bambarayî"}
        bn{"bengalî"}
        bo{"tîbetî"}
        br{"bretonî"}
        bs{"bosnî"}
        bug{"bugî"}
        ca{"katalanî"}
        ce{"çeçenî"}
        ceb{"sebwanoyî"}
        ch{"çamoroyî"}
        chk{"çûkî"}
        chm{"marî"}
        chr{"çerokî"}
        chy{"çeyenî"}
        ckb{"soranî"}
        co{"korsîkayî"}
        cs{"çekî"}
        cv{"çuvaşî"}
        cy{"weylsî"}
        da{"danmarkî"}
        de{"elmanî"}
        dsb{"sorbiya jêrîn"}
        dua{"diwalayî"}
        dv{"divehî"}
        dz{"conxayî"}
        ee{"eweyî"}
        el{"yewnanî"}
        en{"îngilîzî"}
        eo{"esperantoyî"}
        es{"spanî"}
        et{"estonî"}
        eu{"baskî"}
        fa{"farisî"}
        ff{"fulahî"}
        fi{"fînî"}
        fil{"fîlîpînoyî"}
        fj{"fîjî"}
        fo{"ferî"}
        fr{"frensî"}
        fur{"friyolî"}
        fy{"frîsî"}
        ga{"îrî"}
        gd{"gaelîka skotî"}
        gil{"kîrîbatî"}
        gl{"galîsî"}
        gn{"guwaranî"}
        gor{"gorontaloyî"}
        gsw{"elmanîşî"}
        gu{"gujaratî"}
        gv{"manksî"}
        ha{"hawsayî"}
        haw{"hawayî"}
        he{"îbranî"}
        hi{"hindî"}
        hil{"hîlîgaynonî"}
        hr{"xirwatî"}
        hsb{"sorbiya jorîn"}
        ht{"haîtî"}
        hu{"mecarî"}
        hy{"ermenî"}
        hz{"hereroyî"}
        ia{"interlingua"}
        id{"indonezî"}
        ig{"îgboyî"}
        ilo{"îlokanoyî"}
        inh{"îngûşî"}
        io{"îdoyî"}
        is{"îzlendî"}
        it{"îtalî"}
        iu{"înuîtî"}
        ja{"japonî"}
        jbo{"lojbanî"}
        jv{"javayî"}
        ka{"gurcî"}
        kab{"kabîlî"}
        kea{"kapverdî"}
        kk{"qazaxî"}
        kl{"kalalîsûtî"}
        km{"ximêrî"}
        kn{"kannadayî"}
        ko{"koreyî"}
        kok{"konkanî"}
        ks{"keşmîrî"}
        ksh{"rîpwarî"}
        ku{"kurdî"}
        kv{"komî"}
        kw{"kornî"}
        ky{"kirgizî"}
        lad{"ladînoyî"}
        lb{"luksembûrgî"}
        lez{"lezgînî"}
        lg{"lugandayî"}
        li{"lîmbûrgî"}
        lkt{"lakotayî"}
        ln{"lingalayî"}
        lo{"lawsî"}
        lrc{"luriya bakur"}
        lt{"lîtwanî"}
        lv{"latviyayî"}
        mad{"madurayî"}
        mas{"masayî"}
        mdf{"mokşayî"}
        mg{"malagasî"}
        mh{"marşalî"}
        mi{"maorî"}
        mic{"mîkmakî"}
        min{"mînangkabawî"}
        mk{"makedonî"}
        ml{"malayalamî"}
        mn{"mongolî"}
        moh{"mohawkî"}
        mr{"maratî"}
        ms{"malezî"}
        mt{"maltayî"}
        my{"burmayî"}
        myv{"erzayî"}
        mzn{"mazenderanî"}
        na{"nawrûyî"}
        nap{"napolîtanî"}
        nb{"norwecî (bokmål)"}
        ne{"nepalî"}
        niu{"nîwî"}
        nl{"holendî"}
        nl_BE{"flamî"}
        nn{"norwecî (nynorsk)"}
        nso{"sotoyiya bakur"}
        nv{"navajoyî"}
        oc{"oksîtanî"}
        om{"oromoyî"}
        or{"oriyayî"}
        os{"osetî"}
        pa{"puncabî"}
        pam{"kapampanganî"}
        pap{"papyamentoyî"}
        pau{"palawî"}
        pl{"polonî"}
        prg{"prûsyayî"}
        ps{"peştûyî"}
        pt{"portugalî"}
        qu{"keçwayî"}
        rap{"rapanuyî"}
        rar{"rarotongî"}
        rm{"romancî"}
        ro{"romanî"}
        ru{"rusî"}
        rup{"aromanî"}
        rw{"kînyariwandayî"}
        sa{"sanskrîtî"}
        sc{"sardînî"}
        scn{"sicîlî"}
        sco{"skotî"}
        sd{"sindhî"}
        se{"samiya bakur"}
        si{"kîngalî"}
        sk{"slovakî"}
        sl{"slovenî"}
        sm{"samoayî"}
        smn{"samiya înarî"}
        sn{"şonayî"}
        so{"somalî"}
        sq{"elbanî"}
        sr{"sirbî"}
        srn{"sirananî"}
        ss{"swazî"}
        st{"sotoyiya başûr"}
        su{"sundanî"}
        sv{"swêdî"}
        sw{"swahîlî"}
        swb{"komorî"}
        syr{"siryanî"}
        ta{"tamîlî"}
        te{"telûgûyî"}
        tet{"tetûmî"}
        tg{"tacikî"}
        th{"tayî"}
        ti{"tigrînî"}
        tk{"tirkmenî"}
        tlh{"klîngonî"}
        tn{"tswanayî"}
        to{"tongî"}
        tpi{"tokpisinî"}
        tr{"tirkî"}
        trv{"tarokoyî"}
        ts{"tsongayî"}
        tt{"teterî"}
        tum{"tumbukayî"}
        tvl{"tuvalûyî"}
        ty{"tahîtî"}
        tzm{"temazîxtî"}
        udm{"udmurtî"}
        ug{"oygurî"}
        uk{"ukraynî"}
        ur{"urdûyî"}
        uz{"ozbekî"}
        vi{"viyetnamî"}
        vo{"volapûkî"}
        wa{"walonî"}
        war{"warayî"}
        wo{"wolofî"}
        xh{"xosayî"}
        yi{"yidîşî"}
        yo{"yorubayî"}
        yue{"kantonî"}
        zu{"zuluyî"}
        zza{"zazakî"}
    }
    Scripts{
        Arab{"erebî"}
        Armn{"ermenî"}
        Beng{"bengalî"}
        Cyrl{"kirîlî"}
        Deva{"devanagarî"}
        Geor{"gurcî"}
        Grek{"yewnanî"}
        Khmr{"ximêrî"}
        Latn{"latînî"}
        Mong{"mongolî"}
        Tibt{"tîbetî"}
        Zsym{"sembol"}
        Zxxx{"ne nivîsandî"}
        Zyyy{"hevpar"}
        Zzzz{"nivîsa nenas"}
    }
    Types{
        calendar{
            chinese{"salnameya çînî"}
            gregorian{"salnameya gregorî"}
            hebrew{"salnameya îbranî"}
            islamic{"salnameya koçî"}
            iso8601{"salnameya ISO-8601"}
            japanese{"salnameya japonî"}
            persian{"salnameya îranî"}
            roc{"salnameya Komara Çînê"}
        }
        numbers{
            roman{"hejmarên romî"}
        }
    }
    codePatterns{
        language{"ziman: {0}"}
        script{"nivîs: {0}"}
        territory{"herêm: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
