﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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"}
    Version{"2.1.10.42"}
    units{
        acceleration{
            g-force{
                dnam{"fuerza G"}
            }
        }
        angle{
            arc-minute{
                dnam{"arcominutos"}
                one{"{0} minuto"}
                other{"{0} minutos"}
            }
            arc-second{
                dnam{"arcosegundos"}
                one{"{0} segundo"}
                other{"{0} segundos"}
            }
        }
        energy{
            calorie{
                dnam{"calorías"}
                one{"{0} caloría"}
                other{"{0} calorías"}
            }
            foodcalorie{
                dnam{"calorías"}
                one{"{0} caloría"}
                other{"{0} calorías"}
            }
            joule{
                dnam{"joules"}
            }
            kilojoule{
                dnam{"kilojoules"}
            }
            kilowatt-hour{
                dnam{"kilowatt-hora"}
                one{"kilowatt-hora"}
                other{"{0} kilowatts-hora"}
            }
        }
        length{
            decimeter{
                dnam{"decímetros"}
            }
            micrometer{
                dnam{"micrometros"}
                one{"{0} micrometro"}
                other{"{0} micrometros"}
            }
            nautical-mile{
                dnam{"millas naúticas"}
                one{"{0} milla naútica"}
                other{"{0} millas naúticas"}
            }
            parsec{
                dnam{"pársecs"}
                one{"{0} pársec"}
                other{"{0} pársecs"}
            }
        }
        light{
            lux{
                dnam{"lux"}
            }
        }
        mass{
            carat{
                dnam{"quilates"}
                one{"{0} quilate"}
                other{"{0} quilates"}
            }
        }
        power{
            gigawatt{
                dnam{"gigawatts"}
            }
            kilowatt{
                dnam{"kilowatts"}
            }
            megawatt{
                dnam{"megawatts"}
            }
            milliwatt{
                dnam{"miliwatts"}
                one{"{0} miliwatt"}
                other{"{0} miliwatts"}
            }
        }
        proportion{
            karat{
                dnam{"quilates"}
                one{"{0} quilate"}
                other{"{0} quilates"}
            }
        }
        temperature{
            kelvin{
                dnam{"kelvines"}
                one{"kelvin"}
                other{"{0} kelvines"}
            }
        }
        volume{
            acre-foot{
                dnam{"acre-pies"}
                one{"{0} acre-pie"}
                other{"{0} acre-pies"}
            }
            fluid-ounce{
                dnam{"onzas líquidas"}
                one{"{0} onza líquida"}
                other{"{0} onzas líquidas"}
            }
        }
    }
    unitsNarrow{
        duration{
            day{
                dnam{"días"}
                one{"{0} d"}
                other{"{0} d"}
            }
            month{
                dnam{"m"}
                one{"{0} m"}
                other{"{0} m"}
            }
            week{
                dnam{"sem"}
                one{"{0} sem"}
                other{"{0} sem"}
            }
            year{
                dnam{"a"}
                one{"{0}a"}
                other{"{0} a"}
            }
        }
    }
    unitsShort{
        acceleration{
            g-force{
                dnam{"fuerza G"}
                one{"{0} G"}
                other{"{0} G"}
            }
        }
        angle{
            arc-minute{
                one{"{0} min"}
                other{"{0} min"}
            }
            arc-second{
                dnam{"arcseg"}
                one{"{0} s"}
                other{"{0} s"}
            }
            degree{
                dnam{"º"}
                one{"{0}°"}
                other{"{0}°"}
            }
        }
        digital{
            bit{
                dnam{"bit"}
                one{"{0} bit"}
                other{"{0} bit"}
            }
            byte{
                dnam{"byte"}
                one{"{0} byte"}
                other{"{0} byte"}
            }
        }
        duration{
            day{
                dnam{"días"}
                one{"{0} día"}
                other{"{0} días"}
            }
            month{
                dnam{"meses"}
                one{"{0} m"}
                other{"{0} m"}
            }
            week{
                dnam{"sem"}
                one{"{0} sem"}
                other{"{0} sem"}
            }
            year{
                dnam{"a"}
                one{"{0} a"}
                other{"{0} a"}
            }
        }
        energy{
            foodcalorie{
                dnam{"cal"}
                one{"{0} cal"}
                other{"{0} cal"}
            }
            joule{
                one{"{0} J"}
                other{"{0} J"}
            }
        }
        length{
            astronomical-unit{
                dnam{"ua"}
                one{"{0} ua"}
                other{"{0} ua"}
            }
            light-year{
                dnam{"al"}
                one{"{0} a. l."}
                other{"{0} a. l."}
            }
            mile{
                dnam{"millas"}
            }
            nanometer{
                dnam{"Nm"}
                one{"{0} Nm"}
                other{"{0} Nm"}
            }
            nautical-mile{
                dnam{"M"}
                one{"{0} M"}
                other{"{0} M"}
            }
            parsec{
                dnam{"pc"}
            }
            yard{
                dnam{"yd"}
            }
        }
        mass{
            ounce-troy{
                dnam{"ozt"}
                one{"{0} ozt"}
                other{"{0} ozt"}
            }
        }
        pressure{
            pound-per-square-inch{
                dnam{"psi"}
                one{"{0} psi"}
                other{"{0} psi"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"km/hora"}
            }
        }
        temperature{
            kelvin{
                dnam{"K"}
                one{"{0} K"}
                other{"{0} K"}
            }
        }
        volume{
            cup{
                dnam{"tza."}
                one{"{0} tza."}
                other{"{0} tzas."}
            }
            pint{
                dnam{"pt"}
            }
            tablespoon{
                one{"{0} cda."}
                other{"{0} cdas."}
            }
        }
    }
}
