﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ug.xml
// *
// ***************************************************************************
ug{
    Version{"2.1.19.14"}
    units{
        acceleration{
            g-force{
                one{"{0} ئېغىرلىق كۈچى"}
                other{"{0} ئېغىرلىق كۈچى"}
            }
        }
        angle{
            degree{
                one{"{0} گىرادۇس"}
                other{"{0} گىرادۇس"}
            }
        }
        area{
            acre{
                one{"{0} ئىنگلىز موسى"}
                other{"{0} ئىنگلىز موسى"}
            }
            hectare{
                one{"{0} گېكتار"}
                other{"{0} hectares"}
            }
            square-foot{
                one{"{0} كۋادرات فۇت"}
                other{"{0} كۋادرات فۇت"}
            }
            square-kilometer{
                one{"{0} كۋادرات كىلومېتىر"}
                other{"{0} كۋادرات كىلومېتىر"}
            }
            square-meter{
                one{"{0} كۋادرات مېتىر"}
                other{"{0} كۋادرات مېتىر"}
            }
            square-mile{
                one{"{0} كۋادرات مىل"}
                other{"{0} كۋادرات مىل"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                one{"{0} كۈن"}
                other{"{0} كۈن"}
            }
            hour{
                one{"{0} سائەت"}
                other{"{0} سائەت"}
            }
            millisecond{
                one{"{0} مىللى سېكۇنت"}
                other{"{0} مىللى سېكۇنت"}
            }
            minute{
                one{"{0} مىنۇت"}
                other{"{0} مىنۇت"}
            }
            month{
                one{"{0} ئاي"}
                other{"{0} ئاي"}
            }
            second{
                one{"{0} سېكۇنت"}
                other{"{0} سېكۇنت"}
            }
            week{
                one{"{0} ھەپتە"}
                other{"{0} ھەپتە"}
            }
            year{
                one{"{0} يىل"}
                other{"{0} يىل"}
            }
        }
        length{
            centimeter{
                one{"{0} سانتىمېتىر"}
                other{"{0} سانتىمېتىر"}
            }
            foot{
                one{"{0} فۇت"}
                other{"{0} فۇت"}
            }
            inch{
                one{"{0} ديۇيم"}
                other{"{0} ديۇيم"}
            }
            kilometer{
                one{"{0} كىلومېتىر"}
                other{"{0} كىلومېتىر"}
            }
            light-year{
                one{"{0} يورۇقلۇق يىلى"}
                other{"{0} يورۇقلۇق يىلى"}
            }
            meter{
                one{"{0} مېتىر"}
                other{"{0} مېتىر"}
            }
            mile{
                one{"{0} مىل"}
                other{"{0} مىل"}
            }
            millimeter{
                one{"{0} مىللىمېتىر"}
                other{"{0} مىللىمېتىر"}
            }
            picometer{
                one{"{0} پىكومېتىر"}
                other{"{0} پىكومېتىر"}
            }
            yard{
                one{"{0} يارد"}
                other{"{0} يارد"}
            }
        }
        mass{
            gram{
                one{"{0} گرام"}
                other{"{0} گرام"}
            }
            kilogram{
                one{"{0} كىلوگرام"}
                other{"{0} كىلوگرام"}
            }
            ounce{
                one{"{0} ئۇنسىيە"}
                other{"{0} ئۇنسىيە"}
            }
            pound{
                one{"{0} قاداق"}
                other{"{0} قاداق"}
            }
        }
        power{
            horsepower{
                one{"{0} ئات كۈچى"}
                other{"{0} ئات كۈچى"}
            }
            kilowatt{
                one{"{0} كىلوۋات"}
                other{"{0} كىلوۋات"}
            }
            watt{
                one{"{0} ۋات"}
                other{"{0} ۋات"}
            }
        }
        pressure{
            hectopascal{
                one{"{0} يۈز پاسكال"}
                other{"{0} يۈز پاسكال"}
            }
            inch-hg{
                one{"{0} ديۇيم سىماب تۈۋرۇكى"}
                other{"{0} ديۇيم سىماب تۈۋرۇكى"}
            }
            millibar{
                one{"{0} مىللىبار"}
                other{"{0} مىللىبار"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} كىلومېتىر ھەر سائەت"}
                other{"{0} كىلومېتىر ھەر سائەت"}
            }
            meter-per-second{
                one{"{0} مېتىر ھەر سېكۇنت"}
                other{"{0} مېتىر ھەر سېكۇنت"}
            }
            mile-per-hour{
                one{"{0} مىل ھەر سائەت"}
                other{"{0} مىل ھەر سائەت"}
            }
        }
        temperature{
            celsius{
                one{"{0} سېلسىيە گرادۇس"}
                other{"{0} سېلسىيە گرادۇس"}
            }
            fahrenheit{
                one{"{0} فارېنگېيت گرادۇس"}
                other{"{0} فارېنگېيت گرادۇس"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0} كۇب كىلومېتىر"}
                other{"{0} كۇب كىلومېتىر"}
            }
            cubic-mile{
                one{"{0} كۇب مىل"}
                other{"{0} كۇب مىل"}
            }
            liter{
                one{"{0} لىتېر"}
                other{"{0} لىتېر"}
            }
        }
    }
    unitsNarrow{
        acceleration{
            g-force{
                one{"{0}G"}
                other{"{0}Gs"}
            }
        }
        angle{
            degree{
                one{"{0}°"}
                other{"{0}°"}
            }
        }
        area{
            acre{
                one{"{0}ac"}
                other{"{0}ac"}
            }
            hectare{
                one{"{0}گېكتار"}
                other{"{0}گېكتار"}
            }
            square-foot{
                one{"{0}ft²"}
                other{"{0}ft²"}
            }
            square-mile{
                one{"{0}mi²"}
                other{"{0}mi²"}
            }
        }
        duration{
            day{
                one{"{0} كۈن"}
                other{"{0} كۈن"}
            }
            hour{
                one{"{0}h"}
                other{"{0}h"}
            }
            millisecond{
                one{"{0}ms"}
                other{"{0}ms"}
            }
            minute{
                one{"{0}m"}
                other{"{0}m"}
            }
            month{
                one{"{0} ئاي"}
                other{"{0} ئاي"}
            }
            second{
                one{"{0}s"}
                other{"{0}s"}
            }
            week{
                one{"{0} ھەپتە"}
                other{"{0} ھەپتە"}
            }
            year{
                one{"{0} يىل"}
                other{"{0} يىل"}
            }
        }
        length{
            centimeter{
                one{"{0}cm"}
                other{"{0}cm"}
            }
            foot{
                one{"{0}′"}
                other{"{0}′"}
            }
            inch{
                one{"{0}″"}
                other{"{0}″"}
            }
            kilometer{
                one{"{0}km"}
                other{"{0}km"}
            }
            light-year{
                one{"{0}ly"}
                other{"{0}ly"}
            }
            meter{
                one{"{0}m"}
                other{"{0}m"}
            }
            mile{
                one{"{0}mi"}
                other{"{0}mi"}
            }
            millimeter{
                one{"{0}mm"}
                other{"{0}mm"}
            }
            picometer{
                one{"{0}pm"}
                other{"{0}pm"}
            }
            yard{
                one{"{0}yd"}
                other{"{0}yd"}
            }
        }
        mass{
            gram{
                one{"{0}g"}
                other{"{0}g"}
            }
            kilogram{
                one{"{0}kg"}
                other{"{0}kg"}
            }
            ounce{
                one{"{0}oz"}
                other{"{0}oz"}
            }
            pound{
                one{"{0}#"}
                other{"{0}#"}
            }
        }
        power{
            horsepower{
                one{"{0}hp"}
                other{"{0}hp"}
            }
            kilowatt{
                one{"{0}kW"}
                other{"{0}kW"}
            }
            watt{
                one{"{0}W"}
                other{"{0}W"}
            }
        }
        pressure{
            hectopascal{
                one{"{0}hPa"}
                other{"{0}hPa"}
            }
            inch-hg{
                one{"{0}\u0022 Hg"}
                other{"{0}\u0022 Hg"}
            }
            millibar{
                one{"{0}mb"}
                other{"{0}mb"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0}kph"}
                other{"{0}kph"}
            }
            meter-per-second{
                one{"{0}m/s"}
                other{"{0}m/s"}
            }
            mile-per-hour{
                one{"{0}mph"}
                other{"{0}mph"}
            }
        }
        temperature{
            celsius{
                one{"{0}°"}
                other{"{0}°"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0}km³"}
                other{"{0}km³"}
            }
            cubic-mile{
                one{"{0}mi³"}
                other{"{0}mi³"}
            }
            liter{
                one{"{0}l"}
                other{"{0}l"}
            }
        }
    }
    unitsShort{
        acceleration{
            g-force{
                one{"{0} G"}
                other{"{0} G"}
            }
        }
        angle{
            degree{
                one{"{0} گىرادۇس"}
                other{"{0} گىرادۇس"}
            }
        }
        area{
            acre{
                one{"{0} ئىنگلىز موسى"}
                other{"{0} ئىنگلىز موسى"}
            }
            hectare{
                one{"{0} گېكتار"}
                other{"{0} گېكتار"}
            }
            square-foot{
                one{"{0} كۋادرات فۇت"}
                other{"{0} كۋادرات فۇت"}
            }
            square-kilometer{
                one{"{0} km²"}
                other{"{0} km²"}
            }
            square-meter{
                one{"{0} m²"}
                other{"{0} m²"}
            }
            square-mile{
                one{"{0} كۋادرات مىل"}
                other{"{0} كۋادرات مىل"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                one{"{0} كۈن"}
                other{"{0} كۈن"}
            }
            hour{
                one{"{0} سائەت"}
                other{"{0} سائەت"}
            }
            millisecond{
                one{"{0} مىللىسېكۇنت"}
                other{"{0} مىللىسېكۇنت"}
            }
            minute{
                one{"{0} مىنۇت"}
                other{"{0} مىنۇت"}
            }
            month{
                one{"{0} ئاي"}
                other{"{0} ئاي"}
            }
            second{
                one{"{0} سېكۇنت"}
                other{"{0} سېكۇنت"}
            }
            week{
                one{"{0} ھەپتە"}
                other{"{0} ھەپتە"}
            }
            year{
                one{"{0} يىل"}
                other{"{0} يىل"}
            }
        }
        length{
            centimeter{
                one{"{0} سانتىمېتىر"}
                other{"{0} سانتىمېتىر"}
            }
            foot{
                one{"{0} پۇت"}
                other{"{0} پۇت"}
            }
            inch{
                one{"{0} ئىنگلىز چىسى"}
                other{"{0} ئىنگلىز چىسى"}
            }
            kilometer{
                one{"{0} كىلومېتىر"}
                other{"{0} كىلومېتىر"}
            }
            light-year{
                one{"{0} يورۇقلۇق يىلى"}
                other{"{0} يورۇقلۇق يىلى"}
            }
            meter{
                one{"{0} مېتىر"}
                other{"{0} مېتىر"}
            }
            mile{
                one{"{0} مىل"}
                other{"{0} مىل"}
            }
            millimeter{
                one{"{0} مىللىمېتىر"}
                other{"{0} مىللىمېتىر"}
            }
            picometer{
                one{"{0} پىكومېتىر"}
                other{"{0} پىكومېتىر"}
            }
            yard{
                one{"{0} يارد"}
                other{"{0} يارد"}
            }
        }
        mass{
            gram{
                one{"{0} g"}
                other{"{0} g"}
            }
            kilogram{
                one{"{0} kg"}
                other{"{0} kg"}
            }
            ounce{
                one{"{0} ئۇنسىيە"}
                other{"{0} ئۇنسىيە"}
            }
            pound{
                one{"{0} قاداق"}
                other{"{0} قاداق"}
            }
        }
        power{
            horsepower{
                one{"{0} ئات كۈچى"}
                other{"{0} ئات كۈچى"}
            }
            kilowatt{
                one{"{0} kW"}
                other{"{0} kW"}
            }
            watt{
                one{"{0} W"}
                other{"{0} W"}
            }
        }
        pressure{
            hectopascal{
                one{"{0} ھېكتوپاسكال"}
                other{"{0} ھېكتوپاسكال"}
            }
            inch-hg{
                one{"{0} inHg"}
                other{"{0} inHg"}
            }
            millibar{
                one{"{0} mbar"}
                other{"{0} mbar"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} سائەت/كىلومېتىر"}
                other{"{0} سائەت/كىلومېتىر"}
            }
            meter-per-second{
                one{"{0} سېكۇنت/مېتىر"}
                other{"{0} سېكۇنت/مېتىر"}
            }
            mile-per-hour{
                one{"{0} سائەت/مىل"}
                other{"{0} سائەت/مىل"}
            }
        }
        temperature{
            celsius{
                one{"{0}°C"}
                other{"{0}°C"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0} km³"}
                other{"{0} km³"}
            }
            cubic-mile{
                one{"{0} mi³"}
                other{"{0} mi³"}
            }
            liter{
                one{"{0} l"}
                other{"{0} l"}
            }
        }
    }
}
