﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/gl.xml
// *
// ***************************************************************************
gl{
    Keys{
        calendar{"Calendario"}
        colAlternate{"Ignorar clasificación de símbolos"}
        colBackwards{"Clasificación de acentos invertida"}
        colCaseFirst{"Orde de maiúsculas/minúsculas"}
        colCaseLevel{"Clasificación que distingue entre maiúsculas e minúsculas"}
        colHiraganaQuaternary{"Clasificación Kana"}
        colNormalization{"Clasificación normalizada"}
        colNumeric{"Clasificación numérica"}
        colStrength{"Forza de clasificación"}
        collation{"Orde de clasificación"}
        currency{"Moeda"}
        hc{"Ciclo horario (12 vs. 24)"}
        lb{"Estilo de quebra de liña"}
        ms{"Sistema de unidades"}
        numbers{"Números"}
        timezone{"Fuso horario"}
        va{"Variante local"}
        variableTop{"Clasificar como símbolos"}
        x{"Uso privado"}
    }
    Languages{
        ab{"abkhazo"}
        ach{"acoli"}
        af{"afrikaans"}
        agq{"agq"}
        ak{"akán"}
        am{"amárico"}
        an{"aragonés"}
        ar{"árabe"}
        ar_001{"árabe estándar moderno"}
        arc{"arameo"}
        arn{"mapuche"}
        as{"assamés"}
        asa{"asu"}
        ast{"asturiano"}
        ay{"aimará"}
        az{"acerbaixano"}
        ba{"baskir"}
        be{"bielorruso"}
        bem{"bemba"}
        bez{"bez"}
        bg{"búlgaro"}
        bgn{"Baluchi occidental"}
        bm{"bm"}
        bn{"bengalí"}
        bo{"tibetano"}
        br{"bretón"}
        brx{"brx"}
        bs{"bosnio"}
        ca{"catalán"}
        ce{"Checheno"}
        cgg{"kiga"}
        chr{"cheroqui"}
        ckb{"curdo soraní"}
        co{"corso"}
        cs{"checo"}
        cu{"eslavo eclesiástico"}
        cv{"Chuvash"}
        cy{"galés"}
        da{"dinamarqués"}
        dav{"taita"}
        de{"alemán"}
        de_AT{"alemán de austria"}
        de_CH{"alto alemán suízo"}
        dje{"zarma"}
        dsb{"dsb"}
        dua{"duala"}
        dv{"divehi"}
        dyo{"jola-fonyi"}
        dz{"dzongkha"}
        ebu{"embu"}
        ee{"ewé"}
        efi{"ibibio"}
        egy{"exipcio antigo"}
        el{"grego"}
        en{"inglés"}
        en_AU{"inglés australiano"}
        en_CA{"inglés canadiano"}
        en_GB{"inglés británico"}
        en_US{"inglés dos Estados Unidos"}
        eo{"esperanto"}
        es{"español"}
        es_419{"español latinoamericano"}
        es_ES{"castelán"}
        es_MX{"español de México"}
        et{"estoniano"}
        eu{"éuscaro"}
        fa{"persa"}
        fi{"finés"}
        fil{"filipino"}
        fj{"fixiano"}
        fo{"faroés"}
        fr{"francés"}
        fr_CA{"francés canadiano"}
        fr_CH{"francés suízo"}
        fy{"frisón"}
        ga{"irlandés"}
        gaa{"ga"}
        gag{"gagauz"}
        gd{"gaélico escocés"}
        gl{"galego"}
        gn{"guaraní"}
        grc{"grego antigo"}
        gsw{"alemán suízo"}
        gu{"guxaratiano"}
        guz{"gusii"}
        gv{"manx"}
        ha{"hausa"}
        haw{"hawaiano"}
        he{"hebreo"}
        hi{"hindi"}
        hr{"croata"}
        hsb{"hsb"}
        ht{"haitiano"}
        hu{"húngaro"}
        hy{"armenio"}
        ia{"interlingua"}
        id{"indonesio"}
        ig{"ibo"}
        ii{"yi sichuanés"}
        is{"islandés"}
        it{"italiano"}
        iu{"iu"}
        ja{"xaponés"}
        jgo{"ngomba"}
        jmc{"mapache"}
        jv{"xavanés"}
        ka{"xeorxiano"}
        kab{"kabile"}
        kam{"kamba"}
        kde{"makonde"}
        kea{"caboverdiano"}
        kg{"kongo"}
        khq{"koyra Chiini"}
        ki{"kikuyu"}
        kk{"casaco"}
        kl{"kl"}
        kln{"kln"}
        km{"cambodiano"}
        kn{"kannada"}
        ko{"coreano"}
        koi{"komi permio"}
        kok{"konkani"}
        ks{"cachemir"}
        ksb{"shambala"}
        ksf{"bafia"}
        ku{"kurdo"}
        kw{"kw"}
        ky{"quirguiz"}
        la{"latín"}
        lag{"Langi"}
        lb{"luxemburgués"}
        lg{"ganda"}
        lkt{"Lakota"}
        ln{"lingala"}
        lo{"laotiano"}
        loz{"lozi"}
        lrc{"Lurí do norte"}
        lt{"lituano"}
        lu{"luba-Katanga"}
        lua{"luba-lulua"}
        luo{"luo"}
        luy{"luyia"}
        lv{"letón"}
        mas{"masai"}
        mer{"meru"}
        mfe{"crioulo mauritano"}
        mg{"malgaxe"}
        mgh{"mgh"}
        mgo{"mgo"}
        mi{"maorí"}
        mk{"macedonio"}
        ml{"malabar"}
        mn{"mongol"}
        moh{"mohawk"}
        mr{"marathi"}
        ms{"malaio"}
        mt{"maltés"}
        mua{"mundang"}
        mul{"varias linguas"}
        my{"birmano"}
        mzn{"Mazandaraní"}
        naq{"naq"}
        nb{"noruegués bokmal"}
        nd{"ndebele do norte"}
        nds{"Baixo alemán"}
        nds_NL{"Baixo saxón"}
        ne{"nepalí"}
        nl{"holandés"}
        nl_BE{"flamenco"}
        nmg{"nmg"}
        nn{"noruegués nynorsk"}
        no{"noruegués"}
        nqo{"nqo"}
        nso{"sesotho sa leboa"}
        nus{"nus"}
        ny{"chewa"}
        nyn{"nyankole"}
        oc{"occitano"}
        om{"oromo"}
        or{"oriya"}
        os{"osetio"}
        pa{"punjabi"}
        pl{"polaco"}
        ps{"paxtún"}
        pt{"portugués"}
        pt_BR{"portugués brasileiro"}
        pt_PT{"portugués europeo"}
        qu{"quechua"}
        quc{"quiché"}
        rm{"romanche"}
        rn{"rundi"}
        ro{"romanés"}
        rof{"rombo"}
        ru{"ruso"}
        rw{"ruandés"}
        rwk{"rwk"}
        sa{"sánscrito"}
        saq{"saq"}
        sbp{"sbp"}
        sd{"sindhi"}
        sdh{"Kurdo meridional"}
        se{"sami do norte"}
        seh{"sena"}
        ses{"ses"}
        sg{"sango"}
        sh{"serbocroata"}
        shi{"tachelhit"}
        si{"cingalés"}
        sk{"eslovaco"}
        sl{"esloveno"}
        sm{"samoano"}
        sma{"sma"}
        smj{"smj"}
        smn{"smn"}
        sms{"sms"}
        sn{"shona"}
        so{"somalí"}
        sq{"albanés"}
        sr{"serbio"}
        ss{"swati"}
        st{"sesoto"}
        su{"sondanés"}
        sv{"sueco"}
        sw{"swahili"}
        swc{"swc"}
        ta{"tamil"}
        te{"telugu"}
        teo{"teso"}
        tet{"tetún"}
        tg{"taxico"}
        th{"tailandés"}
        ti{"tigriña"}
        tk{"turcomano"}
        tl{"tagalo"}
        tlh{"klingon"}
        tn{"tswana"}
        to{"tonganés"}
        tpi{"tok pisin"}
        tr{"turco"}
        ts{"xitsonga"}
        tt{"tártaro"}
        tum{"tumbuka"}
        twq{"twq"}
        ty{"tahitiano"}
        tzm{"tzm"}
        ug{"uigur"}
        uk{"ucraíno"}
        und{"Lingua descoñecida"}
        ur{"urdú"}
        uz{"uzbeco"}
        vai{"vai"}
        ve{"venda"}
        vi{"vietnamita"}
        vun{"vunjo"}
        wbp{"Warlpiri"}
        wo{"wólof"}
        xh{"xhosa"}
        xog{"soga"}
        yi{"yiddish"}
        yo{"ioruba"}
        zgh{"tamazight de Marrocos estándar"}
        zh{"chinés"}
        zh_Hans{"chinés simplificado"}
        zh_Hant{"chinés tradicional"}
        zu{"zulú"}
        zxx{"sen contido lingüístico"}
    }
    Languages%short{
        az{"azerí"}
        en_GB{"inglés R.U."}
        en_US{"inglés EUA"}
    }
    Scripts{
        Arab{"Árabe"}
        Armn{"Armenio"}
        Beng{"Bengalí"}
        Bopo{"Bopomofo"}
        Brai{"Braille"}
        Cans{"Silabario aborixe canadiano unificado"}
        Cyrl{"Cirílico"}
        Deva{"Devanagari"}
        Ethi{"Etíope"}
        Geor{"Xeorxiano"}
        Grek{"Grego"}
        Gujr{"guxaratí"}
        Guru{"Gurmukhi"}
        Hang{"Hangul"}
        Hani{"Han"}
        Hans{"Simplificado"}
        Hant{"Tradicional"}
        Hebr{"Hebreo"}
        Hira{"Hiragana"}
        Jpan{"Xaponés"}
        Kana{"Katakana"}
        Khmr{"Camboxano"}
        Knda{"canarés"}
        Kore{"Coreano"}
        Laoo{"Laosiano"}
        Latn{"Latino"}
        Mlym{"Malabar"}
        Mong{"Mongol"}
        Mymr{"Birmania"}
        Orya{"Oriya"}
        Sinh{"Cingalés"}
        Taml{"Támil"}
        Telu{"Telugú"}
        Thaa{"Thaana"}
        Thai{"Tailandés"}
        Tibt{"Tibetano"}
        Zsym{"Símbolos"}
        Zxxx{"Non escrita"}
        Zyyy{"Común"}
        Zzzz{"Escritura descoñecida"}
    }
    Scripts%stand-alone{
        Hans{"Han simplificado"}
        Hant{"Han tradicional"}
    }
    Scripts%variant{
        Arab{"perso-árabe"}
    }
    Types{
        calendar{
            buddhist{"Calendario budista"}
            chinese{"Calendario chinés"}
            coptic{"Calendario cóptico"}
            dangi{"Calendario dangi"}
            ethiopic{"Calendario etíope"}
            ethiopic-amete-alem{"Calendario Amete Alem etíope"}
            gregorian{"Calendario gregoriano"}
            hebrew{"Calendario hebreo"}
            indian{"Calendario nacional indio"}
            islamic{"Calendario islámico"}
            islamic-civil{"Calendario islámico (civil, tabular)"}
            islamic-rgsa{"Calendario islámico (Arabia Saudita,"}
            iso8601{"Calendario ISO-8601"}
            japanese{"Calendario xaponés"}
            persian{"Calendario persa"}
            roc{"Calendario Minguo"}
        }
        colAlternate{
            non-ignorable{"Clasificar símbolos"}
            shifted{"Clasificar ignorando símbolos"}
        }
        colBackwards{
            no{"Clasificar acentos con normalidade"}
            yes{"Clasificar acentos invertidos"}
        }
        colCaseFirst{
            lower{"Clasificar primeiro as minúsculas"}
            no{"Clasificar orde de maiúsculas e minúsculas normal"}
            upper{"Clasificar primeiro as maiúsculas"}
        }
        colCaseLevel{
            no{"Clasificar sen distinguir entre maiúsculas e minúsculas"}
            yes{"Clasificar distinguindo entre maiúsculas e minúsculas"}
        }
        colHiraganaQuaternary{
            no{"Clasificar Kana por separado"}
            yes{"Clasificar Kana de modo diferente"}
        }
        colNormalization{
            no{"Clasificar sen normalización"}
            yes{"Clasificar Unicode normalizado"}
        }
        colNumeric{
            no{"Clasificar díxitos individualmente"}
            yes{"Clasificar díxitos numericamente"}
        }
        colStrength{
            identical{"Clasificar todo"}
            primary{"Clasificar só letras de base"}
            quaternary{"Clasificar acentos/maiúsculas e minúsculas/ancho/kana"}
            secondary{"Clasificar acentos"}
            tertiary{"Clasificar acentos/maiúsculas e minúsculas/ancho"}
        }
        collation{
            big5han{"Orde de clasificación chinesa tradicional - Big5"}
            dictionary{"Criterio de ordenación do dicionario"}
            ducet{"Criterio de ordenación Unicode predeterminado"}
            gb2312han{"orde de clasifcación chinesa simplificada - GB2312"}
            phonebook{"orde de clasificación da guía telefónica"}
            phonetic{"Orde de clasificación fonética"}
            pinyin{"Orde de clasificación pinyin"}
            reformed{"Criterio de ordenación reformado"}
            search{"Busca de uso xeral"}
            searchjl{"Clasificar por consonante inicial hangul"}
            standard{"Criterio de ordenación estándar"}
            stroke{"Orde de clasificación polo número de trazos"}
            traditional{"Orde de clasificación tradicional"}
            unihan{"Criterio de ordenación radical-trazo"}
        }
        hc{
            h11{"Sistema de 12 horas (0–11)"}
            h12{"Sistema de 12 horas (1–12)"}
            h23{"Sistema de 24 horas (0–23)"}
            h24{"Sistema de 24 horas (1–24)"}
        }
        lb{
            loose{"Estilo de quebra de liña separada"}
            normal{"Estilo de quebra de liña normal"}
            strict{"Estilo de quebra de liña estrita"}
        }
        ms{
            metric{"Sistema métrico"}
            uksystem{"Sistema imperial de unidades"}
            ussystem{"Sistema de unidades dos EUA"}
        }
        numbers{
            arab{"Díxitos do árabe oriental"}
            arabext{"Díxitos arábicos orientais"}
            armn{"Números armenios"}
            armnlow{"Números armenios en minúscula"}
            beng{"Díxitos bengalís"}
            deva{"Díxitos devanagari"}
            ethi{"Números etíopes"}
            finance{"Números financeiros"}
            fullwide{"Díxitos de ancho completo"}
            geor{"Números xeorxianos"}
            grek{"Números gregos"}
            greklow{"Números gregos en minúscula"}
            gujr{"Díxitos guxarati"}
            guru{"Díxitos do gurmukhi"}
            hanidec{"Números decimais chineses"}
            hans{"Números chineses simplificados"}
            hansfin{"Números financeiros chineses simplificados"}
            hant{"Números do chinés tradicional"}
            hantfin{"Números financeiros do chinés tradicional"}
            hebr{"Números hebreos"}
            jpan{"Números xaponeses"}
            jpanfin{"Números financeiros xaponeses"}
            khmr{"Díxitos do camboxano"}
            knda{"Díxitos do kannadés"}
            laoo{"Díxitos laosianos"}
            latn{"Díxitos occidentais"}
            mlym{"Díxitos malabares"}
            mong{"Díxitos mongoles"}
            mymr{"Díxitos birmanos"}
            native{"Díxitos orixinais"}
            orya{"Díxitos oriya"}
            roman{"Números romanos"}
            romanlow{"Números romanos en minúsculas"}
            taml{"Números támil"}
            tamldec{"Díxitos do támil"}
            telu{"Díxitos do telugú"}
            thai{"Díxitos tailandeses"}
            tibt{"Díxitos tibetanos"}
            traditional{"Numeros tradicionais"}
            vaii{"Díxitos Vai"}
        }
    }
    Version{"2.1.19.94"}
    codePatterns{
        language{"Idioma: {0}"}
        script{"Alfabeto: {0}"}
        territory{"Rexión: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
