﻿// © 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_CA{
    %%Parent{"en_001"}
    units{
        concentr{
            karat{
                dnam{"karats"}
                one{"{0} karat"}
                other{"{0} karats"}
            }
        }
        graphics{
            dot{
                one{"{0} dot"}
                other{"{0} dots"}
            }
        }
        light{
            candela{
                dnam{"candelas"}
            }
            lumen{
                dnam{"lumens"}
            }
        }
        mass{
            grain{
                dnam{"grains"}
            }
        }
        torque{
            newton-meter{
                dnam{"newton-metres"}
                one{"{0} newton-metre"}
                other{"{0} newton-metres"}
            }
        }
        volume{
            dram{
                dnam{"fluid drams"}
                one{"{0} fluid dram"}
                other{"{0} fluid drams"}
            }
            drop{
                dnam{"drops"}
            }
            fluid-ounce{
                dnam{"fluid ounces"}
                one{"{0} fluid ounce"}
                other{"{0} fluid ounces"}
            }
            fluid-ounce-imperial{
                dnam{"imp. fluid ounces"}
                one{"{0} imp. fluid ounce"}
                other{"{0} imp. fluid ounces"}
            }
            jigger{
                dnam{"jiggers"}
            }
            pinch{
                dnam{"pinches"}
            }
            quart-imperial{
                dnam{"imp. quart"}
                one{"{0} imp. quart"}
                other{"{0} imp. quarts"}
            }
        }
    }
    unitsNarrow{
        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{
            day{
                dnam{"d"}
                one{"{0} d"}
                other{"{0} d"}
            }
            hour{
                dnam{"h"}
                one{"{0} h"}
                other{"{0} h"}
            }
            millisecond{
                dnam{"msec."}
                one{"{0} msec."}
                other{"{0} msec."}
            }
            minute{
                dnam{"min."}
                one{"{0} min."}
                other{"{0} min."}
            }
            month{
                dnam{"m"}
                one{"{0} m"}
                other{"{0} m"}
            }
            second{
                dnam{"sec."}
                one{"{0} sec."}
                other{"{0} sec."}
            }
            week{
                dnam{"w"}
                one{"{0} w"}
                other{"{0} w"}
            }
            year{
                dnam{"y"}
                one{"{0} y"}
                other{"{0} y"}
            }
        }
        length{
            foot{
                dnam{"ft."}
            }
            inch{
                dnam{"in."}
            }
            mile{
                dnam{"mi."}
            }
            yard{
                dnam{"yd."}
            }
        }
        mass{
            stone{
                dnam{"st."}
            }
        }
        speed{
            mile-per-hour{
                dnam{"mi./hr."}
            }
        }
        volume{
            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{
        acceleration{
            meter-per-square-second{
                dnam{"metres/sec.²"}
            }
        }
        angle{
            arc-minute{
                dnam{"arcmins."}
                one{"{0} arcmin."}
                other{"{0} arcmins."}
            }
            arc-second{
                dnam{"arcsecs."}
                one{"{0} arcsec."}
                other{"{0} arcsecs."}
            }
            degree{
                dnam{"deg."}
                one{"{0} deg."}
                other{"{0} deg."}
            }
            radian{
                dnam{"rad"}
            }
        }
        area{
            acre{
                one{"{0} ac."}
                other{"{0} ac."}
            }
            square-foot{
                dnam{"sq. feet"}
                one{"{0} sq. ft."}
                other{"{0} sq. ft."}
            }
            square-inch{
                dnam{"sq. inches"}
                one{"{0} sq. in."}
                other{"{0} sq. in."}
                per{"{0}/sq. in."}
            }
            square-mile{
                dnam{"sq. miles"}
                one{"{0} sq. mi."}
                other{"{0} sq. mi."}
                per{"{0}/sq. mi."}
            }
            square-yard{
                dnam{"sq. yards"}
                one{"{0} sq. yd."}
                other{"{0} sq. yd."}
            }
        }
        concentr{
            karat{
                dnam{"karats"}
                one{"{0} kt"}
                other{"{0} kt"}
            }
            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"}
            }
        }
        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{"mi./US gal."}
            }
            mile-per-gallon-imperial{
                dnam{"mi./gal."}
            }
        }
        duration{
            century{
                dnam{"c."}
                one{"{0} c."}
                other{"{0} c."}
            }
            day{
                per{"{0}/day"}
            }
            decade{
                dnam{"dec."}
                one{"{0} dec."}
                other{"{0} dec."}
            }
            hour{
                dnam{"hrs."}
                one{"{0} hr."}
                other{"{0} hrs."}
                per{"{0}/hr."}
            }
            microsecond{
                dnam{"μsec."}
            }
            millisecond{
                dnam{"millisecs."}
                one{"{0} millisec."}
                other{"{0} millisecs."}
            }
            minute{
                dnam{"mins."}
                one{"{0} min."}
                other{"{0} min."}
                per{"{0}/min."}
            }
            month{
                dnam{"mos."}
                one{"{0} mo."}
                other{"{0} mos."}
                per{"{0}/mo."}
            }
            nanosecond{
                dnam{"nanosec."}
                one{"{0} nanosec."}
                other{"{0} nanosec."}
            }
            second{
                dnam{"sec."}
                one{"{0} sec."}
                other{"{0} sec."}
                per{"{0}/sec."}
            }
            week{
                dnam{"wks."}
                one{"{0} wk."}
                other{"{0} wks."}
                per{"{0}/wk."}
            }
            year{
                dnam{"yrs."}
                one{"{0} yr."}
                other{"{0} yrs."}
                per{"{0}/yr."}
            }
        }
        electric{
            ohm{
                dnam{"Ω"}
            }
            volt{
                dnam{"V"}
            }
        }
        energy{
            joule{
                dnam{"J"}
            }
            kilojoule{
                dnam{"kJ"}
            }
            kilowatt-hour{
                dnam{"kWh"}
            }
        }
        length{
            astronomical-unit{
                dnam{"AU"}
                one{"{0} AU"}
                other{"{0} AU"}
            }
            fathom{
                one{"{0} fm."}
                other{"{0} fm."}
            }
            foot{
                one{"{0} ft."}
                other{"{0} ft."}
                per{"{0}/ft."}
            }
            furlong{
                one{"{0} fur."}
                other{"{0} fur."}
            }
            inch{
                one{"{0} in."}
                other{"{0} in."}
                per{"{0}/in."}
            }
            mile{
                one{"{0} mi."}
                other{"{0} mi."}
            }
            nautical-mile{
                dnam{"NM"}
                one{"{0} NM"}
                other{"{0} NM"}
            }
            point{
                one{"{0} pt."}
                other{"{0} pts."}
            }
            yard{
                one{"{0} yd."}
                other{"{0} yd."}
            }
        }
        mass{
            carat{
                dnam{"ct"}
            }
            grain{
                dnam{"grains"}
            }
            ounce{
                dnam{"oz."}
                one{"{0} oz."}
                other{"{0} oz."}
                per{"{0}/oz."}
            }
            ounce-troy{
                dnam{"oz. troy"}
                one{"{0} oz t."}
                other{"{0} oz t."}
            }
            pound{
                dnam{"lb."}
                one{"{0} lb."}
                other{"{0} lb."}
                per{"{0}/lb."}
            }
            stone{
                one{"{0} st."}
                other{"{0} st."}
            }
            ton{
                one{"{0} tn."}
                other{"{0} tn."}
            }
        }
        power{
            watt{
                dnam{"W"}
            }
        }
        pressure{
            millimeter-ofhg{
                dnam{"mm Hg"}
                one{"{0} mm Hg"}
                other{"{0} mm Hg"}
            }
        }
        speed{
            knot{
                dnam{"kn."}
                one{"{0} kn."}
                other{"{0} kn."}
            }
            meter-per-second{
                dnam{"metres/sec."}
            }
        }
        temperature{
            celsius{
                one{"{0} °C"}
                other{"{0} °C"}
            }
            fahrenheit{
                one{"{0} °F"}
                other{"{0} °F"}
            }
        }
        volume{
            acre-foot{
                dnam{"ac. ft."}
                one{"{0} ac. ft."}
                other{"{0} ac. ft."}
            }
            barrel{
                one{"{0} bbl."}
                other{"{0} bbl."}
            }
            centiliter{
                dnam{"cL"}
                one{"{0} cL"}
                other{"{0} cL"}
            }
            cubic-foot{
                dnam{"cu. feet"}
                one{"{0} cu. ft."}
                other{"{0} cu. ft."}
            }
            cubic-inch{
                dnam{"cu. inches"}
                one{"{0} cu. in."}
                other{"{0} cu. in."}
            }
            cubic-mile{
                dnam{"cu. mi."}
                one{"{0} cu. mi."}
                other{"{0} cu. mi."}
            }
            cubic-yard{
                dnam{"cu. yards"}
                one{"{0} cu. yd."}
                other{"{0} cu. yd."}
            }
            cup{
                one{"{0} c."}
                other{"{0} c."}
            }
            deciliter{
                dnam{"dL"}
                one{"{0} dL"}
                other{"{0} dL"}
            }
            dessert-spoon{
                dnam{"dssp"}
                one{"{0} dssp"}
                other{"{0} dssp"}
            }
            dessert-spoon-imperial{
                dnam{"imp. dssp"}
                one{"{0} imp. dssp"}
                other{"{0} imp. dssp"}
            }
            dram{
                dnam{"fl. dr."}
                one{"{0} fl. dr."}
                other{"{0} fl. dr."}
            }
            drop{
                dnam{"drops"}
            }
            fluid-ounce{
                dnam{"fl. oz."}
                one{"{0} fl. oz."}
                other{"{0} fl. oz."}
            }
            fluid-ounce-imperial{
                dnam{"imp. fl. oz."}
                one{"{0} imp. fl. oz."}
                other{"{0} imp. fl. oz."}
            }
            gallon{
                dnam{"US gal."}
                one{"{0} US gal."}
                other{"{0} US gal."}
                per{"{0}/US gal."}
            }
            gallon-imperial{
                dnam{"gal."}
                one{"{0} gal."}
                other{"{0} gal."}
                per{"{0}/gal."}
            }
            hectoliter{
                dnam{"hL"}
                one{"{0} hL"}
                other{"{0} hL"}
            }
            jigger{
                dnam{"jiggers"}
            }
            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"}
            }
            pinch{
                dnam{"pinches"}
            }
            pint{
                one{"{0} pt."}
                other{"{0} pt."}
            }
            quart{
                dnam{"qt."}
                one{"{0} qt."}
                other{"{0} qt."}
            }
            quart-imperial{
                dnam{"imp. qt."}
                one{"{0} imp. qt."}
                other{"{0} imp. qt."}
            }
            tablespoon{
                dnam{"tbsp."}
                one{"{0} tbsp."}
                other{"{0} tbsp."}
            }
            teaspoon{
                dnam{"tsp."}
                one{"{0} tsp."}
                other{"{0} tsp."}
            }
        }
    }
}
