﻿// ***************************************************************************
// *
// * 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"}
    Version{"2.1.19.94"}
    units{
        angle{
            arc-minute{
                dnam{"arcominutos"}
                one{"{0} minuto"}
                other{"{0} minutos"}
            }
            arc-second{
                dnam{"arcosegundos"}
                one{"{0} segundo"}
                other{"{0} segundos"}
            }
        }
        energy{
            kilowatt-hour{
                dnam{"kilowatt-hora"}
                one{"kilowatt-hora"}
                other{"{0} kilowatts-hora"}
            }
        }
        length{
            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"}
            }
        }
        power{
            gigawatt{
                dnam{"gigawatts"}
            }
            kilowatt{
                dnam{"kilowatts"}
            }
            megawatt{
                dnam{"megawatts"}
            }
            milliwatt{
                dnam{"miliwatts"}
                one{"{0} miliwatt"}
                other{"{0} miliwatts"}
            }
        }
        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{"º"}
            }
        }
        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"}
            }
        }
        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"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"km/hora"}
            }
        }
        volume{
            cup{
                dnam{"tza."}
                one{"{0} tza."}
                other{"{0} tzas."}
            }
            pint{
                dnam{"pt"}
            }
        }
    }
}
