﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/es_MX.xml
// *
// ***************************************************************************
es_MX{
    %%Parent{"es_419"}
    MoreInformation{"[...]"}
    NumberElements{
        latn{
            patterns{
                percentFormat{"#,##0%"}
            }
            patternsShort{
                decimalFormat{
                    1000{
                        one{"0k"}
                        other{"0k"}
                    }
                    10000{
                        one{"00k"}
                        other{"00k"}
                    }
                    100000{
                        one{"000k"}
                        other{"000k"}
                    }
                }
            }
        }
    }
    Version{"2.1.19.94"}
    calendar{
        generic{
            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",
                "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{
            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/y",
                "dd/MM/yy",
                "{1} {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                EHm{"E H:mm"}
                EHms{"E H:mm:ss"}
                Ehm{"E h:mm a"}
                Ehms{"E h:mm:ss a"}
                GyMMMd{"d MMM y G"}
                Hm{"H:mm"}
                Hms{"H:mm:ss"}
                MMMEd{"E d 'de' MMM"}
                MMd{"d/MM"}
                MMdd{"dd/MM"}
                yMM{"MM/y"}
                yMMMEd{"EEE, d 'de' MMMM 'de' y"}
                yQQQ{"QQQ y"}
            }
            dayNames{
                format{
                    narrow{
                        "D",
                        "L",
                        "M",
                        "M",
                        "J",
                        "V",
                        "S",
                    }
                    short{
                        "do",
                        "lu",
                        "ma",
                        "mi",
                        "ju",
                        "vi",
                        "sá",
                    }
                }
            }
            intervalFormats{
                H{
                    H{"HH–HH"}
                }
                Hm{
                    H{"H:mm–H:mm"}
                    m{"H:mm–H:mm"}
                }
                Hmv{
                    H{"H:mm–H:mm v"}
                    m{"H:mm–H:mm v"}
                }
                MEd{
                    M{"E d/M – E d/M"}
                    d{"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"}
                }
                Md{
                    M{"d/M – d/M"}
                    d{"d/M – d/M"}
                }
                fallback{"{0} – {1}"}
                h{
                    a{"h a – h a"}
                }
                hmv{
                    a{"h:mm a – h:mm a v"}
                }
                hv{
                    a{"h a – h a v"}
                }
                yM{
                    M{"M/y – M/y"}
                    y{"M/y – M/y"}
                }
                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"}
                }
                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"}
                }
                yMMMM{
                    y{"MMMM 'de' y – MMMM 'de' y"}
                }
                yMMMd{
                    M{"d 'de' MMM – d 'de' MMM y"}
                    d{"d–d 'de' MMM 'de' y"}
                }
                yMd{
                    M{"d/M/y – d/M/y"}
                    d{"d/M/y – d/M/y"}
                    y{"d/M/y – d/M/y"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "ene",
                        "feb",
                        "mar",
                        "abr",
                        "may",
                        "jun",
                        "jul",
                        "ago",
                        "sep",
                        "oct",
                        "nov",
                        "dic",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1er. trim.",
                        "2º. trim.",
                        "3er. trim.",
                        "4º trim.",
                    }
                    narrow{
                        "1T",
                        "2T",
                        "3T",
                        "4T",
                    }
                    wide{
                        "1er. trimestre",
                        "2º. trimestre",
                        "3er. trimestre",
                        "4º trimestre",
                    }
                }
                stand-alone{
                    abbreviated{
                        "1er. trim.",
                        "2º. trim.",
                        "3er. trim.",
                        "4º trim.",
                    }
                    narrow{
                        "1T",
                        "2T",
                        "3T",
                        "4T",
                    }
                    wide{
                        "1er. trimestre",
                        "2º. trimestre",
                        "3er. trimestre",
                        "4º trimestre",
                    }
                }
            }
        }
    }
    fields{
        day{
            relative{
                "-1"{"ayer"}
                "-2"{"antier"}
                "0"{"hoy"}
                "1"{"mañana"}
                "2"{"pasado mañana"}
            }
        }
        day-narrow{
            relativeTime{
                future{
                    one{"+{0} día"}
                    other{"+{0} días"}
                }
                past{
                    one{"-{0} día"}
                    other{"-{0} días"}
                }
            }
        }
        day-short{
            relativeTime{
                future{
                    one{"en {0} día"}
                    other{"en {0} días"}
                }
            }
        }
        fri{
            relative{
                "-1"{"el viernes pasado"}
                "0"{"este viernes"}
                "1"{"el viernes próximo"}
            }
        }
        fri-short{
            relative{
                "-1"{"el vier. pasado"}
                "0"{"este vier."}
                "1"{"el próximo vier."}
            }
        }
        hour-narrow{
            relativeTime{
                future{
                    one{"+{0} h"}
                    other{"+{0} h"}
                }
                past{
                    one{"-{0} h"}
                    other{"-{0} h"}
                }
            }
        }
        hour-short{
            relativeTime{
                future{
                    one{"en {0} h"}
                    other{"en {0} n"}
                }
            }
        }
        minute-narrow{
            relativeTime{
                future{
                    one{"+{0} min"}
                    other{"+{0} min"}
                }
                past{
                    one{"-{0} min"}
                    other{"-{0} min"}
                }
            }
        }
        minute-short{
            relativeTime{
                future{
                    one{"en {0} min"}
                    other{"en {0} min"}
                }
            }
        }
        mon{
            relative{
                "-1"{"el lunes pasado"}
                "0"{"este lunes"}
                "1"{"el lunes próximo"}
            }
        }
        month{
            relative{
                "-1"{"el mes pasado"}
                "0"{"este mes"}
                "1"{"el mes próximo"}
            }
            relativeTime{
                future{
                    one{"en {0} mes"}
                    other{"en {0} meses"}
                }
            }
        }
        month-narrow{
            relativeTime{
                future{
                    one{"+{0} m"}
                    other{"+{0} m"}
                }
                past{
                    one{"-{0} m"}
                    other{"-{0} m"}
                }
            }
        }
        month-short{
            relativeTime{
                future{
                    one{"en {0} m"}
                    other{"en {0} m"}
                }
            }
        }
        quarter{
            relativeTime{
                future{
                    one{"en {0} trimestre"}
                    other{"en {0} trimestres"}
                }
            }
        }
        quarter-narrow{
            relativeTime{
                future{
                    one{"+{0} T"}
                    other{"+{0} T"}
                }
                past{
                    one{"-{0} T"}
                    other{"-{0} T"}
                }
            }
        }
        quarter-short{
            relativeTime{
                future{
                    one{"en {0} trim."}
                    other{"en {0} trim"}
                }
            }
        }
        sat{
            relative{
                "-1"{"el sábado pasado"}
                "0"{"este sábado"}
                "1"{"el sábado próximo"}
            }
        }
        second-narrow{
            relativeTime{
                future{
                    one{"+{0} s"}
                    other{"+{0} s"}
                }
                past{
                    one{"-{0} s"}
                    other{"-{0} s"}
                }
            }
        }
        second-short{
            relativeTime{
                future{
                    one{"en {0} s"}
                    other{"en {0} s"}
                }
            }
        }
        sun{
            relative{
                "-1"{"el domingo pasado"}
                "0"{"este domingo"}
                "1"{"el domingo próximo"}
            }
        }
        thu{
            relative{
                "-1"{"el jueves pasado"}
                "0"{"este jueves"}
                "1"{"el jueves próximo"}
            }
        }
        tue{
            relative{
                "-1"{"el martes pasado"}
                "0"{"este martes"}
                "1"{"el martes próximo"}
            }
        }
        wed{
            relative{
                "-1"{"el miércoles pasado"}
                "0"{"este miércoles"}
                "1"{"el miércoles próximo"}
            }
        }
        wed-short{
            relative{
                "-1"{"el miér. pasado"}
                "0"{"este miér."}
                "1"{"el próximo miér."}
            }
        }
        week{
            relative{
                "-1"{"la semana pasada"}
                "0"{"esta semana"}
                "1"{"la semana próxima"}
            }
        }
        week-narrow{
            relativeTime{
                future{
                    one{"+{0} sem."}
                    other{"+{0} sem."}
                }
                past{
                    one{"-{0} sem."}
                    other{"-{0} sem."}
                }
            }
        }
        week-short{
            relativeTime{
                future{
                    one{"en {0} sem."}
                    other{"en {0} sem."}
                }
            }
        }
        year{
            relative{
                "-1"{"el año pasado"}
                "0"{"este año"}
                "1"{"el año próximo"}
            }
        }
        year-narrow{
            relativeTime{
                future{
                    one{"en {0} a"}
                    other{"en {0} a"}
                }
                past{
                    one{"-{0} a"}
                    other{"-{0} a"}
                }
            }
        }
        year-short{
            relativeTime{
                future{
                    one{"en {0} a"}
                    other{"en {0} a"}
                }
            }
        }
    }
}
