﻿// ***************************************************************************
// *
// * Copyright (C) 2015 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"}
        swc{"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.19.74"}
    codePatterns{
        language{"Lingua: {0}"}
        script{"Skrita: {0}"}
        territory{"Rejiãu: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
