﻿// © 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{"abkaziu"}
        af{"afrikaner"}
        agq{"aghem"}
        ak{"akan"}
        am{"amariku"}
        ar{"arabi"}
        ar_001{"arabi 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{"frisiu osidental"}
        ga{"irlandes"}
        gag{"gagauz"}
        gl{"galegu"}
        gn{"guarani"}
        gsw{"alimãu di Suisa"}
        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{"masedoniu"}
        ml{"malaialam"}
        mr{"marati"}
        ms{"malaiu"}
        mt{"maltes"}
        my{"birmanes"}
        nb{"norueges bokmål"}
        ne{"nepales"}
        nl{"olandes"}
        nl_BE{"flamengu"}
        nmg{"kuazio"}
        nn{"norueges nynorsk"}
        om{"oromo"}
        or{"oriya"}
        pa{"pandjabi"}
        pl{"pulaku"}
        ps{"paxto"}
        pt{"purtuges"}
        pt_BR{"purtuges brazileru"}
        pt_PT{"purtuges europeu"}
        qu{"kexua"}
        quc{"kitxe"}
        rm{"romanxi"}
        ro{"rumenu"}
        ru{"rusu"}
        rw{"kiniaruanda"}
        sa{"sanskritu"}
        sd{"sindi"}
        ses{"koiraboro seni"}
        si{"singales"}
        sk{"slovaku"}
        sl{"sloveniu"}
        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{"tajik"}
        th{"tailandes"}
        ti{"tigrinia"}
        tk{"turkmenu"}
        to{"tonganes"}
        tr{"turku"}
        tt{"tatar"}
        tzm{"tamazait di Atlas Sentral"}
        ug{"uigur"}
        uk{"ukranianu"}
        und{"lingua 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{"sem konteudo linguistiku"}
    }
    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{"angul"}
        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{"simbulus"}
        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.25.97"}
    codePatterns{
        language{"Lingua: {0}"}
        script{"Skrita: {0}"}
        territory{"Rejiãu: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
