﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/eu.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/eu.xml
 */
eu{
    Keys{
        calendar{"Egutegia"}
        colAlternate{"Egin ez ikusi ikurren ordenari"}
        colBackwards{"Azentuen alderantzizko ordena"}
        colCaseFirst{"Maiuskula/Minuskula ordena"}
        colCaseLevel{"Maiuskulak eta minuskulak bereizten dituen ordena"}
        colHiraganaQuaternary{"Kana ordena"}
        colNormalization{"Araututako ordena"}
        colNumeric{"Zenbakizko ordena"}
        colStrength{"Ordenaren sendotasuna"}
        collation{"Ordenatzeko irizpidea"}
        currency{"Moneta"}
        numbers{"Zenbakiak"}
        timezone{"Ordu-zona"}
        va{"Eskualdeko ezarpenen aldaera"}
        variableTop{"Ordenatu ikur gisa"}
        x{"Erabilera pribatua"}
    }
    Languages{
        ab{"abkhazera"}
        ach{"Acholiera"}
        af{"afrikaansa"}
        agq{"aghemera"}
        ak{"akanera"}
        am{"amharera"}
        ar{"arabiera"}
        ar_001{"arabiera moderno estandarra"}
        arn{"maputxea"}
        as{"assamera"}
        asa{"asua"}
        ay{"aimara"}
        az{"azerbaijanera"}
        ba{"bashkirrera"}
        be{"bielorrusiera"}
        bem{"bembera"}
        bez{"benera"}
        bg{"bulgariera"}
        bm{"bambarera"}
        bn{"bengalera"}
        bo{"tibetera"}
        br{"bretoiera"}
        brx{"bodoera"}
        bs{"bosniera"}
        ca{"katalana"}
        cgg{"chigera"}
        chr{"txerokiera"}
        ckb{"soraniera"}
        co{"korsikera"}
        cs{"txekiera"}
        cy{"galesera"}
        da{"daniera"}
        dav{"taitera"}
        de{"alemana"}
        de_CH{"aleman garaia (Suitza)"}
        dje{"zarmera"}
        dsb{"behe-sorabiera"}
        dua{"dualera"}
        dv{"divehiera"}
        dyo{"fonyi jolera"}
        dz{"dzongkha"}
        ebu{"embua"}
        ee{"eweera"}
        efi{"efikera"}
        el{"greziera"}
        en{"ingelesa"}
        en_US{"ingelesa (AEB)"}
        eo{"esperantoa"}
        es{"espainiera"}
        es_ES{"espainiera (Europa)"}
        et{"estoniera"}
        eu{"euskara"}
        fa{"persiera"}
        fi{"finlandiera"}
        fil{"tagaloga"}
        fj{"fijiera"}
        fo{"faroera"}
        fr{"frantsesa"}
        fy{"frisiera"}
        ga{"gaelikoa"}
        gaa{"Ga"}
        gag{"gagauzera"}
        gd{"eskoziako gaelikoa"}
        gl{"galiziera"}
        gn{"guaraniera"}
        gsw{"alemana (Suitza)"}
        gu{"gujaratera"}
        guz{"gusiiera"}
        gv{"manxera"}
        ha{"hausa"}
        haw{"hawaiiera"}
        he{"hebreera"}
        hi{"hindia"}
        hr{"kroaziera"}
        hsb{"goi-sorabiera"}
        ht{"haitiera"}
        hu{"hungariera"}
        hy{"armeniera"}
        ia{"Interlingua"}
        id{"indonesiera"}
        ie{"interlingue"}
        ig{"igboera"}
        ii{"sichuan yia"}
        is{"islandiera"}
        it{"italiera"}
        iu{"inuitera"}
        ja{"japoniera"}
        jgo{"ngomba"}
        jmc{"machamera"}
        jv{"javera"}
        ka{"georgiera"}
        kab{"kabilera"}
        kam{"kambera"}
        kde{"makondera"}
        kea{"Cabo Verdeko kreola"}
        kg{"Kikongoa"}
        khq{"koyra chiiniera"}
        ki{"kikuyuera"}
        kk{"kazakhera"}
        kl{"kalaallisutera"}
        kln{"kalenjinera"}
        km{"khemerera"}
        kn{"kannadera"}
        ko{"koreera"}
        koi{"komi-permyakera"}
        kok{"konkaniera"}
        ks{"kashmirera"}
        ksb{"shambalera"}
        ksf{"bafiera"}
        ku{"kurduera"}
        kw{"kornubiera"}
        ky{"kirgizera"}
        la{"latina"}
        lag{"langiera"}
        lb{"luxenburgera"}
        lg{"gandera"}
        lkt{"lakotera"}
        ln{"lingala"}
        lo{"laosera"}
        loz{"Loziera"}
        lt{"lituaniera"}
        lu{"luba-katangera"}
        lua{"Luba-lulua"}
        luo{"luoera"}
        luy{"luhyera"}
        lv{"letoniera"}
        mas{"masaiera"}
        mer{"meruera"}
        mfe{"Mauritaniako kreolera"}
        mg{"malagasyera"}
        mgh{"makhuwa-meettoera"}
        mgo{"metera"}
        mi{"maoriera"}
        mk{"mazedoniera"}
        ml{"malayalamera"}
        mn{"mongoliera"}
        moh{"mohawkera"}
        mr{"marathera"}
        ms{"malaysiera"}
        mt{"maltera"}
        mua{"mudangera"}
        mul{"hizkuntza anitzak"}
        my{"burmatarra"}
        naq{"namera"}
        nb{"bokmala (Norvegia)"}
        nd{"iparraldeko ndebeleera"}
        ne{"nepalera"}
        nl{"nederlandera"}
        nl_BE{"flandriera"}
        nmg{"kwasiera"}
        nn{"nynorsk norvegiera"}
        no{"norvegiera"}
        nqo{"n’koera"}
        nso{"pediera"}
        nus{"nuerera"}
        ny{"nyanja"}
        nyn{"ankolera"}
        oc{"Okzitaniera"}
        om{"oromoera"}
        or{"oriyera"}
        os{"osetiera"}
        pa{"punjabera"}
        pl{"poloniera"}
        ps{"paxtuera"}
        pt{"portugesa"}
        pt_PT{"portugesa (Europa)"}
        qu{"quechuera"}
        quc{"k’iche’ra"}
        rm{"erromantxera"}
        rn{"rundiera"}
        ro{"errumaniera"}
        rof{"romboera"}
        ru{"errusiera"}
        rw{"kinyaruanda"}
        rwk{"rwaera"}
        sa{"sanskritoa"}
        saq{"samburuera"}
        sbp{"sanguera"}
        sd{"sindhia"}
        se{"iparraldeko samiera"}
        seh{"senera"}
        ses{"koyraboro sennia"}
        sg{"sangoera"}
        sh{"serbokroaziera"}
        shi{"tachelhita"}
        si{"sinhala"}
        sk{"eslovakiera"}
        sl{"esloveniera"}
        sm{"samoera"}
        sma{"hegoaldeko samiera"}
        smj{"Lule samiera"}
        smn{"Inari samiera"}
        sms{"Skolt samiera"}
        sn{"shonera"}
        so{"somaliera"}
        sq{"albaniera"}
        sr{"serbiera"}
        ss{"swatiera"}
        st{"hegoaldeko sothoera"}
        su{"sundanera"}
        sv{"suediera"}
        sw{"swahili"}
        swc{"Kongoko swahilia"}
        ta{"tamilera"}
        te{"teluguera"}
        teo{"tesoera"}
        tet{"tetuma"}
        tg{"tajikistanera"}
        th{"thailandiera"}
        ti{"tigriñera"}
        tk{"turkmeniera"}
        tl{"tagalog"}
        tlh{"Klingonera"}
        tn{"tswanera"}
        to{"tongera"}
        tpi{"tok pisina"}
        tr{"turkiera"}
        ts{"tsongera"}
        tt{"tatarera"}
        tum{"Tumbukera"}
        tw{"twia"}
        twq{"tasawaqa"}
        ty{"tahitiera"}
        tzm{"Maroko erdialdeko tamazighta"}
        ug{"uigurrera"}
        uk{"ukrainera"}
        und{"hizkuntza ezezaguna"}
        ur{"urdua"}
        uz{"uzbekera"}
        vai{"vaiera"}
        ve{"vendera"}
        vi{"vietnamera"}
        vun{"vunjoa"}
        wo{"wolofera"}
        xh{"xhosera"}
        xog{"sogera"}
        yi{"Jiddisha"}
        yo{"yorubera"}
        zgh{"tamazight estandarra"}
        zh{"txinera"}
        zh_Hans{"txinera soildua"}
        zh_Hant{"txinera tradizionala"}
        zu{"zuluera"}
        zxx{"ez dago eduki linguistikorik"}
    }
    Languages%variant{
        ps{"pashtoera"}
    }
    LanguagesShort{
        az{"azeriera"}
        en_US{"ingelesa (AEB)"}
    }
    Scripts{
        Arab{"arabiarra"}
        Armn{"armeniarra"}
        Beng{"bengaliarra"}
        Bopo{"bopomofoa"}
        Brai{"braillea"}
        Cyrl{"zirilikoa"}
        Deva{"devanagaria"}
        Ethi{"etiopiarra"}
        Geor{"georgiarra"}
        Grek{"greziarra"}
        Gujr{"gujaratera"}
        Guru{"gurmukhia"}
        Hang{"hangula"}
        Hani{"idazkera txinatarra"}
        Hans{"sinplifikatua"}
        Hant{"tradizionala"}
        Hebr{"hebreera"}
        Hira{"hiragana"}
        Jpan{"japoniarra"}
        Kana{"katakana"}
        Khmr{"khemerarra"}
        Knda{"kanadarra"}
        Kore{"korearra"}
        Laoo{"laosarra"}
        Latn{"latina"}
        Mlym{"malayalamera"}
        Mong{"mongoliarra"}
        Mymr{"birmaniarra"}
        Orya{"oriyarra"}
        Sinh{"sinhala"}
        Taml{"tamilarra"}
        Telu{"teluguarra"}
        Thaa{"thaana"}
        Thai{"thailandiarra"}
        Tibt{"tibetarra"}
        Zsym{"ikurrak"}
        Zxxx{"idatzi gabea"}
        Zyyy{"ohikoa"}
        Zzzz{"idazkera ezezaguna"}
    }
    Scripts%stand-alone{
        Hans{"idazkera txinatar sinplifikatua"}
        Hant{"idazkera txinatar tradizionala"}
    }
    Scripts%variant{
        Arab{"persiar-arabiarra"}
    }
    Types{
        calendar{
            buddhist{"Egutegi budista"}
            chinese{"Txinatar egutegia"}
            coptic{"Egutegi coptiarra"}
            dangi{"Dangi egutegia"}
            ethiopic{"Egutegi etiopiarra"}
            ethiopic-amete-alem{"Amete Alem egutegi etiopiarra"}
            gregorian{"Egutegi gregoriarra"}
            hebrew{"Hebrear egutegia"}
            indian{"Indiar egutegia"}
            islamic{"Islamiar egutegia"}
            islamic-civil{"Islamiar egutegi zibila"}
            iso8601{"ISO-8601 egutegia"}
            japanese{"Japoniar egutegia"}
            persian{"Egutegi persiarra"}
            roc{"Txinako Errepublikako egutegia"}
        }
        colAlternate{
            non-ignorable{"Ordenatu ikurrak"}
            shifted{"Ordenatu ikurrei ez ikusi eginda"}
        }
        colBackwards{
            no{"Ordenatu azentuak modu normalean"}
            yes{"Ordenatu azentuak alderantziz"}
        }
        colCaseFirst{
            lower{"Ordenatu minuskulak lehenik"}
            no{"Ordenatu maiuskulak modu normalean"}
            upper{"Ordenatu maiuskulak lehenik"}
        }
        colCaseLevel{
            no{"Ordenatu maiuskulak eta minuskulak bereizi gabe"}
            yes{"Ordenatu maiuskulak eta minuskulak bereizita"}
        }
        colHiraganaQuaternary{
            no{"Ordenatu kanak bereizita"}
            yes{"Ordenatu kanak desberdin"}
        }
        colNormalization{
            no{"Ordenatu arauak kontuan hartu gabe"}
            yes{"Ordenatu Unicode arauen arabera"}
        }
        colNumeric{
            no{"Ordenatu digituak banaka"}
            yes{"Ordenatu digituak zenbakien arabera"}
        }
        colStrength{
            identical{"Ordenatu guztiak"}
            primary{"Ordenatu oinarrizko hizkiak soilik"}
            quaternary{"Ordenatu azentuak / maiuskula eta minuskulak / zabalera / kanak"}
            secondary{"Ordenatu azentuak"}
            tertiary{"Ordenatu azentuak / maiuskula eta minuskulak / zabalera"}
        }
        collation{
            big5han{"Txinera tradizionalaren alfabetoa-Big5"}
            dictionary{"Hurrenkera alfabetikoa"}
            ducet{"Unicode hurrenkera lehenetsia"}
            gb2312han{"Txinera sinplifikatuaren alfabetoa -GB2312"}
            phonebook{"Telefonoen zerrenda"}
            phonetic{"Ordenatzeko irizpide fonetikoa"}
            pinyin{"Pinyin hurrenkera"}
            reformed{"Erreformaren araberako hurrenkera"}
            search{"Bilaketa orokorra"}
            searchjl{"Bilatu hangularen lehen kontsonantearen arabera"}
            standard{"Ordenatzeko irizpide estandarra"}
            stroke{"Tarteen araberako hurrenkera"}
            traditional{"Tradizionala"}
            unihan{"Radical trazuen hurrenkera"}
        }
        numbers{
            arab{"Digitu arabiar-hindikoak"}
            arabext{"Digitu arabiar-hindiko hedatuak"}
            armn{"Zenbaki armeniarrak"}
            armnlow{"Zenbaki armeniarrak minuskulaz"}
            beng{"Digitu bengalarrak"}
            deva{"Digitu devanagariak"}
            ethi{"Zenbaki etiopiarrak"}
            finance{"Finantza-zenbakiak"}
            fullwide{"Zabalera osoko digituak"}
            geor{"Zenbaki georgiarrak"}
            grek{"Zenbaki grekoak"}
            greklow{"Zenbaki grekoak minuskulaz"}
            gujr{"Digitu gujaratarrak"}
            guru{"Digitu gurmukhiak"}
            hanidec{"Zenbaki hamartar txinatarrak"}
            hans{"Zenbaki txinatar sinplifikatuak"}
            hansfin{"Finantzetarako zenbaki txinatar sinplifikatuak"}
            hant{"Zenbaki txinatar tradizionalak"}
            hantfin{"Finantzetarako zenbaki txinatar tradizionalak"}
            hebr{"Zenbaki hebrearrak"}
            jpan{"Zenbaki japoniarrak"}
            jpanfin{"Finantzetarako zenbaki japoniarrak"}
            khmr{"Digitu khmerarrak"}
            knda{"Digitu kannadarrak"}
            laoo{"Digitu laostarrak"}
            latn{"Digitu mendebaldarrak"}
            mlym{"Digitu malayalamarrak"}
            mong{"Digitu mongoliarrak"}
            mymr{"Digitu birmaniarrak"}
            native{"Zenbaki-sistema"}
            orya{"Digitu oriyarrak"}
            roman{"Zenbaki erromatarrak"}
            romanlow{"Zenbaki erromatarrak minuskulaz"}
            taml{"Zenbaki tamilar tradizionalak"}
            tamldec{"Digitu tamilarrak"}
            telu{"Digitu teluguarrak"}
            thai{"Digitu thailandiarrak"}
            tibt{"Digitu tibetarrak"}
            traditional{"Zenbaki tradizionalak"}
            vaii{"Vai digituak"}
        }
    }
    Variants{
        POLYTON{"POLITON"}
        REVISED{"BERRIKUSIA"}
        SAAHO{"SAHO"}
        SCOTLAND{"ESKOZIAR INGELESA"}
        VALENCIA{"VALENTZIERA"}
    }
    Version{"2.1.8.9"}
    codePatterns{
        language{"{0}"}
        script{"{0}"}
        territory{"{0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
