﻿// ***************************************************************************
// *
// * Copyright (C) 2016 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"}
        sw_CD{"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.23.76"}
    codePatterns{
        language{"Idioma: {0}"}
        script{"Alfabeto: {0}"}
        territory{"Rexión: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
