﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/gl.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <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"}
        numbers{"Números"}
        timezone{"Fuso horario"}
        va{"Variante local"}
        variableTop{"Clasificar como símbolos"}
        x{"Uso privado"}
    }
    Languages{
        ab{"abkhazo"}
        ach{"acoli"}
        af{"afrikaans"}
        afa{"lingua afro-asiática"}
        ak{"akán"}
        alg{"lingua algonquina"}
        am{"amárico"}
        an{"aragonés"}
        apa{"lingua apache"}
        ar{"árabe"}
        ar_001{"árabe estándar moderno"}
        arc{"arameo"}
        art{"lingua artificial"}
        as{"assamés"}
        ast{"asturiano"}
        aus{"lingua australiana"}
        ay{"aimará"}
        az{"azerbaiano"}
        bat{"lingua báltica"}
        be{"bielorruso"}
        bem{"bemba"}
        bg{"búlgaro"}
        bh{"bihari"}
        bn{"bengalí"}
        bo{"tibetano"}
        br{"bretón"}
        bs{"bosnio"}
        ca{"catalán"}
        cai{"lingua india centroamericana"}
        cau{"lingua caucásica"}
        cel{"lingua céltica"}
        chr{"cheroqui"}
        ckb{"curdo soraní"}
        co{"corso"}
        cs{"checo"}
        cu{"eslavo eclesiástico"}
        cy{"galés"}
        da{"dinamarqués"}
        de{"alemán"}
        de_AT{"alemán de austria"}
        de_CH{"alto alemán suízo"}
        dv{"divehi"}
        dz{"dzongkha"}
        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"}
        fiu{"lingua finno-úgrica"}
        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"}
        gd{"gaélico escocés"}
        gem{"lingua xermánica"}
        gl{"galego"}
        gn{"guaraní"}
        grc{"grego antigo"}
        gsw{"alemán suízo"}
        gu{"guxaratiano"}
        ha{"hausa"}
        haw{"hawaiano"}
        he{"hebreo"}
        hi{"hindi"}
        hr{"croata"}
        ht{"haitiano"}
        hu{"húngaro"}
        hy{"armenio"}
        ia{"interlingua"}
        id{"indonesio"}
        ig{"ibo"}
        inc{"lingua índica"}
        ine{"lingua indoeuropea"}
        is{"islandés"}
        it{"italiano"}
        ja{"xaponés"}
        jv{"xavanés"}
        ka{"xeorxiano"}
        kg{"kongo"}
        kk{"casaco"}
        km{"cambodiano"}
        kn{"kannada"}
        ko{"coreano"}
        ks{"cachemir"}
        ku{"kurdo"}
        ky{"quirguiz"}
        la{"latín"}
        lb{"luxemburgués"}
        lg{"ganda"}
        ln{"lingala"}
        lo{"laotiano"}
        loz{"lozi"}
        lt{"lituano"}
        lua{"luba-lulua"}
        lv{"letón"}
        mfe{"crioulo mauritano"}
        mg{"malgaxe"}
        mi{"maorí"}
        mis{"lingua miscelánea"}
        mk{"macedonio"}
        ml{"malabar"}
        mn{"mongol"}
        mr{"marathi"}
        ms{"malaio"}
        mt{"maltés"}
        mul{"varias linguas"}
        my{"birmano"}
        nai{"lingua india norteamericana"}
        nb{"noruegués bokmal"}
        nd{"ndebele do norte"}
        ne{"nepalí"}
        nl{"holandés"}
        nl_BE{"flamenco"}
        nn{"noruegués nynorsk"}
        no{"noruegués"}
        nso{"sesotho sa leboa"}
        nub{"lingua nubia"}
        ny{"chewa"}
        nyn{"nyankole"}
        oc{"occitano"}
        om{"oromo"}
        or{"oriya"}
        os{"osetio"}
        pa{"punjabi"}
        phi{"lingua filipina"}
        pl{"polaco"}
        ps{"paxtún"}
        pt{"portugués"}
        pt_BR{"portugués brasileiro"}
        pt_PT{"portugués europeo"}
        qu{"quechua"}
        rm{"romanche"}
        rn{"rundi"}
        ro{"romanés"}
        roa{"lingua románica"}
        ru{"ruso"}
        rw{"ruandés"}
        sa{"sánscrito"}
        sai{"lingua india sudamericana"}
        sd{"sindhi"}
        se{"sami do norte"}
        sem{"lingua semita"}
        sg{"sango"}
        sgn{"lingua de signos"}
        sh{"serbocroata"}
        si{"cingalés"}
        sk{"eslovaco"}
        sl{"esloveno"}
        sla{"lingua eslávica"}
        sm{"samoano"}
        sn{"shona"}
        so{"somalí"}
        sq{"albanés"}
        sr{"serbio"}
        ss{"swati"}
        ssa{"lingua do nilo-sáhara"}
        st{"sesoto"}
        su{"sondanés"}
        sv{"sueco"}
        sw{"swahili"}
        ta{"tamil"}
        te{"telugu"}
        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"}
        tut{"lingua altaica"}
        ty{"tahitiano"}
        ug{"uigur"}
        uk{"ucraíno"}
        und{"lingua descoñecida ou non válida"}
        ur{"urdú"}
        uz{"uzbeco"}
        ve{"venda"}
        vi{"vietnamita"}
        wo{"wólof"}
        xh{"xhosa"}
        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"}
    }
    LanguagesShort{
        az{"acerbaixano"}
        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{"Guxarati"}
        Guru{"Gurmukhi"}
        Hang{"Hangul"}
        Hani{"Han"}
        Hans{"Simplificado"}
        Hant{"Tradicional"}
        Hebr{"Hebreo"}
        Hira{"Hiragana"}
        Jpan{"Xaponés"}
        Kana{"Katakana"}
        Khmr{"Camboxano"}
        Knda{"Kannadé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"}
    }
    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,"}
            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"}
        }
        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.0.92.87"}
    codePatterns{
        language{"Idioma: {0}"}
        script{"Alfabeto: {0}"}
        territory{"Rexión: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
