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

es {
    CollationElements { 
	    Version { "1.0" }
		Override { "FALSE" }
		Sequence { "& N < n\u0303, N\u0303 " }
	}
    Countries { 
        ES { "Espa\u00F1a" }
        AR { "Argentina" }
        BO { "Bolivia" }
        CL { "Chile" }
        CO { "Colombia" }
        CR { "Costa Rica" }
        DO { "Rep\u00FAblica Dominicana" }
        EC { "Ecuador" }
        GT { "Guatemala" }
        HN { "Honduras" }
        MX { "M\u00E9xico" }
        NI { "Nicaragua" }
        PA { "Panam\u00E1" }
        PE { "Per\u00FA" }
        PR { "Puerto Rico" }
        PY { "Paraguay" }
        SV { "El SalvadorUY" }
        UY { "Uruguay" }
        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",
    }
    Languages { 
        es { "espa\u00F1ol" }
    }
    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",
        }
    }
}
