﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
kea{
    Keys{
        calendar{"Kalendáriu"}
    }
    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"}
        ay{"aimara"}
        az{"azerbaijanu"}
        ba{"baxkir"}
        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"}
        ce{"txetxenu"}
        cgg{"xiga"}
        chr{"xeroki"}
        ckb{"kurdu sentral"}
        co{"kórsiku"}
        cs{"txeku"}
        cv{"txuvaxi"}
        cy{"gales"}
        da{"dinamarkes"}
        dav{"taita"}
        de{"alimãu"}
        de_AT{"alimãu austriaku"}
        de_CH{"altu alimãu 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 britaniku"}
        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"}
        fa{"persa"}
        fi{"finlandes"}
        fil{"filipinu"}
        fj{"fijianu"}
        fo{"faroes"}
        fr{"franses"}
        fr_CA{"franses kanadianu"}
        fr_CH{"franses suisu"}
        fy{"fríziu osidental"}
        ga{"irlandes"}
        gag{"gagauz"}
        gl{"galegu"}
        gn{"guarani"}
        gsw{"alimãu suísu"}
        gu{"gujarati"}
        guz{"gusii"}
        gv{"manks"}
        ha{"auza"}
        haw{"avaianu"}
        he{"ebraiku"}
        hi{"indi"}
        hr{"kroata"}
        hsb{"sórbiu altu"}
        ht{"aitianu"}
        hu{"úngaru"}
        hy{"arméniu"}
        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"}
        kea{"kabuverdianu"}
        khq{"koira txiini"}
        ki{"kikuiu"}
        kk{"kazak"}
        kl{"groenlandes"}
        kln{"kalenjin"}
        km{"kmer"}
        kn{"kanares"}
        ko{"korianu"}
        koi{"komi-permiak"}
        kok{"konkani"}
        ks{"kaxmira"}
        ksf{"bafia"}
        ku{"kurdu"}
        kw{"kórniku"}
        ky{"kirgiz"}
        la{"latin"}
        lb{"luxemburges"}
        lg{"luganda"}
        lo{"lausianu"}
        lt{"lituanes"}
        lv{"letãu"}
        mg{"malgaxi"}
        mi{"maori"}
        mk{"masedóniu"}
        ml{"malaialam"}
        mr{"marati"}
        ms{"maláiu"}
        mt{"maltes"}
        my{"birmanes"}
        nb{"norueges bokmål"}
        ne{"nepales"}
        nl{"olandes"}
        nl_BE{"flamengu"}
        nmg{"kuazio"}
        nn{"norueges nynorsk"}
        om{"oromo"}
        or{"odía"}
        pa{"pandjabi"}
        pl{"pulaku"}
        ps{"paxto"}
        pt{"purtuges"}
        pt_BR{"purtuges brazileru"}
        pt_PT{"purtuges europeu"}
        qu{"kexua"}
        quc{"kitxe"}
        rm{"romanxi"}
        ro{"rumenu"}
        ro_MD{"rumenu moldáviku"}
        ru{"rusu"}
        rw{"kiniaruanda"}
        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"}
        zh{"xines"}
        zh_Hans{"xines simplifikadu"}
        zh_Hant{"xines tradisional"}
        zu{"zulu"}
        zxx{"sen kontiudu linguístiku"}
    }
    Languages%short{
        az{"azeri"}
        en_GB{"ingles (R.U.)"}
        en_US{"ingles (S.U.)"}
    }
    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"}
        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"}
        Zsym{"símbulus"}
        Zxxx{"nãu skritu"}
        Zyyy{"komun"}
        Zzzz{"skrita diskonxedu"}
    }
    Scripts%stand-alone{
        Hans{"han simplifikadu"}
        Hant{"han tradisional"}
    }
    Types{
        calendar{
            gregorian{"Kalendáriu Gregorianu"}
        }
        numbers{
            latn{"Númerus Arábikus"}
        }
    }
    Version{"2.1.27.46"}
    codePatterns{
        language{"Lingua: {0}"}
        script{"Skrita: {0}"}
        territory{"Rejiãu: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
