﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
es_US{
    %%Parent{"es_419"}
    MoreInformation{"[...]"}
    NumberElements{
        latn{
            patternsLong{
                decimalFormat{
                    1000000000000{
                        one{"0 trillón"}
                        other{"0 trillones"}
                    }
                    10000000000000{
                        one{"00 trillones"}
                        other{"00 trillones"}
                    }
                    100000000000000{
                        one{"000 trillones"}
                        other{"000 trillones"}
                    }
                }
            }
            patternsShort{
                currencyFormat{
                    1000{
                        one{"0 K ¤"}
                        other{"0 K ¤"}
                    }
                    10000{
                        one{"00 K ¤"}
                        other{"00 K ¤"}
                    }
                    100000{
                        one{"000 K ¤"}
                        other{"000 K ¤"}
                    }
                    1000000{
                        one{"0 M ¤"}
                        other{"0 M ¤"}
                    }
                    10000000{
                        one{"00 M ¤"}
                        other{"00 M ¤"}
                    }
                    100000000{
                        one{"000 M ¤"}
                        other{"000 M ¤"}
                    }
                    1000000000{
                        one{"0000 M ¤"}
                        other{"0000 M ¤"}
                    }
                }
                decimalFormat{
                    1000{
                        one{"0"}
                        other{"0"}
                    }
                    10000{
                        one{"00 K"}
                        other{"00 K"}
                    }
                    100000{
                        one{"000 K"}
                        other{"000 K"}
                    }
                    1000000000000{
                        one{"0 T"}
                        other{"0 T"}
                    }
                    10000000000000{
                        one{"00 T"}
                        other{"00 T"}
                    }
                    100000000000000{
                        one{"000 T"}
                        other{"000 T"}
                    }
                }
            }
        }
    }
    Version{"2.1.37.22"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d 'de' MMMM 'de' y G",
                "d 'de' MMMM 'de' y G",
                "d MMM, y G",
                "dd/MM/yy GGGGG",
                "{1} {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                GyMMM{"MMM y G"}
                GyMMMd{"d MMM y G"}
                MMMEd{"E d MMM"}
                MMMMd{"d 'de' MMM"}
                MMMd{"d MMM"}
            }
            intervalFormats{
                Md{
                    M{"d/M – d/M"}
                    d{"d/M – d/M"}
                }
                fallback{"{0} – {1}"}
                yM{
                    M{"M/y – M/y G"}
                    y{"M/y – M/y G"}
                }
                yMEd{
                    M{"E, d/M/y–E, d/M/y G"}
                    d{"E, d/M/y–E, d/M/y G"}
                    y{"E, d/M/y–E, d/M/y G"}
                }
                yMd{
                    M{"d/M/y – d/M/y G"}
                    d{"d/M/y – d/M/y G"}
                    y{"d/M/y – d/M/y G"}
                }
            }
        }
        gregorian{
            AmPmMarkers{
                "a. m.",
                "p. m.",
            }
            AmPmMarkersAbbr{
                "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 MMM y",
                "d/M/yy",
                "{1} {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EHm{"E HH:mm"}
                EHms{"E HH:mm:ss"}
                Ehm{"E h:mm a"}
                Ehms{"E h:mm:ss a"}
                GyMMMd{"d MMM y G"}
                Hmsv{"HH:mm:ss v"}
                Hmsvvvv{"HH:mm:ss (vvvv)"}
                Hmv{"HH:mm v"}
                MMMEd{"E, d 'de' MMM"}
                MMd{"d/MM"}
                MMdd{"dd/MM"}
                yMEd{"E, d/M/y"}
                yMM{"MM/y"}
                yMMMEd{"EEE, d 'de' MMMM 'de' y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    narrow{
                        "D",
                        "L",
                        "M",
                        "M",
                        "J",
                        "V",
                        "S",
                    }
                }
            }
            dayPeriod{
                format{
                    narrow{
                        evening1{"de la tarde"}
                        morning1{"de la madrugada"}
                        morning2{"mañana"}
                        night1{"de la noche"}
                        noon{"del mediodía"}
                    }
                }
                stand-alone{
                    abbreviated{
                        am{"a. m."}
                        pm{"p. m."}
                    }
                    narrow{
                        am{"a. m."}
                        pm{"p. m."}
                    }
                    wide{
                        am{"a. m."}
                        pm{"p. m."}
                    }
                }
            }
            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"}
                }
                MEd{
                    M{"E, d/M – E, d/M"}
                }
                MMMEd{
                    M{"E d 'de' MMM – E d 'de' MMM"}
                    d{"E d 'de' MMM – E d 'de' MMM"}
                }
                MMMd{
                    d{"d–d 'de' MMM"}
                }
                h{
                    a{"h a – h a"}
                }
                hm{
                    h{"h:mm–h:mm a"}
                    m{"h:mm–h:mm a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                }
                yMEd{
                    M{"E, d/M/y – E, d/M/y"}
                    d{"E, d/M/y – E, d/M/y"}
                    y{"E, d/M/y – E, d/M/y"}
                }
                yMMM{
                    M{"MMM–MMM 'de' y"}
                }
                yMMMM{
                    y{"MMMM 'de' y – MMMM 'de' y"}
                }
                yMMMd{
                    M{"d 'de' MMM – d 'de' MMM y"}
                    d{"d–d 'de' MMM 'de' y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ene.",
                        "feb.",
                        "mar.",
                        "abr.",
                        "may.",
                        "jun.",
                        "jul.",
                        "ago.",
                        "sep.",
                        "oct.",
                        "nov.",
                        "dic.",
                    }
                }
            }
        }
    }
    characterLabel{
        animal{"animal"}
        body{"cuerpo"}
        building{"edificio"}
        female{"mujer"}
        flag{"bandera"}
        format_whitespace{"Formato y espacio duro"}
        heart{"corazón"}
        keycap{"tecla"}
        letterlike_symbols{"Símbolos con letras"}
        limited_use{"Uso limitado"}
        male{"hombre"}
        modern_scripts{"Sistemas de escritura modernos"}
        nature{"naturaleza"}
        other{"Otros"}
        person{"persona"}
        phonetic_alphabet{"Alfabeto fonético"}
        place{"lugar"}
        plant{"planta"}
        sign_standard_symbols{"Símbolos de señales/estándar"}
        smiley{"cara sonriente"}
        south_asian_scripts{"Sistemas de escritura de Asia Meridional"}
        southeast_asian_scripts{"Sistemas de escritura de Asia Sudoriental"}
        sport{"deporte"}
        symbols{"Símbolos"}
        tone_marks{"Marcas tonales"}
        travel{"viaje"}
        travel_places{"Viajes y destinos"}
        variant_forms{"Variantes"}
        weather{"tiempo"}
        western_asian_scripts{"Sistemas de escritura de Asia Occidental"}
        whitespace{"Espacio duro"}
    }
    delimiters{
        alternateQuotationEnd{"”"}
        alternateQuotationStart{"“"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            relative{
                "-1"{"ayer"}
                "0"{"hoy"}
                "1"{"mañana"}
                "2"{"pasado mañana"}
            }
        }
        dayOfYear-narrow{
            dn{"día del a"}
        }
        dayOfYear-short{
            dn{"día del a"}
        }
        dayperiod{
            dn{"a. m./p. m."}
        }
        dayperiod-narrow{
            dn{"a. m./p. m."}
        }
        dayperiod-short{
            dn{"a. m./p. m."}
        }
        fri{
            relativeTime{
                future{
                    other{"dentro de {0} viernes"}
                }
            }
        }
        fri-short{
            relativeTime{
                future{
                    other{"dentro de {0} vie."}
                }
            }
        }
        mon-short{
            relativeTime{
                future{
                    one{"dentro de {0} lun."}
                }
            }
        }
        month{
            relative{
                "-1"{"el mes pasado"}
                "0"{"este mes"}
                "1"{"el mes próximo"}
            }
        }
        sat-narrow{
            relativeTime{
                future{
                    one{"dentro de {0} SA"}
                }
            }
        }
        sun-narrow{
            relativeTime{
                future{
                    other{"dentro de {0} DO"}
                }
            }
        }
        thu{
            relativeTime{
                future{
                    one{"dentro de {0} jueves"}
                }
            }
        }
        thu-narrow{
            relativeTime{
                future{
                    other{"dentro de {0} JU"}
                }
            }
        }
        tue{
            relativeTime{
                future{
                    other{"dentro de {0} martes"}
                }
            }
        }
        wed{
            relativeTime{
                future{
                    one{"dentro de {0} miércoles"}
                }
            }
        }
        week{
            relative{
                "-1"{"la semana pasada"}
                "0"{"esta semana"}
                "1"{"la semana próxima"}
            }
        }
        weekdayOfMonth-narrow{
            dn{"día de sem. de mes"}
        }
        weekdayOfMonth-short{
            dn{"día de sem. de mes"}
        }
        year{
            relative{
                "-1"{"el año pasado"}
                "0"{"este año"}
                "1"{"el año próximo"}
            }
        }
    }
    measurementSystemNames{
        US{"estadounidense"}
    }
}
