﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
kea{
    Keys{
        calendar{"Kalendáriu"}
        cf{"Formatu di mueda"}
        collation{"Ordenason"}
        currency{"Mueda"}
        hc{"Siklu oráriu (12 o 24)"}
        lb{"Stilu di kebra di linha"}
        ms{"Sistema di midida"}
        numbers{"Nunbru"}
    }
    Languages{
        ab{"abkáziu"}
        af{"afrikaner"}
        agq{"aghem"}
        ak{"akan"}
        am{"amáriku"}
        ar{"árabi"}
        ar_001{"árabi mudernu"}
        arn{"araukanu"}
        as{"asames"}
        asa{"asu"}
        ast{"asturianu"}
        ay{"aimara"}
        az{"azerbaijanu"}
        ba{"baxkir"}
        ban{"balines"}
        bas{"basa"}
        be{"bielorusu"}
        bem{"bemba"}
        bez{"bena"}
        bg{"búlgaru"}
        bm{"bambara"}
        bn{"bengali"}
        bo{"tibetanu"}
        br{"bretãu"}
        brx{"bodo"}
        bs{"bosniu"}
        ca{"katalãu"}
        ccp{"xakma"}
        ce{"txetxenu"}
        ceb{"sebuanu"}
        cgg{"xiga"}
        chr{"xeroki"}
        ckb{"kurdu sentral"}
        co{"kórsiku"}
        cs{"txeku"}
        cu{"slavu klériku"}
        cv{"txuvaxi"}
        cy{"gales"}
        da{"dinamarkes"}
        dav{"taita"}
        de{"alemon"}
        de_AT{"alemon austríaku"}
        de_CH{"alemon altu suisu"}
        dje{"zarma"}
        dsb{"sórbiu baxu"}
        dua{"duala"}
        dyo{"jola-fonyi"}
        dz{"dzonka"}
        ebu{"embu"}
        ee{"eve"}
        el{"gregu"}
        en{"ingles"}
        en_AU{"ingles australianu"}
        en_CA{"ingles kanadianu"}
        en_GB{"ingles britániku"}
        en_US{"ingles merkanu"}
        eo{"sperantu"}
        es{"spanhol"}
        es_419{"spanhol latinu-merkanu"}
        es_ES{"spanhol europeu"}
        es_MX{"spanhol mexikanu"}
        et{"stonianu"}
        eu{"basku"}
        ewo{"ewondo"}
        fa{"persa"}
        ff{"fula"}
        fi{"finlandes"}
        fil{"filipinu"}
        fj{"fijianu"}
        fo{"faroes"}
        fr{"franses"}
        fr_CA{"franses kanadianu"}
        fr_CH{"franses suisu"}
        fur{"friulanu"}
        fy{"fríziu osidental"}
        ga{"irlandes"}
        gag{"gagauz"}
        gl{"galegu"}
        gn{"guarani"}
        gsw{"alemon suísu"}
        gu{"gujarati"}
        guz{"gusii"}
        gv{"manks"}
        ha{"auza"}
        haw{"avaianu"}
        he{"ebraiku"}
        hi{"indi"}
        hmn{"hmong"}
        hr{"kroata"}
        hsb{"sórbiu altu"}
        ht{"aitianu"}
        hu{"úngaru"}
        hy{"arméniu"}
        ia{"interlingua"}
        id{"indonéziu"}
        ig{"ibo"}
        ii{"nuosu"}
        is{"islandes"}
        it{"italianu"}
        iu{"inuktitut"}
        ja{"japones"}
        jgo{"ñomba"}
        jmc{"matxame"}
        jv{"javanes"}
        ka{"jorjianu"}
        kab{"kabila"}
        kam{"kamba"}
        kde{"makonde"}
        kea{"kabuverdianu"}
        khq{"koira txiini"}
        ki{"kikuiu"}
        kk{"kazak"}
        kkj{"kako"}
        kl{"groenlandes"}
        kln{"kalenjin"}
        km{"kmer"}
        kn{"kanares"}
        ko{"korianu"}
        koi{"komi-permiak"}
        kok{"konkani"}
        ks{"kaxmira"}
        ksf{"bafia"}
        ksh{"kolonhanu"}
        ku{"kurdu"}
        kw{"kórniku"}
        ky{"kirgiz"}
        la{"latin"}
        lag{"langi"}
        lb{"luxemburges"}
        lg{"luganda"}
        lkt{"lakota"}
        ln{"lingala"}
        lo{"lausianu"}
        lt{"lituanu"}
        lu{"luba-katanga"}
        luo{"luo"}
        luy{"luyia"}
        lv{"letãu"}
        mg{"malgaxi"}
        mgh{"makua"}
        mi{"maori"}
        mk{"masedóniu"}
        ml{"malaialam"}
        mr{"marati"}
        ms{"maláiu"}
        mt{"maltes"}
        my{"birmanes"}
        nb{"norueges bokmål"}
        nds{"alemon baxu"}
        ne{"nepales"}
        nl{"olandes"}
        nl_BE{"flamengu"}
        nmg{"kuazio"}
        nn{"norueges nynorsk"}
        om{"oromo"}
        or{"odía"}
        os{"osétiku"}
        pa{"pandjabi"}
        pl{"pulaku"}
        prg{"prusianu"}
        ps{"paxto"}
        pt{"purtuges"}
        pt_BR{"purtuges brazileru"}
        pt_PT{"purtuges europeu"}
        qu{"kexua"}
        quc{"kitxe"}
        rm{"romanxi"}
        rn{"rundi"}
        ro{"rumenu"}
        ro_MD{"rumenu moldáviku"}
        rof{"rombu"}
        ru{"rusu"}
        rw{"kiniaruanda"}
        rwk{"rwa"}
        sa{"sánskritu"}
        sd{"sindi"}
        ses{"koiraboro seni"}
        si{"singales"}
        sk{"slovaku"}
        sl{"slovéniu"}
        smn{"inari sami"}
        so{"somali"}
        sq{"albanes"}
        sr{"sérviu"}
        su{"sundanes"}
        sv{"sueku"}
        sw{"suaíli"}
        sw_CD{"suaíli kongoles"}
        ta{"tamil"}
        te{"telugu"}
        tg{"tadjiki"}
        th{"tailandes"}
        ti{"tigrinia"}
        tk{"turkmenu"}
        to{"tonganes"}
        tr{"turku"}
        tt{"tatar"}
        tzm{"tamazait di Atlas Sentral"}
        ug{"uigur"}
        uk{"ukranianu"}
        und{"língua diskonxedu"}
        ur{"urdu"}
        uz{"uzbeki"}
        vi{"vietnamita"}
        wo{"uolof"}
        xh{"koza"}
        yo{"ioruba"}
        yue{"kantunes"}
        zgh{"tamazait marokinu padron"}
        zh{"xines"}
        zh_Hans{"xines simplifikadu"}
        zh_Hant{"xines tradisional"}
        zu{"zulu"}
        zxx{"sen kontiudu linguístiku"}
    }
    Languages%long{
        zh_Hans{"xines mandarin (simplificadu)"}
        zh_Hant{"xines mandarin (tradisional)"}
    }
    Languages%menu{
        yue{"kantunes (tradisional)"}
        zh{"xines, mandarin"}
    }
    Languages%short{
        az{"azeri"}
    }
    Scripts{
        Arab{"arábiku"}
        Armn{"arméniu"}
        Beng{"bengali"}
        Bopo{"bopomofo"}
        Brai{"braille"}
        Cyrl{"siríliku"}
        Deva{"devanagari"}
        Ethi{"etiópiku"}
        Geor{"jorjianu"}
        Grek{"gregu"}
        Gujr{"gujarati"}
        Guru{"gurmuki"}
        Hang{"hangul"}
        Hani{"han"}
        Hans{"simplifikadu"}
        Hant{"tradisional"}
        Hebr{"ebraiku"}
        Hira{"iragana"}
        Hrkt{"silabáriu japunes"}
        Jpan{"japones"}
        Kana{"katakana"}
        Khmr{"kmer"}
        Knda{"kanares"}
        Kore{"korianu"}
        Laoo{"lausianu"}
        Latn{"latinu"}
        Mlym{"malaialam"}
        Mong{"mongol"}
        Mymr{"birmanes"}
        Orya{"oriya"}
        Sinh{"singales"}
        Taml{"tamil"}
        Telu{"telugu"}
        Thaa{"taana"}
        Thai{"tailandes"}
        Tibt{"tibetanu"}
        Zmth{"notason matimátiku"}
        Zsye{"emoji"}
        Zsym{"símbulus"}
        Zxxx{"nãu skritu"}
        Zyyy{"komun"}
        Zzzz{"skrita diskonxedu"}
    }
    Scripts%stand-alone{
        Hans{"han simplifikadu"}
        Hant{"han tradisional"}
    }
    Types{
        calendar{
            buddhist{"Kalendáriu budista"}
            chinese{"Kalendáriu xines"}
            dangi{"Kalendáriu dangi"}
            ethiopic{"Kalendáriu etiópiku"}
            gregorian{"Kalendáriu Gregorianu"}
            hebrew{"Kalendáriu ebraiku"}
            islamic{"Kalendáriu islámiku"}
            iso8601{"Kalendáriu ISO-8601"}
            japanese{"Kalendáriu japones"}
            persian{"Kalendáriu persa"}
            roc{"Kalendáriu di Repúblika di Xina"}
        }
        cf{
            account{"Formatu di mueda kontabilístiku"}
            standard{"Formatu di mueda padron"}
        }
        collation{
            ducet{"Órdi padron di Unicode"}
            search{"Piskiza di uzu jeral"}
            standard{"Órdi padron"}
        }
        hc{
            h11{"Sistema di 12 ora (0–11)"}
            h12{"Sistema di 12 ora (1–12)"}
            h23{"Sistema di 24 ora (0–23)"}
            h24{"Sistema di 24 ora (1–24)"}
        }
        lb{
            loose{"Stilu fleksível di kebra di linha"}
            normal{"Stilu padron di kebra di linha"}
            strict{"Stilu ríjidu di kebra di linha"}
        }
        ms{
            metric{"Sistema métriku"}
            uksystem{"Sistema di midida britániku"}
            ussystem{"Sistema di midida merkanu"}
        }
        numbers{
            latn{"Nunbru osidental"}
        }
    }
    Version{"37"}
    codePatterns{
        language{"Lingua: {0}"}
        script{"Skrita: {0}"}
        territory{"Rejion: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
