﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/es_419.xml
// *
// ***************************************************************************
es_419{
    NumberElements{
        latn{
            miscPatterns{
                atLeast{"más de {0}"}
            }
            patterns{
                currencyFormat{"¤#,##0.00"}
            }
            patternsShort{
                decimalFormat{
                    1000{
                        one{"0"}
                        other{"0"}
                    }
                    10000{
                        one{"00k"}
                        other{"00k"}
                    }
                    100000{
                        one{"000k"}
                        other{"000k"}
                    }
                    1000000{
                        one{"0 M"}
                        other{"0 M"}
                    }
                    10000000{
                        one{"00 M"}
                        other{"00 M"}
                    }
                    100000000{
                        one{"000 M"}
                        other{"000 M"}
                    }
                    1000000000{
                        one{"0k M"}
                        other{"0k M"}
                    }
                    10000000000{
                        one{"00k M"}
                        other{"00k M"}
                    }
                    100000000000{
                        one{"000k M"}
                        other{"000k M"}
                    }
                    1000000000000{
                        one{"0 B"}
                        other{"0 B"}
                    }
                    10000000000000{
                        one{"00 B"}
                        other{"00 B"}
                    }
                    100000000000000{
                        one{"000 B"}
                        other{"000 B"}
                    }
                }
            }
            symbols{
                decimal{"."}
                group{","}
            }
        }
    }
    Version{"2.1.8.19"}
    calendar{
        generic{
            availableFormats{
                GyMMM{"MMM 'de' y G"}
                GyMMMd{"d 'de' MMM 'de' y G"}
                MMMEd{"E, d 'de' MMM"}
                MMMd{"d 'de' MMM"}
                yMEd{"E d/M/y G"}
            }
            intervalFormats{
                yM{
                    M{"M/y–M/y GGGGG"}
                    y{"M/y–M/y GGGGG"}
                }
                yMEd{
                    M{"E, d/M/y–E, d/M/y GGGGG"}
                    d{"E, d/M/y–E, d/M/y GGGGG"}
                    y{"E, d/M/y–E, d/M/y GGGGG"}
                }
                yMd{
                    M{"d/M/y–d/M/y GGGGG"}
                    d{"d/M/y–d/M/y GGGGG"}
                    y{"d/M/y–d/M/y GGGGG"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "a. m.",
                "p. m.",
            }
            AmPmMarkersNarrow{
                "a. m.",
                "p. m.",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d 'de' MMMM 'de' y",
                "d 'de' MMMM 'de' y",
                "d 'de' MMM 'de' y",
                "d/M/yy",
                "{1} {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EHm{"E, HH:mm"}
                EHms{"E, HH:mm:ss"}
                GyMMMd{"d 'de' MMM 'de' y G"}
                H{"HH"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                MMMdd{"dd-MMM"}
                yMEd{"E d/M/y"}
                yMMMEd{"E, d 'de' MMM 'de' y"}
                yQQQ{"QQQ 'de' y"}
            }
            dayNames{
                format{
                    narrow{
                        "d",
                        "l",
                        "m",
                        "m",
                        "j",
                        "v",
                        "s",
                    }
                    short{
                        "dom.",
                        "lun.",
                        "mar.",
                        "mié.",
                        "jue.",
                        "vie.",
                        "sáb.",
                    }
                }
                stand-alone{
                    narrow{
                        "D",
                        "L",
                        "M",
                        "M",
                        "J",
                        "V",
                        "S",
                    }
                    short{
                        "Dom.",
                        "Lun.",
                        "Mar.",
                        "Mié.",
                        "Jue.",
                        "Vie.",
                        "Sáb.",
                    }
                }
            }
            eras{
                wide{
                    "antes de Cristo",
                    "después de Cristo",
                }
                wide%variant{
                    "antes de la era común",
                    "era común",
                }
            }
            intervalFormats{
                H{
                    H{"HH-HH"}
                }
                Hm{
                    H{"HH:mm–HH:mm"}
                    m{"HH:mm–HH:mm"}
                }
                Hmv{
                    H{"HH:mm–HH:mm v"}
                    m{"HH:mm–HH:mm v"}
                }
                Hv{
                    H{"HH–HH v"}
                }
                MMMEd{
                    M{"E, d 'de' MMM-E, d 'de' MMM"}
                    d{"E, d 'de' MMM-E, d 'de' MMM"}
                }
                MMMd{
                    M{"d 'de' MMM-d 'de' MMM"}
                    d{"d-d 'de' MMM"}
                }
                hm{
                    a{"h:mm a–h:mm a"}
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                yMMM{
                    y{"MMM 'de' y-MMM 'de' y"}
                }
                yMMMEd{
                    M{"E, d 'de' MMM–E, d 'de' MMM 'de' y"}
                    d{"E, d 'de' MMM–E, d 'de' MMM 'de' y"}
                    y{"E, d 'de' MMM 'de' y–E, d 'de' MMM 'de' y"}
                }
                yMMMd{
                    M{"d 'de' MMM–d 'de' MMM 'de' y"}
                    d{"d-d 'de' MMM 'de' y"}
                    y{"d 'de' MMM 'de' y–d 'de' MMM 'de' y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ene.",
                        "feb.",
                        "mar.",
                        "abr.",
                        "may.",
                        "jun.",
                        "jul.",
                        "ago.",
                        "set.",
                        "oct.",
                        "nov.",
                        "dic.",
                    }
                    narrow{
                        "e",
                        "f",
                        "m",
                        "a",
                        "m",
                        "j",
                        "j",
                        "a",
                        "s",
                        "o",
                        "n",
                        "d",
                    }
                    wide{
                        "enero",
                        "febrero",
                        "marzo",
                        "abril",
                        "mayo",
                        "junio",
                        "julio",
                        "agosto",
                        "setiembre",
                        "octubre",
                        "noviembre",
                        "diciembre",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Ene.",
                        "Feb.",
                        "Mar.",
                        "Abr.",
                        "May.",
                        "Jun.",
                        "Jul.",
                        "Ago.",
                        "Set.",
                        "Oct.",
                        "Nov.",
                        "Dic.",
                    }
                    wide{
                        "Enero",
                        "Febrero",
                        "Marzo",
                        "Abril",
                        "Mayo",
                        "Junio",
                        "Julio",
                        "Agosto",
                        "Setiembre",
                        "Octubre",
                        "Noviembre",
                        "Diciembre",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1.er trim.",
                        "2.º trim.",
                        "3.er trim.",
                        "4.º trim.",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
                stand-alone{
                    abbreviated{
                        "1.er trim.",
                        "2.º trim.",
                        "3.er trim.",
                        "4.º trim.",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
    }
    fields{
        day{
            relativeTime{
                future{
                    one{"En {0} día"}
                    other{"En {0} días"}
                }
            }
        }
        day-narrow{
            dn{"D."}
        }
        day-short{
            dn{"D."}
        }
        dayperiod{
            dn{"A. M./P. M."}
        }
        fri-narrow{
            relative{
                "-1"{"el v pasado"}
                "0"{"este v"}
                "1"{"el próximo v"}
            }
        }
        hour{
            relativeTime{
                future{
                    one{"En {0} hora"}
                    other{"En {0} horas"}
                }
            }
        }
        hour-narrow{
            relativeTime{
                future{
                    one{"dentro de {0} h."}
                    other{"dentro de {0} hh."}
                }
                past{
                    one{"hace {0} h."}
                    other{"hace {0} hh."}
                }
            }
        }
        hour-short{
            relativeTime{
                future{
                    one{"dentro de {0} h."}
                    other{"dentro de {0} hh."}
                }
                past{
                    one{"hace {0} h."}
                    other{"hace {0} hh."}
                }
            }
        }
        minute{
            relativeTime{
                future{
                    one{"En {0} minuto"}
                    other{"En {0} minutos"}
                }
            }
        }
        mon-narrow{
            relative{
                "-1"{"el l pasado"}
                "0"{"este l"}
                "1"{"el próximo l"}
            }
        }
        month{
            relative{
                "-1"{"El mes pasado"}
                "0"{"Este mes"}
                "1"{"Mes próximo"}
            }
            relativeTime{
                future{
                    one{"En {0} mes"}
                    other{"En {0} meses"}
                }
            }
        }
        month-narrow{
            dn{"m."}
            relativeTime{
                future{
                    one{"dentro de {0} m."}
                    other{"dentro de {0} mm."}
                }
                past{
                    one{"hace {0} m."}
                    other{"hace {0} mm."}
                }
            }
        }
        month-short{
            dn{"m."}
            relativeTime{
                future{
                    one{"dentro de {0} m."}
                    other{"dentro de {0} mm."}
                }
                past{
                    one{"hace {0} m."}
                    other{"hace {0} mm."}
                }
            }
        }
        quarter-narrow{
            relativeTime{
                future{
                    one{"dentro de {0} trim."}
                    other{"dentro de {0} trims."}
                }
                past{
                    one{"hace {0} trim."}
                    other{"hace {0} trims."}
                }
            }
        }
        quarter-short{
            relativeTime{
                future{
                    one{"dentro de {0} trim."}
                    other{"dentro de {0} trims."}
                }
                past{
                    one{"hace {0} trim."}
                    other{"hace {0} trims."}
                }
            }
        }
        sat-narrow{
            relative{
                "-1"{"el s pasado"}
                "0"{"este s"}
                "1"{"el próximo s"}
            }
        }
        second{
            relativeTime{
                future{
                    one{"En {0} segundo"}
                    other{"En {0} segundos"}
                }
            }
        }
        sun-narrow{
            relative{
                "-1"{"el d pasado"}
                "0"{"este d"}
                "1"{"el próximo d"}
            }
        }
        thu-narrow{
            relative{
                "-1"{"el j pasado"}
                "0"{"este j"}
                "1"{"el próximo j"}
            }
        }
        tue-narrow{
            relative{
                "-1"{"el m pasado"}
                "0"{"este m"}
                "1"{"el próximo m"}
            }
        }
        wed-narrow{
            relative{
                "-1"{"el m pasado"}
                "0"{"este m"}
                "1"{"el próximo m"}
            }
        }
        week{
            relative{
                "-1"{"Semana pasada"}
                "0"{"Esta semana"}
                "1"{"Próxima semana"}
            }
            relativeTime{
                future{
                    one{"En {0} semana"}
                    other{"En {0} semanas"}
                }
            }
        }
        week-narrow{
            relativeTime{
                future{
                    one{"dentro de {0} sem."}
                    other{"dentro de {0} sems."}
                }
                past{
                    one{"hace {0} sem."}
                    other{"hace {0} sems."}
                }
            }
        }
        week-short{
            relativeTime{
                future{
                    one{"dentro de {0} sem."}
                    other{"dentro de {0} sems."}
                }
                past{
                    one{"hace {0} sem."}
                    other{"dentro de {0} sems."}
                }
            }
        }
        year{
            relative{
                "-1"{"Año pasado"}
                "0"{"Este año"}
                "1"{"Año próximo"}
            }
            relativeTime{
                future{
                    one{"En {0} año"}
                    other{"En {0} años"}
                }
            }
        }
        year-narrow{
            dn{"a."}
            relativeTime{
                future{
                    one{"dentro de {0} a."}
                    other{"dentro de {0} aa."}
                }
                past{
                    one{"hace {0} a."}
                    other{"hace {0} aa."}
                }
            }
        }
        year-short{
            dn{"a."}
            relativeTime{
                future{
                    one{"dentro de {0} a."}
                    other{"dentro de {0} aa."}
                }
                past{
                    one{"hace {0} a."}
                    other{"hace {0} aa."}
                }
            }
        }
    }
    measurementSystemNames{
        UK{"Reino Unido"}
        US{"EE. UU."}
    }
    transformNames{
        Numeric{"Numéricas"}
    }
}
