﻿// ***************************************************************************
// *
// * Copyright (C) 2012 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{
            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.0.78.47"}
    calendar{
        gregorian{
            availableFormats{
                yMEd{"E d/M/y"}
            }
            dayNames{
                stand-alone{
                    narrow{
                        "D",
                        "L",
                        "M",
                        "M",
                        "J",
                        "V",
                        "S",
                    }
                }
            }
            fields{
                month{
                    relative{
                        "-1"{"El mes pasado"}
                        "0"{"Este mes"}
                        "1"{"Mes próximo"}
                    }
                }
                week{
                    relative{
                        "-1"{"Semana pasada"}
                        "0"{"Esta semana"}
                        "1"{"Próxima semana"}
                    }
                }
                year{
                    relative{
                        "-1"{"Año pasado"}
                        "0"{"Este año"}
                        "1"{"Año próximo"}
                    }
                }
            }
            quarters{
                format{
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
    }
    measurementSystemNames{
        UK{"Reino Unido"}
    }
    units{
        day-future{
            one{"En {0} día"}
            other{"En {0} días"}
        }
        hour-future{
            one{"En {0} hora"}
            other{"En {0} horas"}
        }
        minute-future{
            one{"En {0} minuto"}
            other{"En {0} minutos"}
        }
        month-future{
            one{"En {0} mes"}
            other{"En {0} meses"}
        }
        second-future{
            one{"En {0} segundo"}
            other{"En {0} segundos"}
        }
        week-future{
            one{"En {0} semana"}
            other{"En {0} semanas"}
        }
        year-future{
            one{"En {0} año"}
            other{"En {0} años"}
        }
    }
}
