﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/fr_CA.xml
// *
// ***************************************************************************
fr_CA{
    Keys{
        numbers{"Chiffres"}
    }
    Types{
        calendar{
            ethiopic-amete-alem{"Calendrier éthiopien de l'An de grâce"}
            persian{"Calendrier perse"}
        }
        collation{
            dictionary{"Ordre de tri du dictionnaire"}
            ducet{"Ordre de tri Unicode par défaut"}
            reformed{"Ordre de tri réformé"}
            search{"Recherche générale"}
            unihan{"Ordre de tri radical et trait"}
        }
        numbers{
            arab{"Chiffres indo-arabes"}
            arabext{"Chiffres indo-arabes étendus"}
            armn{"Chiffres arméniens"}
            armnlow{"Chiffres minuscules arméniens"}
            beng{"Chiffres bengali"}
            deva{"Chiffres devanagari"}
            ethi{"Chiffre éthiopiens"}
            fullwide{"Chiffre pleine largeur"}
            geor{"Chiffres géorgiens"}
            grek{"Chiffres grecs"}
            greklow{"Chiffres minuscules grecs"}
            gujr{"Chiffres gujarati"}
            guru{"Chiffres gurmukhī"}
            hanidec{"Chiffres numériques chinois"}
            hans{"Chiffres chinois simplifiés"}
            hansfin{"Chiffres monétaires chinois simplifiés"}
            hant{"Chiffres chinois traditionnels"}
            hebr{"Chiffre hébreux"}
            jpanfin{"Chiffres monétaires japonais"}
            khmr{"Chiffres khmer"}
            knda{"Chiffres canara"}
            laoo{"Chiffres laotiens"}
            latn{"Chiffres occidentaux"}
            mlym{"Chiffres malayâlam"}
            mong{"Chiffres mongols"}
            mymr{"Chiffres birmans"}
            orya{"Chiffres oriya"}
            roman{"Chiffres romains"}
            romanlow{"Chiffres minuscules romains"}
            taml{"Chiffres tamoul"}
            telu{"Chiffres telugu"}
            thai{"Chiffres thaïlandais"}
            tibt{"Chiffres tibétains"}
        }
    }
    Version{"2.0.58.79"}
}
