// *******************************************************************************
// *
// *   Copyright (C) 1997-2000, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

es {
    Version { "1.0" }
    CollationElements { 
        Version { "1.0" }
        Override { "FALSE" }
        Sequence { "& N < n\u0303, N\u0303 " }
    }
    Countries { 
        AR { "Argentina" }
        BO { "Bolivia" }
        BE { "B\u00E9lgica" }
        BR { "Brasil" }
        CA { "Canad\u00E1" }
        CH { "Suiza" }
        CL { "Chile" }
        CO { "Colombia" }
        CR { "Costa Rica" }
        DE { "Alemania" }
        DK { "Dinamarca" }
        DO { "Rep\u00FAblica Dominicana" }
        DZ { "Argelia" }
        EC { "Ecuador" }
        EG { "Egipto" }
        ES { "Espa\u00F1a" }
        FI { "Finlandia" }
        FR { "Francia" }
        GB { "Reino Unido" }
        GL { "Groenlanida" }
        GR { "Grecia" }
        GT { "Guatemala" }
        HN { "Honduras" }
        HU { "Hungr\u00EDa" }
        IE { "Irelanda" }
        IT { "Italia" }
        IQ { "Irak" }
        IR { "Ir\u00E1n" }
        JP { "Jap\u00F3n" }
        JO { "Jordania" }
        KE { "Kenia" }
        KP { "Corea del Norte" }
        KR { "Corea del Sur" }
        LB { "L\u00EDbano" }
        MA { "Marruecos" }
        MX { "M\u00E9xico" }
        NI { "Nicaragua" }
        NL { "Pa\u00EDses Bajos" }
        NO { "Noruega" }
        NZ { "Nueva Zelanda" }
        PA { "Panam\u00E1" }
        PE { "Per\u00FA" }
        PH { "Islas Filipinas" }
        PL { "Polonia" }
        PR { "Puerto Rico" }
        PY { "Paraguay" }
        RU { "Rusia" }
        SD { "Sud\u00E1n" }
        SE { "Suecia" }
        SG { "Singapur" }
        SV { "El Salvador" }
        SY { "Siria" }
        TH { "Tailandia" }
        TN { "T\u00FAnez" }
        TR { "Turqu\u00EDa" }
        TW { "Taiw\u00E1n" }
        UY { "Uruguay" }
        US { "Estados Unidos" }
        VE { "Venezuela" }
    }
    DateTimeElements { 
            "2",
            "1",
    }
    DateTimePatterns { 
            "HH'H'mm'' z",
            "H:mm:ss z",
            "H:mm:ss",
            "H:mm",
            "EEEE d' de 'MMMM' de 'yyyy",
            "d' de 'MMMM' de 'yyyy",
            "dd-MMM-yy",
            "d/MM/yy",
            "{1} {0}",
    }
    DayAbbreviations { 
            "dom",
            "lun",
            "mar",
            "mi\u00E9",
            "jue",
            "vie",
            "s\u00E1b",
    }
    DayNames { 
            "domingo",
            "lunes",
            "martes",
            "mi\u00E9rcoles",
            "jueves",
            "viernes",
            "s\u00E1bado",
    }
    Eras { 
            "a.C.",  // Said to be a.C. for antes de Cristo
            "d.C.",  // Said to be d.C. for despu\u00E9s de Cristo
    }
    Languages { 
        ar { "ar\u00E1bigo" }
        bg { "b\u00FAlgaro" }
        cs { "checo" }
        da { "dan\u00E1s" }
        de { "alem\u00E1n" }
        el { "griego" }
        en { "ingl\u00E9s" }
        es { "espa\u00F1ol" }
        ga { "irland\u00E9s" }
        fr { "franc\u00E9s" }
        fi { "finland\u00E9s" }
        he { "hebreo" }
        hr { "croata" }
        hu { "h\u00FAngaro" }
        it { "italiano" }
        ja { "japon\u00E9s" }
        ko { "coreano" }
        nl { "holand\u00E9s" }
        no { "noruego" }
        pl { "polaco" }
        pt { "portugu\u00E9s" }
        ru { "ruso" }
        sk { "eslovaco" }
        sq { "alban\u00E9s" }
        sr { "servio" }
        sv { "sueco" }
        th { "tailand\u00E9s" }
        tr { "turco" }
        vi { "vietnam\u00E9s" }
        zh { "chino" }
        zu { "zul\u00FA" }
    }
    LocaleID { "0a" }
    LocaleString { "es" }
    MonthAbbreviations { 
            "ene",
            "feb",
            "mar",
            "abr",
            "may",
            "jun",
            "jul",
            "ago",
            "sep",
            "oct",
            "nov",
            "dic",
            "",
    }
    MonthNames { 
            "enero",
            "febrero",
            "marzo",
            "abril",
            "mayo",
            "junio",
            "julio",
            "agosto",
            "septiembre",
            "octubre",
            "noviembre",
            "diciembre",
            "",
    }
    NumberElements { 
            ",",
            ".",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    NumberPatterns { 
            "#,##0.###;-#,##0.###",
            "\u00A4#,##0.00;(\u00A4#,##0.00)",
            "#,##0%",
    }
    ShortLanguage { "spa" }
    localPatternChars { "GuMtkHmsSEDFwWahKzUe" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
