﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
fr_CA{
    Languages{
        ady{"adygué"}
        ang{"vieil anglais"}
        ar_001{"arabe standard moderne"}
        asa{"assou"}
        az{"azerbaïdjanais"}
        bbj{"ghomala"}
        bez{"bena"}
        bik{"bicol"}
        byn{"bilen"}
        byv{"medumba"}
        chg{"tchagatay"}
        chn{"chinook"}
        ckb{"kurde central"}
        cr{"cri"}
        de_AT{"allemand autrichien"}
        de_CH{"allemand suisse"}
        den{"slave"}
        dgr{"tlicho"}
        en_AU{"anglais australien"}
        en_CA{"anglais canadien"}
        en_GB{"anglais britannique"}
        en_US{"anglais américain"}
        esu{"yupik central"}
        ewo{"ewondo"}
        fr_CA{"français canadien"}
        fr_CH{"français suisse"}
        frc{"cajun"}
        frp{"franco-provençal"}
        gbz{"dari"}
        goh{"vieux haut-allemand"}
        gu{"gujarati"}
        ii{"yi de Sichuan"}
        ken{"kenyang"}
        kg{"kongo"}
        kl{"kalaallisut"}
        ks{"kashmiri"}
        ksb{"chambala"}
        ksh{"kölsch"}
        liv{"live"}
        lu{"luba-katanga"}
        lzh{"chinois classique"}
        mgh{"makhuwa-meetto"}
        mgo{"meta’"}
        mr{"marathe"}
        mwr{"marwari"}
        mwv{"mentawai"}
        nds_NL{"bas saxon"}
        njo{"ao naga"}
        nl_BE{"flamand"}
        nmg{"kwasio"}
        nwc{"newari classique"}
        nyn{"nkole"}
        pau{"palauan"}
        pdc{"allemand de Pennsylvanie"}
        pdt{"bas allemand mennonite"}
        peo{"vieux perse"}
        pfl{"palatin"}
        pro{"ancien occitan"}
        pt_BR{"portugais brésilien"}
        pt_PT{"portugais européen"}
        quc{"k’iche’"}
        rar{"rarotonga"}
        ro_MD{"moldave"}
        sbp{"sangu"}
        sdh{"kurde méridional"}
        sei{"seri"}
        sga{"vieil irlandais"}
        sly{"selayar"}
        smn{"sami d’Inari"}
        stq{"frison de Saterland"}
        sus{"sosso"}
        sw_CD{"swahili congolais"}
        tru{"turoyo"}
        tzm{"tamazight"}
        zh_Hans{"chinois simplifié"}
        zh_Hant{"chinois traditionnel"}
    }
    Languages%long{
        zh_Hans{"chinois, mandarin simplifié"}
        zh_Hant{"chinois, mandarin traditionnel"}
    }
    Languages%menu{
        ckb{"sorani"}
        yue{"chinois, cantonais"}
        zh{"chinois, mandarin"}
    }
    Languages%variant{
        ug{"ouïghour"}
    }
    Scripts{
        Deva{"devanagari"}
        Gujr{"gujarati"}
        Hanb{"hanb"}
        Hans{"idéogrammes han simplifiés"}
        Hant{"idéogrammes han traditionnels"}
        Hrkt{"syllabaires japonais"}
        Olck{"ol chiki"}
        Zsye{"zsye"}
    }
    Scripts%stand-alone{
        Hans{"caractères chinois simplifiés"}
        Hant{"caractères chinois traditionnels"}
    }
    Types{
        calendar{
            ethiopic-amete-alem{"Calendrier éthiopien de l’An de grâce"}
            islamic-umalqura{"calendrier musulman (calculé, Umm al-Qura)"}
        }
        collation{
            dictionary{"Ordre de tri du dictionnaire"}
            eor{"ordre multilingue européen"}
            reformed{"Ordre de tri réformé"}
            searchjl{"Rechercher par consonne initiale en hangeul"}
        }
        d0{
            fwidth{"pleine chasse"}
            hwidth{"demi-chasse"}
        }
        m0{
            bgn{"BGN (commission de toponymie des États-Unis)"}
            ungegn{"GENUNG"}
        }
        numbers{
            gujr{"chiffres gujaratis"}
            mong{"Chiffres mongols"}
        }
    }
    Version{"37"}
    characterLabelPattern{
        category-list{"{0} : {1}"}
    }
    codePatterns{
        language{"langue : {0}"}
        script{"écriture : {0}"}
        territory{"région : {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0} : {1}"}
    }
}
