﻿// ***************************************************************************
// *
// * Copyright (C) 2016 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/kea.xml
// *
// ***************************************************************************
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.23.7"}
    codePatterns{
        language{"Lingua: {0}"}
        script{"Skrita: {0}"}
        territory{"Rejiãu: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
