﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
en_AU{
    %%Parent{"en_001"}
    Version{"38"}
    durationUnits{
        hm{"h:mm"}
        hms{"h:mm:ss"}
        ms{"m:ss"}
    }
    units{
        concentr{
            permille{
                dnam{"per mill"}
                one{"{0} per mill"}
                other{"{0} per mill"}
            }
        }
        energy{
            kilowatt-hour{
                dnam{"kilowatt hours"}
                one{"{0} kilowatt hour"}
                other{"{0} kilowatt hours"}
            }
        }
        length{
            kilometer{
                dnam{"kilometre"}
            }
            micrometer{
                dnam{"micrometres"}
            }
        }
        mass{
            metric-ton{
                one{"tonne"}
                other{"{0} tonnes"}
            }
        }
        pressure{
            pound-force-per-square-inch{
                dnam{"pounds per square inch"}
                one{"{0} pound per square inch"}
                other{"{0} pounds per square inch"}
            }
        }
        temperature{
            generic{
                dnam{"degrees"}
            }
        }
        volume{
            fluid-ounce{
                dnam{"fluid ounces"}
                one{"{0} fluid ounce"}
                other{"{0} fluid ounces"}
            }
        }
    }
    unitsNarrow{
        compound{
            per{"{0}/{1}"}
        }
        concentr{
            milligram-per-deciliter{
                dnam{"mg/dL"}
                one{"{0}mg/dL"}
                other{"{0}mg/dL"}
            }
            millimole-per-liter{
                dnam{"mmol/L"}
                one{"{0}mmol/L"}
                other{"{0}mmol/L"}
            }
        }
        consumption{
            liter-per-100-kilometer{
                dnam{"L/100km"}
                one{"{0}L/100km"}
                other{"{0}L/100km"}
            }
            liter-per-kilometer{
                dnam{"L/km"}
                one{"{0}L/km"}
                other{"{0}L/km"}
            }
        }
        duration{
            millisecond{
                dnam{"msec."}
            }
            minute{
                dnam{"min."}
                one{"{0}min."}
                other{"{0}min."}
            }
            second{
                dnam{"sec."}
                one{"{0}s."}
                other{"{0}s."}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} km/h"}
                other{"{0} km/h"}
            }
        }
        temperature{
            celsius{
                one{"{0}°C"}
                other{"{0}°C"}
            }
        }
        volume{
            bushel{
                one{"{0} bus."}
                other{"{0} bus."}
            }
            centiliter{
                dnam{"cL"}
                one{"{0}cL"}
                other{"{0}cL"}
            }
            deciliter{
                dnam{"dL"}
                one{"{0}dL"}
                other{"{0}dL"}
            }
            hectoliter{
                dnam{"hL"}
                one{"{0}hL"}
                other{"{0}hL"}
            }
            liter{
                one{"{0}L"}
                other{"{0}L"}
                per{"{0}/L"}
            }
            megaliter{
                dnam{"ML"}
                one{"{0}ML"}
                other{"{0}ML"}
            }
            milliliter{
                dnam{"mL"}
                one{"{0}mL"}
                other{"{0}mL"}
            }
        }
    }
    unitsShort{
        angle{
            arc-minute{
                dnam{"arcmin."}
                one{"{0} arcmin."}
                other{"{0} arcmin."}
            }
            arc-second{
                dnam{"arcsec."}
                one{"{0} arcsec."}
                other{"{0} arcsec."}
            }
            degree{
                one{"{0} deg."}
                other{"{0} deg."}
            }
        }
        concentr{
            milligram-per-deciliter{
                dnam{"mg/dL"}
                one{"{0} mg/dL"}
                other{"{0} mg/dL"}
            }
            millimole-per-liter{
                one{"{0} mmol/L"}
                other{"{0} mmol/L"}
            }
            permille{
                dnam{"per mill"}
            }
        }
        consumption{
            liter-per-100-kilometer{
                dnam{"L/100 km"}
                one{"{0} L/100 km"}
                other{"{0} L/100 km"}
            }
            liter-per-kilometer{
                one{"{0} L/km"}
                other{"{0} L/km"}
            }
            mile-per-gallon{
                dnam{"miles/gal. US"}
                one{"{0} m.p.g. US"}
                other{"{0} m.p.g. US"}
            }
            mile-per-gallon-imperial{
                dnam{"miles/gal."}
                one{"{0} m.p.g."}
                other{"{0} m.p.g."}
            }
        }
        duration{
            century{
                dnam{"C."}
                one{"{0} C."}
                other{"{0} C."}
            }
            microsecond{
                dnam{"μsec."}
            }
            millisecond{
                dnam{"millisec."}
            }
            minute{
                dnam{"min."}
                one{"{0} min."}
                other{"{0} mins"}
                per{"{0}/min."}
            }
            nanosecond{
                dnam{"nanosec."}
            }
            second{
                dnam{"sec."}
                one{"{0} sec."}
                other{"{0} secs"}
                per{"{0} ps."}
            }
        }
        energy{
            kilocalorie{
                dnam{"Cal"}
                one{"{0} Cal"}
                other{"{0} Cal"}
            }
            kilowatt-hour{
                dnam{"kWh"}
            }
        }
        length{
            astronomical-unit{
                dnam{"AU"}
                one{"{0} AU"}
                other{"{0} AU"}
            }
            light-year{
                one{"{0} l.y."}
                other{"{0} l.y."}
            }
        }
        mass{
            carat{
                one{"{0} CM"}
                other{"{0} CM"}
            }
        }
        pressure{
            inch-ofhg{
                dnam{"in Hg"}
            }
            millibar{
                dnam{"mb"}
                one{"{0} mb"}
                other{"{0} mb"}
            }
            millimeter-ofhg{
                dnam{"mm Hg"}
                one{"{0} mm Hg"}
                other{"{0} mm Hg"}
            }
        }
        speed{
            meter-per-second{
                dnam{"metres/sec."}
                one{"{0} m/s."}
                other{"{0} m/s."}
            }
        }
        temperature{
            generic{
                dnam{"deg."}
                one{"{0}°"}
                other{"{0}°"}
            }
        }
        volume{
            bushel{
                one{"{0} bus."}
                other{"{0} bus."}
            }
            centiliter{
                dnam{"cL"}
                one{"{0} cL"}
                other{"{0} cL"}
            }
            deciliter{
                dnam{"dL"}
                one{"{0} dL"}
                other{"{0} dL"}
            }
            fluid-ounce{
                dnam{"fl oz"}
                one{"{0} fl oz"}
                other{"{0} fl oz"}
            }
            gallon{
                dnam{"US gal."}
                one{"{0} gal. US"}
                other{"{0} gal. US"}
                per{"{0}/gal. US"}
            }
            gallon-imperial{
                dnam{"gal."}
                one{"{0} gal."}
                other{"{0} gal."}
                per{"{0}/gal."}
            }
            hectoliter{
                dnam{"hL"}
                one{"{0} hL"}
                other{"{0} hL"}
            }
            liter{
                one{"{0} L"}
                other{"{0} L"}
                per{"{0}/L"}
            }
            megaliter{
                dnam{"ML"}
                one{"{0} ML"}
                other{"{0} ML"}
            }
            milliliter{
                dnam{"mL"}
                one{"{0} mL"}
                other{"{0} mL"}
            }
        }
    }
}
