﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fr_CA.xml
// *
// ***************************************************************************
fr_CA{
    Version{"2.1.13.23"}
    durationUnits{
        hm{"h:mm"}
        hms{"h:mm:ss"}
        ms{"m:ss"}
    }
    units{
        acceleration{
            g-force{
                dnam{"force G"}
            }
        }
        area{
            acre{
                dnam{"acres"}
                one{"{0} acre"}
                other{"{0} acres"}
            }
            square-mile{
                dnam{"milles carrés"}
                one{"{0} mille carré"}
                other{"{0} milles carrés"}
            }
            square-yard{
                dnam{"verges carrées"}
                one{"{0} verge carrée"}
                other{"{0} verges carrées"}
            }
        }
        consumption{
            mile-per-gallon{
                dnam{"milles au gallon"}
                one{"{0} mille au gallon"}
                other{"{0} milles au gallon"}
            }
        }
        duration{
            second{
                per{"{0} à la seconde"}
            }
        }
        length{
            mile{
                dnam{"mille"}
                one{"{0} mille"}
                other{"{0} milles"}
            }
            yard{
                dnam{"verges"}
                one{"{0} verge"}
                other{"{0} verges"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"kilomètres à l’heure"}
            }
            mile-per-hour{
                dnam{"milles à l’heure"}
                one{"{0} mille à l’heure"}
                other{"{0} milles à l’heure"}
            }
        }
        volume{
            cubic-mile{
                dnam{"milles cubes"}
                one{"{0} mille cube"}
                other{"{0} milles cubes"}
            }
            cubic-yard{
                dnam{"verges cubes"}
                one{"{0} verge cube"}
                other{"{0} verges cubes"}
            }
            pint{
                dnam{"chopine"}
                one{"{0} chopine"}
                other{"{0} chopines"}
            }
            quart{
                dnam{"pintes"}
                one{"{0} pinte"}
                other{"{0} pintes"}
            }
            teaspoon{
                dnam{"cuillères à thé"}
                one{"{0} cuillère à thé"}
                other{"{0} cuillères à thé"}
            }
        }
    }
    unitsNarrow{
        temperature{
            celsius{
                one{"{0} °C"}
                other{"{0} °C"}
            }
        }
    }
    unitsShort{
        area{
            square-foot{
                one{"{0} pi²"}
                other{"{0} pi²"}
            }
            square-yard{
                dnam{"vg²"}
                one{"{0} vg²"}
                other{"{0} vg²"}
            }
        }
        length{
            astronomical-unit{
                one{"{0} ua"}
                other{"{0} ua"}
            }
            foot{
                one{"{0} pi"}
                other{"{0} pi"}
            }
            light-year{
                dnam{"al"}
                one{"{0} al"}
                other{"{0} al"}
            }
            nautical-mile{
                dnam{"NM"}
                one{"{0} NM"}
                other{"{0} NM"}
            }
            yard{
                dnam{"vg"}
                one{"{0} vg"}
                other{"{0} vg"}
            }
        }
        mass{
            ton{
                dnam{"tc"}
                one{"{0} tc"}
                other{"{0} tc"}
            }
        }
        proportion{
            karat{
                dnam{"carats"}
            }
        }
        volume{
            centiliter{
                dnam{"cL"}
                one{"{0} cL"}
                other{"{0} cL"}
            }
            cubic-foot{
                one{"{0} pi³"}
                other{"{0} pi³"}
            }
            cubic-yard{
                dnam{"vg³"}
                one{"{0} vg³"}
                other{"{0} vg³"}
            }
            deciliter{
                dnam{"dL"}
                one{"{0} dL"}
                other{"{0} dL"}
            }
            fluid-ounce{
                dnam{"oz liq."}
                one{"{0} oz liq."}
                other{"{0} oz liq."}
            }
            hectoliter{
                dnam{"hL"}
                one{"{0} hL"}
                other{"{0} hL"}
            }
            megaliter{
                dnam{"ML"}
                one{"{0} ML"}
                other{"{0} ML"}
            }
            milliliter{
                dnam{"mL"}
                one{"{0} mL"}
                other{"{0} mL"}
            }
            pint{
                dnam{"chop"}
                one{"{0} chop"}
                other{"{0} chop"}
            }
            quart{
                dnam{"pte"}
                one{"{0} pte"}
                other{"{0} pte"}
            }
            teaspoon{
                dnam{"c. à t."}
                one{"{0} c. à t."}
                other{"{0} c. à t."}
            }
        }
    }
}
