﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
en_CA{
    %%Parent{"en_001"}
    Version{"2.1.37.22"}
    units{
        concentr{
            karat{
                dnam{"karats"}
                one{"{0} karat"}
                other{"{0} karats"}
            }
        }
        energy{
            kilowatt-hour{
                one{"{0} kilowatt-hour"}
                other{"{0} kilowatt-hours"}
            }
        }
    }
    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-100kilometers{
                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{"s"}
                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{
            kilometer-per-hour{
                dnam{"km/h"}
                one{"{0}km/h"}
                other{"{0}km/h"}
            }
            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-second-squared{
                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-100kilometers{
                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"}
            }
            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{"secs."}
                one{"{0} sec."}
                other{"{0} secs."}
                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"}
                one{"{0} ct"}
                other{"{0} ct"}
            }
            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{
            inch-hg{
                dnam{"inHg"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0} km/h"}
                other{"{0} km/h"}
            }
            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{"acre ft."}
                one{"{0} ac. ft."}
                other{"{0} ac. ft."}
            }
            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"}
            }
            fluid-ounce{
                dnam{"fl. oz."}
                one{"{0} fl. oz."}
                other{"{0} 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"}
            }
            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"}
            }
            pint{
                one{"{0} pt."}
                other{"{0} pt."}
            }
            quart{
                dnam{"qt."}
                one{"{0} qt."}
                other{"{0} qt."}
            }
            tablespoon{
                dnam{"tbsp."}
                one{"{0} tbsp."}
                other{"{0} tbsp."}
            }
            teaspoon{
                dnam{"tsp."}
                one{"{0} tsp."}
                other{"{0} tsp."}
            }
        }
    }
}
