﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/es.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/es.xml
 */
es{
    AuxExemplarCharacters{"[à ă â å ä ã ā æ ç è ĕ ê ë ē ì ĭ î ï ī º ò ŏ ô ö ø ō œ ù ŭ û ū ÿ]"}
    ExemplarCharacters{"[a á b c d e é f g h i í j k l m n ñ o ó p q r s t u ú ü v w x y z]"}
    ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤ #,##0.00"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0%"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{"."}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.49.58"}
    calendar{
        buddhist{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d 'de' MMMM 'de' y G",
                "d 'de' MMMM 'de' y G",
                "dd/MM/y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMMd{"d 'de' MMMM"}
                MMMd{"d MMM"}
                MMMdd{"dd-MMM"}
                MMd{"d/MM"}
                Md{"d/M"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                y{"y G"}
                yM{"M/y G"}
                yMEd{"EEE d/M/y G"}
                yMMM{"MMM y G"}
                yMMMEd{"EEE, d MMM y G"}
                yMMMM{"MMMM 'de' y G"}
                yMMMd{"d MMM y G"}
                yMd{"d/M/y G"}
                yQ{"Q y G"}
                yQQQ{"QQQ y G"}
                yyMM{"MM/y G"}
                yyMMM{"MMM-y G"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ 'de' y G"}
                yyyyMM{"MM/y G"}
            }
        }
        gregorian{
            AmPmMarkers{
                "a.m.",
                "p.m.",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d 'de' MMMM 'de' y",
                "d 'de' MMMM 'de' y",
                "dd/MM/yyyy",
                "dd/MM/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMMd{"d 'de' MMMM"}
                MMMd{"d MMM"}
                MMMdd{"dd-MMM"}
                MMd{"d/MM"}
                Md{"d/M"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"EEE d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, d MMM y"}
                yMMMM{"MMMM 'de' y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
                yyMM{"MM/yy"}
                yyMMM{"MMM-yy"}
                yyQ{"Q yy"}
                yyQQQQ{"QQQQ 'de' yy"}
                yyyyMM{"MM/yyyy"}
            }
            dayNames{
                format{
                    abbreviated{
                        "dom",
                        "lun",
                        "mar",
                        "mié",
                        "jue",
                        "vie",
                        "sáb",
                    }
                    wide{
                        "domingo",
                        "lunes",
                        "martes",
                        "miércoles",
                        "jueves",
                        "viernes",
                        "sábado",
                    }
                }
                stand-alone{
                    narrow{
                        "D",
                        "L",
                        "M",
                        "M",
                        "J",
                        "V",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "a.C.",
                    "d.C.",
                }
                wide{
                    "antes de Cristo",
                    "anno Dómini",
                }
            }
            fields{
                day{
                    dn{"día"}
                    relative{
                        "-1"{"ayer"}
                        "-2"{"antes de ayer"}
                        "-3"{"Hace tres días"}
                        "0"{"hoy"}
                        "1"{"mañana"}
                        "2"{"pasado mañana"}
                        "3"{"Dentro de tres días"}
                    }
                }
                dayperiod{
                    dn{"periodo del día"}
                }
                era{
                    dn{"era"}
                }
                hour{
                    dn{"hora"}
                }
                minute{
                    dn{"minuto"}
                }
                month{
                    dn{"mes"}
                }
                second{
                    dn{"segundo"}
                }
                week{
                    dn{"semana"}
                }
                weekday{
                    dn{"día de la semana"}
                }
                year{
                    dn{"año"}
                }
                zone{
                    dn{"zona"}
                }
            }
            intervalFormats{
                Hm{
                    H{"HH:mm – HH:mm"}
                    a{"HH:mm – HH:mm"}
                    m{"HH:mm – HH:mm"}
                }
                Hmv{
                    H{"HH:mm – HH:mm v"}
                    a{"HH:mm – HH:mm v"}
                    m{"HH:mm – HH:mm v"}
                }
                M{
                    M{"M–M"}
                }
                MEd{
                    M{"E d/M – E d/M"}
                    d{"E d/M – E d/M"}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d MMM – E d MMM"}
                }
                MMMM{
                    M{"LLLL–LLLL"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d–d MMM"}
                }
                Md{
                    M{"d/M – d/M"}
                    d{"d/M – d/M"}
                }
                d{
                    d{"d–d"}
                }
                fallback{"{0} – {1}"}
                h{
                    a{"h a – h a"}
                    h{"h–h a"}
                }
                hm{
                    a{"h:mm a – h:mm a"}
                    h{"h:mm – h:mm a"}
                    m{"h:mm – h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                    h{"h:mm – h:mm a v"}
                    m{"h:mm – h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                    h{"h–h a v"}
                }
                y{
                    y{"y–y"}
                }
                yM{
                    M{"M/yy – M/yy"}
                    y{"M/yy – M/yy"}
                }
                yMEd{
                    M{"E d/M/yy – E d/M/yy"}
                    d{"E d/M/yy – E d/M/yy"}
                    y{"E d/M/yy – E d/M/yy"}
                }
                yMMM{
                    M{"MMM–MMM y"}
                    y{"MMM y – MMM y"}
                }
                yMMMEd{
                    M{"E d MMM – E d MMM y"}
                    d{"E d MMM – E d MMM y"}
                    y{"E d MMM y – E d MMM y"}
                }
                yMMMM{
                    M{"MM–MM yyyy"}
                    y{"MM-yyyy – MM-yyyy"}
                }
                yMMMd{
                    M{"d MMM – d MMM y"}
                    d{"d–d MMM y"}
                    y{"d MMM y – d MMM y"}
                }
                yMd{
                    M{"d/M/yy – d/M/yy"}
                    d{"M/d/yy – M/d/yy"}
                    y{"d/M/yy – d/M/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ene",
                        "feb",
                        "mar",
                        "abr",
                        "may",
                        "jun",
                        "jul",
                        "ago",
                        "sep",
                        "oct",
                        "nov",
                        "dic",
                    }
                    wide{
                        "enero",
                        "febrero",
                        "marzo",
                        "abril",
                        "mayo",
                        "junio",
                        "julio",
                        "agosto",
                        "septiembre",
                        "octubre",
                        "noviembre",
                        "diciembre",
                    }
                }
                stand-alone{
                    narrow{
                        "E",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "T1",
                        "T2",
                        "T3",
                        "T4",
                    }
                    wide{
                        "1er trimestre",
                        "2º trimestre",
                        "3er trimestre",
                        "4º trimestre",
                    }
                }
            }
        }
        islamic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d 'de' MMMM 'de' y G",
                "d 'de' MMMM 'de' y G",
                "dd/MM/y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMMd{"d 'de' MMMM"}
                MMMd{"d MMM"}
                MMMdd{"dd-MMM"}
                MMd{"d/MM"}
                Md{"d/M"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                yyMM{"MM/y G"}
                yyMMM{"MMM-y G"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ 'de' y G"}
                yyyy{"y G"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE d/M/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMM{"MMMM 'de' y G"}
                yyyyQ{"Q y G"}
                yyyyQQQ{"QQQ y G"}
            }
        }
        japanese{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d 'de' MMMM 'de' y G",
                "d 'de' MMMM 'de' y G",
                "dd/MM/y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMMd{"d 'de' MMMM"}
                MMMd{"d MMM"}
                MMMdd{"dd-MMM"}
                MMd{"d/MM"}
                Md{"d/M"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                yyMM{"MM/y G"}
                yyMMM{"MMM-y G"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ 'de' y G"}
                yyyy{"y G"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE d/M/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMM{"MMMM 'de' y G"}
                yyyyQ{"Q y G"}
                yyyyQQQ{"QQQ y G"}
            }
        }
        roc{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d 'de' MMMM 'de' y G",
                "d 'de' MMMM 'de' y G",
                "dd/MM/y G",
                "dd/MM/y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMMd{"d 'de' MMMM"}
                MMMd{"d MMM"}
                MMMdd{"dd-MMM"}
                MMd{"d/MM"}
                Md{"d/M"}
                d{"d"}
                h{"hh a"}
                hm{"hh:mm a"}
                hms{"hh:mm:ss a"}
                ms{"mm:ss"}
                yyMM{"MM/y G"}
                yyMMM{"MMM-y G"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ 'de' y G"}
                yyyy{"y G"}
                yyyyM{"M/y G"}
                yyyyMEd{"EEE d/M/y G"}
                yyyyMM{"MM/y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"EEE, d MMM y G"}
                yyyyMMMM{"MMMM 'de' y G"}
                yyyyQ{"Q y G"}
                yyyyQQQ{"QQQ y G"}
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"’"}
        quotationStart{"‘"}
    }
    listPattern{
        standard{
            2{"{0} y {1}"}
            end{"{0} y {1}"}
        }
    }
    measurementSystemNames{
        US{"estadounidense"}
        metric{"métrico"}
    }
    units{
        day{
            one{"{0} día"}
            other{"{0} días"}
        }
        hour{
            one{"{0} hora"}
            other{"{0} horas"}
        }
        minute{
            one{"{0} minuto"}
            other{"{0} minutos"}
        }
        month{
            one{"{0} mes"}
            other{"{0} meses"}
        }
        second{
            one{"{0} segundo"}
            other{"{0} segundos"}
        }
        week{
            one{"{0} semana"}
            other{"{0} semanas"}
        }
        year{
            one{"{0} año"}
            other{"{0} años"}
        }
    }
    unitsShort{
        day{
            one{"{0} día"}
            other{"{0} días"}
        }
        hour{
            one{"{0} h"}
            other{"{0} h"}
        }
        minute{
            one{"{0} min"}
            other{"{0} min"}
        }
        month{
            one{"{0} mes"}
            other{"{0} meses"}
        }
        second{
            one{"{0} s"}
            other{"{0} s"}
        }
        week{
            one{"{0} semana"}
            other{"{0} semanas"}
        }
        year{
            one{"{0} año"}
            other{"{0} años"}
        }
    }
}
