﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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"}
        ak{"akán"}
        am{"amárico"}
        an{"aragonés"}
        ar{"árabe"}
        ar_001{"árabe estándar moderno"}
        arc{"arameo"}
        as{"assamés"}
        ast{"asturiano"}
        ay{"aimará"}
        az{"azerbaiano"}
        be{"bielorruso"}
        bem{"bemba"}
        bg{"búlgaro"}
        bn{"bengalí"}
        bo{"tibetano"}
        br{"bretón"}
        bs{"bosnio"}
        ca{"catalán"}
        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"}
        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"}
        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"}
        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í"}
        mk{"macedonio"}
        ml{"malabar"}
        mn{"mongol"}
        mr{"marathi"}
        ms{"malaio"}
        mt{"maltés"}
        mul{"varias linguas"}
        my{"birmano"}
        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"}
        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"}
        rm{"romanche"}
        rn{"rundi"}
        ro{"romanés"}
        ru{"ruso"}
        rw{"ruandés"}
        sa{"sánscrito"}
        sd{"sindhi"}
        se{"sami do norte"}
        sg{"sango"}
        sh{"serbocroata"}
        si{"cingalés"}
        sk{"eslovaco"}
        sl{"esloveno"}
        sm{"samoano"}
        sn{"shona"}
        so{"somalí"}
        sq{"albanés"}
        sr{"serbio"}
        ss{"swati"}
        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"}
        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.98.76"}
    codePatterns{
        language{"Idioma: {0}"}
        script{"Alfabeto: {0}"}
        territory{"Rexión: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
