// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

fr {
    Version{"2.0"}
    collations {
        standard { 
            Version { "1.0" }
            Sequence { "[backwards 2]&A<<\u00e6/e<<<\u00c6/E" }
        }
    }
    // http://www.iso.org/iso/en/prods-services/iso3166ma/index.html
    Countries {
        Fallback{ "en"}
        AD { "Andorre" }
        AE { "\u00c9mirats Arabes Unis" }
        AG { "Antigua et Barbuda" }
        AL { "Albanie" }
        AM { "Arm\u00E9nie" }
        AN { "Antilles N\u00E9erlandaises" }
        AR { "Argentine" }
        AS { "Samoa Am\u00E9ricaines" }
        AT { "Autriche" }
        AU { "Australie" }
        AZ { "Azerba\u00EFdjan" }

        BA { "Bosnie-Herz\u00E9govine" }
        BB { "Barbade" }
        BE { "Belgique" }
        BG { "Bulgarie" }
        BH { "Bahre\u00EFn" }
        BM { "Bermudes" }
        BO { "Bolivie" }
        BR { "Br\u00E9sil" }
        BT { "Bhoutan" }
        BV { "\u00CEle Bouvet" }
        BY { "B\u00E9larus" }
        //BZ { "Belize" }

        CC { "\u00CEles Cocos" }
        CD { "R\u00E9publique D\u00E9mocratique du Congo" }
        CF { "R\u00E9publique  Centrafricaine" }
        CH { "Suisse" }
        CK { "\u00CEles Sandwich du Sud" }
        CL { "Chili" }
        CM { "Cameroun" }
        CN { "Chine" }
        CO { "Colombie" }
        CV { "Cap Vert" }
        CX { "\u00CEle Christmas" }
        CY { "Chypre" }
        CZ { "R\u00E9publique Tch\u00E8que" }

        DE { "Allemagne" }
        DK { "Danemark" }
        DM { "Dominique" }
        DO { "R\u00E9publique Dominicaine" }
        DZ { "Alg\u00E9rie" }

        EC { "\u00C9quateur" }
        EE { "Estonie" }
        EG { "Egypte" }
        EH { "Sahara Occidental" }
        ER { "\u00C9rythr\u00e9e" }
        ES { "Espagne" }
        ET { "Ethiopie" }

        FI { "Finlande" }
        FJ { "Fidji" }
        FK { "\u00CEles Falkland (Malvinas)" }
        FM { "Micron\u00E9sie" }
        FO { "\u00CEles F\u00E9ro\u00E9" }

        GB { "Royaume-Uni" }
        GD { "Grenade" }
        GE { "G\u00E9orgie" }
        GF { "Guyane Fran\u00e7aise" }
        GL { "Groenland" }
        GM { "Gambie" }
        GN { "Guin\u00E9e" }
        GQ { "Guin\u00E9e \u00C9quatoriale" }
        GR { "Gr\u00E8ce" }
        GS { "G\u00E9orgie du Sud, \u00CEles Sandwich du Sud" }
        GW { "Guin\u00E9e-Bissau" }
        GY { "Guyane" }

        HK { "Hong-Kong R.A.S." }
        HM { "\u00CEles Heard et MacDonald" }
        HR { "Croatie" }
        HT { "Ha\u00EFti" }
        HU { "Hongrie" }

        ID { "Indon\u00E9sie" }
        IE { "Irlande" }
        IL { "Isra\u00EBl" }
        IN { "Inde" }
        IO { "Territoire Britannique de l'Oc\u00E9an Indien" }
        IS { "Islande" }
        IT { "Italie" }

        JM { "Jama\u00EFque" }
        JO { "Jordanie" }
        JP { "Japon" }

        KH { "Cambodge" }
        KM { "Comores" }
        KN { "Saint Kitts et Nevis" }
        KP { "Cor\u00E9e du Nord" }    // alternate name { "Cor\u00E9e, R\u00E9publique populaire d\u00E9mocratique de" }
        KR { "Cor\u00E9e du Sud" }    // alternate name { "Cor\u00E9e, R\u00E9publique de" }
        KW { "Kowe\u00EFt" }

        LB { "Liban" }
        LC { "Sainte-Lucie" }
        LR { "Lib\u00E9ria" }
        LT { "Lithuanie" }
        LV { "Lettonie" }
        LY { "Libye" }

        MA { "Maroc" }
        //MD { "Moldavie" }
        MH { "\u00CEles Marshall" }
        MK { "Mac\u00E9doine" }
        MN { "Mongolie" }
        MO { "Macao R.A.S. de Chine" }
        MP { "Mariannes du Nord" }
        MR { "Mauritanie" }
        MT { "Malte" }
        MU { "Maurice" }
        MX { "Mexique" }
        MY { "Malaisie" }

        NA { "Namibie" }
        NC { "Nouvelle-Cal\u00E9donie" }
        NF { "\u00CEle Norfolk" }
        NG { "Nig\u00E9ria" }
        NL { "Pays-Bas" }
        NO { "Norv\u00E8ge" }
        NP { "N\u00E9pal" }
        NU { "Niu\u00E9" }
        NZ { "Nouvelle-Z\u00E9lande" }

        PE { "P\u00E9rou" }
        PF { "Polyn\u00E9sie Fran\u00E7aise" }
        PG { "Papouasie-Nouvelle-Guin\u00E9e" }
        PL { "Pologne" }
        PM { "Saint Pierre et Miquelon" }
        PR { "Porto Rico" }
        PS { "Territoire Palestinien" }
        PW { "Palaos" }

        RO { "Roumanie" }
        RU { "Russie" }

        SA { "Arabie Saoudite" }
        SB { "\u00CEles Salomon" }
        SD { "Soudan" }
        SE { "Su\u00E8de" }
        SG { "Singapour" }
        SH { "Sainte-H\u00E9l\u00E8ne" }
        SI { "Slov\u00E9nie" }
        SJ { "Svalbard et \u00CEle Jan Mayen" }
        SK { "Slovaquie" }
        SM { "Saint-Marin" }
        SN { "S\u00E9n\u00E9gal" }
        SO { "Somalie" }
        SP { "Serbie" }
        ST { "Sao Tom\u00E9-et-Principe" }
        SY { "Syrie" }

        TC { "\u00CEles Turks et Ca\u00EFques" }
        TD { "Tchad" }
        TF { "Terres Australes Fran\u00E7aises" }
        TH { "Tha\u00EFlande" }
        TJ { "Tadjikistan" }
        //TL { "Timor" }
        TN { "Tunisie" }
        TR { "Turquie" }
        TT { "Trinit\u00E9 et Tobago" }
        TW { "Ta\u00EFwan, Province de Chine" }
        TZ { "Tanzanie" }

        UG { "Ouganda" }
        UM { "\u00CEles Mineures \u00C9loign\u00e9es des \u00C9tats-Unis" }
        US { "\u00C9tats-Unis" }
        UZ { "Ouzb\u00e9kistan" }

        VA { "Le Saint-Si\u00E8ge (Etat de la Cit\u00E9 du Vatican)" }
        VC { "Saint Vincent et les Grenadines" }
        VE { "V\u00e9n\u00e9zuela" }
        VG { "\u00CEles Vierges Britanniques" }
        VI { "\u00CEles Vierges des \u00C9tats-Unis" }
        VN { "Vi\u00eat Nam" }

        WF { "Wallis et Futuna" }

        YE { "Y\u00E9men" }
        YU { "Yougoslavie" }

        ZA { "Afrique du Sud" }
        ZM { "Zambie" }
    }

    // Currency display names
    Currencies {
        AED { "AED", "dirham des E A.U." } // UAE Dirham
        AFA { "AFA", "afghani" } // Afghani
        ALL { "ALL", "lek" } // Leck
        ANG { "ANG", "florin des Antilles n\u00E9erl." } // Netherlands Antillan Guilder
        AOK { "AOK", "kwanza" } // Kwanza
        ARA { "ARA", "austral" }
        ARP { "ARP", "peso argentin" } // Argentine Peso
        ATS { "ATS", "schilling autrichien" } // Schilling
        AUD { "AUD", "dollar australien" } // Australian Dollar
        BBD { "BBD", "dollar de Barbade" } // Barbados Dollar
        BDT { "BDT", "taka" } // Taka
        BEF { "FB", "franc belge" } // Belgian Franc
        BGL { "BGL", "lev" } // Lev
        BHD { "BHD", "dinar de Bahrein" } // Bahraini Dinar
        BIF { "BIF", "franc du Burundi" } // Burundi Franc
        BMD { "BMD", "dollar des Bermudes" } // Bermudian Dollar
        BND { "BND", "dollar de Brunei" } // Brunei Dollar
        BOP { "BOP", "peso bolivien" } // Bolivian Peso
        BRC { "BRC", "cruzeiro" } // Cruzeiro
        BSD { "BSD", "dollar des Bahamas" } // Bahamian Dollar
        BUK { "BUK", "kyat" } // Kyat
        BWP { "BWP", "pula" } // Pula
        BZD { "BZD", "dollar de Belize" } // Belize Dollar
        CAD { "CAD", "dollar canadien" } // Canadian Dollar
        CHF { "sFr.", "franc suisse" } // Swiss Franc
        CLP { "CLP", "peso chilien" } // Chilean Peso
        CNY { "CNY", "Yuan Ren-min-bi" } // Yuan Renminbi
        COP { "COP", "peso colombien" } // Colombian Peso
        CRC { "CRC", "colon" } // Costa Rican Colon
        CSK { "CSK", "couronne tch\u00E8que" } // Koruna
        CUP { "CUP", "peso cubain" } // Cuban Peso
        CVE { "CVE", "escudo du Cap-Vert" } // Cape Verde Escudo
        CYP { "CYP", "livre cypriote" } // Cyprus Pound
        CZK { "CZK", "couronne tch\u00E8que" } // Czech Koruna
        DEM { "DEM", "deutsche mark" } // Deutsche Mark
        // DIF { "DIF", "franc de Djibouti" } -- unconfirmed
        DKK { "DKK", "couronne danoise" } // Danish Krone
        DOP { "DOP", "peso dominicain" } // Dominican Peso
        DZD { "DZD", "dinar alg\u00E9rien" } // Algerian Dinar
        ECS { "ECS", "sucre" } // Sucre
        EGP { "EGP", "livre \u00E9gyptienne" } // Egyptian Pound
        ESP { "ESP", "peseta espagnole" } // Spanish Peseta
        ETB { "ETB", "birr" } // Ethiopian Birr
        EUR { "\u20AC", "euro" } // Euro
        FIM { "FIM", "mark finlandais" } // Markka
        FJD { "FJD", "dollar de Fidji" } // Fiji Dollar
        FKP { "FKP", "livre des Falkland" } // Falkland Islands Pound
        FRF { "F", "franc fran\u00E7ais" } // French Franc
        GBP { "\u00A3", "livre sterling" } // Pound Sterling
        GHC { "GHC", "cedi" } // Cedi
        GIP { "GIP", "livre de Gibraltar" } // Gibraltar Pound
        GMD { "GMD", "dalasie" } // Dalasi
        GNS { "GNS", "syli" } // Syli
        GQE { "GQE", "ekwele" } // Ekwele
        GRD { "GRD", "drachme" } // Drachma
        GTQ { "GTQ", "quetzal" } // Quetzal
        GWP { "GWP", "peso de Guin\u00E9e-Bissau" } // Guinea-Bissau Peso
        GYD { "GYD", "dollar de Guyane" } // Guyana Dollar
        HKD { "HKD", "dollar de Hong Kong" } // Hong Kong Dollar
        HNL { "HNL", "lempira" } // Lempira
        HRD { "HRD", "dinar croate" }
        HTG { "HTG", "gourde" } // Gourde
        HUF { "HUF", "forint" } // Forint
        IDR { "IDR", "rupiah" } // Rupiah
        IEP { "IEP", "livre irlandaise" } // Irish Pound
        ILS { "ILS", "sh\u00E9kel" } // New Israeli Sheqel
        INR { "=0#Rs.|1#Re.|1<Rs.", "roupie indienne" } // Indian Rupee
        IQD { "IQD", "dinar irakien" } // Iraqi Dinar
        IRR { "IRR", "rial iranien" } // Iranian Rial
        ISK { "ISK", "couronne islandaise" } // Iceland Krona
        ITL { "\u20A4", "lire italienne" } // Lira
        JMD { "JMD", "dollar jamaicain" } // Jamaican Dollar
        JOD { "JOD", "dinar jordanien" } // Jordanian Dinar
        JPY { "\u00A5", "yen" } // Yen
        KES { "KES", "shilling du Kenya" } // Kenyan Shilling
        KHR { "KHR", "riel" } // Riel
        KMF { "KMF", "franc des Comores" } // Comoro Franc
        KPW { "KPW", "won nord-cor\u00E9en" } // North Korean Won
        KRW { "KRW", "won" } // Won
        KWD { "KWD", "dinar koweitien" } // Kuwaiti Dinar
        KYD { "KYD", "dollar des Caimanes" } // Cayman Islands Dollar
        LAK { "LAK", "kip" } // Kip
        LBP { "LBP", "livre libanaise" } // Lebanese Pound
        LKR { "LKR", "roupie de Sri Lanka" } // Sri Lanka Rupee
        LRD { "LRD", "dollar lib\u00E9rien" } // Liberian Dollar
        LUF { "LUF", "franc luxembourgeois" } // Luxembourg Franc
        LYD { "LYD", "dinar Iybien" } // Lybian Dinar
        MAD { "MAD", "dirham marocain" } // Moroccan Dirham
        MGF { "MGF", "franc malgache" } // Malagasy Franc
        MLF { "MLF", "franc malien" } // Mali Franc
        MNT { "MNT", "tugrik" } // Tugrik
        MOP { "MOP", "pataca" } // Pataca
        MRO { "MRO", "ouguija" } // Ouguiya
        MTP { "MTP", "livre maltaise" } // Maltese Pound
        MUR { "MUR", "roupie de l'\u00EEle Maurice" } // Mauritius Rupee
        MVR { "MVR", "roupie des Maldives" } // Rufiyaa
        MWK { "MWK", "kwacha" } // Kwacha
        MXP { "MXP", "peso mexicain" } // Mexican Peso
        MYR { "MYR", "ringgit" } // Malaysian Ringgit
        MZM { "MZM", "metical" } // Metical
        NGN { "NGN", "naira" } // Naira
        NIC { "NIC", "cordoba" } // Cordoba
        NLG { "NLG", "florin n\u00E9erlandais" } // Netherlands Guilder
        NOK { "NOK", "couronne norv\u00E9gienne" } // Norwegian Krone
        NPR { "NPR", "roupie du N\u00E9pal" } // Nepalese Rupee
        NZD { "NZD", "dollar n\u00E9o-z\u00E9landais" } // New Zealand Dollar
        OMR { "OMR", "rial omani" } // Rial Omani
        PAB { "PAB", "balboa" } // Balboa
        PES { "PES", "sol" } // Sol
        PGK { "PGK", "kina" } // Kina
        PHP { "PHP", "peso philippin" } // Philippine Peso
        PKR { "PKR", "roupie du Pakistan" } // Pakistan Rupee
        PLZ { "PLZ", "zloty" } // Zloty
        PTE { "PTE", "escudo portugais" } // Portugese Escudo
        PYG { "PYG", "guarani" } // Guarani
        QAR { "QAR", "rial du Qatar" } // Qatari Rial
        ROL { "ROL", "leu" } // Leu
        RUR { "RUR", "rouble de Russie" } // Russian Ruble
        RWF { "RWF", "franc du Rwanda" } // Rwanda Franc
        SAR { "SAR", "riyal saoudien" } // Saudi Riyal
        SBD { "SBD", "dollar de Salomon" } // Solomon Islands Dollar
        SCR { "SCR", "roupie des Seychelles" } // Seychelles Rupee
        SDP { "SDP", "livre soudanaise" } // Sudanese Pound
        SEK { "SEK", "couronne su\u00E9doise" } // Swedish Krona
        SGD { "SGD", "dollar de Singapour" } // Singapore Dollar
        SHP { "SHP", "livre de Sainte-H\u00E9l\u00E8ne" } // Saint Helena Pound
        SIT { "SIT", "monnaie slov\u00E8ne" } // Tolar
        SKK { "SKK", "couronne slovaque" } // Slovak Koruna
        SLL { "SLL", "leone" } // Leone
        SOS { "SOS", "shilling de Somalie" } // Somali Shilling
        SRG { "SRG", "florin de Surinam" } // Suriname Guilder
        STD { "STD", "dobra" } // Dobra
        SUR { "SUR", "rouble de C.E.I." } // Rouble
        SYP { "SYP", "livre syrienne" } // Syrian Pound
        SZL { "SZL", "lilangeni" } // Lilangeni
        THB { "THB", "baht" } // Baht
        TND { "TND", "dinar tunisien" } // Tunisian Dinar
        TOP { "TOP", "pa'anga" } // Pa'anga
        TPE { "TPE", "escudo de Timor" } // Timor Escudo
        TRL { "TRL", "livre turque" } // Turkish Lira
        TTD { "TTD", "dollar de la Trinit\u00E9" } // Trinidad and Tobago Dollar
        TWD { "TWD", "dollar ta\u00EFwanien" } // New Taiwan Dollar
        TZS { "TZS", "shilling de Tanzanie" } // Tanzanian Shilling
        UGS { "UGS", "shilling ougandais" } // Uganda Shilling
        USD { "$", "dollar des Etats-Unis" } // US Dollar
        UYP { "UYP", "peso uruguayen" } // Uruguayan Peso
        VEB { "VEB", "bolivar" } // Bolivar
        VND { "VND", "dong" } // Dong
        VUV { "VUV", "vatu" } // Vatu
        WST { "WST", "tala" } // Tala
        XAF { "XAF", "franc CFA (BEAC)" } // CFA Franc BEAC
        XCD { "XCD", "dollar des Cara\u00EFbes" } // East Caribbean Dollar
        XEU { "XEU", "unit\u00E9 de compte europ\u00E9enne (ECU)" } // European Currency Unit
        XOF { "XOF", "franc CFA (BCEAO)" } // CFA Franc BCEAO
        XPF { "XPF", "franc CFP" } // CFP Franc
        YDD { "YDD", "dinar du Y\u00E9men" } // Yemeni Dinar
        YER { "YER", "riyal du Y\u00E9men" } // Yemeni Rial
        YUD { "YUD", "nouveau dinar yougoslave" } // New Yugoslavian
        ZAR { "ZAR", "rand" } // Rand
        ZMK { "ZMK", "kwacha" } // Kwacha
        ZRZ { "ZRZ", "za\u00EFre" } // Zaire
        ZWD { "ZWD", "Zimbabwe dollar" } // Zimbabwe Dollar
    }
    DateTimePatterns { 
        "HH' h 'mm z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE d MMMM yyyy",
        "d MMMM yyyy",
        "d MMM yy",
        "dd/MM/yy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "dim.",
        "lun.",
        "mar.",
        "mer.",
        "jeu.",
        "ven.",
        "sam.",
    }
    DayNames { 
        "dimanche",
        "lundi",
        "mardi",
        "mercredi",
        "jeudi",
        "vendredi",
        "samedi",
    }
    Eras { 
        "av. J.-C.",
        "ap. J.-C.",
    }
    localPatternChars { "GaMjkHmsSEDFwWxhKzAe" }
    LocaleScript{  
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters { "[a-z\u00e9\u00e8\u00f9\u00e7\u00e0\u00e2\u00ea\u00ee\u00f4\u00fb\u00e6\u0153\u00eb\u00ef\u00ff]" }

// http://lcweb.loc.gov/standards/iso639-2/frenchlangn.html
    Languages { 
        //Fallback { "en" }
        root { "racine" }

        aa { "afar" }
        ab { "abkhaze" }
        ae { "avestique" }
        af { "afrikaans" }
        am { "amharique" }
        ar { "arabe" }
        as { "assamais" }
        av { "avar" }
        ay { "aymara" }
        az { "az\u00E9ri" }
        ba { "bachkir" }
        be { "bi\u00E9lorusse" }
        bg { "bulgare" }
        bh { "bihari" }
        bi { "bichlamar" }
        bm { "bambara" }
        bn { "bengali" }
        bo { "tib\u00E9tain" }
        br { "breton" }
        bs { "bosniaque" }
        ca { "catalan" }
        ce { "tch\u00E9tch\u00E8ne" }
        ch { "chamorro" }
        co { "corse" }
        cr { "cree" }
        cs { "tch\u00E8que" }
        cv { "tchouvache" }
        cy { "gallois" }
        da { "danois" }
        de { "allemand" }
        dv { "maldivien" }
        dz { "dzongkha" }
        ee { "\u00E9w\u00E9" }
        el { "grec" }
        en { "anglais" }
        eo { "esp\u00E9ranto" }
        es { "espagnol" }
        et { "estonien" }
        eu { "basque" }
        fa { "persan" }
        ff { "peul" }
        fi { "finnois" }
        fj { "fidjien" }
        fo { "f\u00E9ro\u00EFen" }
        fr { "fran\u00E7ais" }
        fy { "frison" }
        ga { "irlandais" }
        gd { "ga\u00E9lique \u00E9cossais" }
        gl { "galicien" }
        gn { "guarani" }
        gu { "goudjrati" }
        gv { "manx" }
        ha { "haoussa" }
        haw { "hawa\u00EFen" }
        he { "h\u00E9breu" }
        hi { "hindi" }
        ho { "hiri motu" }
        hr { "croate" }
        ht { "ha\u00EFtien" }
        hu { "hongrois" }
        hy { "arm\u00E9nien" }
        hz { "herero" }
        ia { "interlingua" }
        id { "indon\u00E9sien" }
        ie { "interlingu\u00EB" }
        ig { "igbo" }
        ii { "yi de Sichuan" }
        ik { "inupiaq" }
        io { "ido" }
        is { "islandais" }
        it { "italien" }
        iu { "inuktitut" }
        ja { "japonais" }
        jv { "javanais" }
        ka { "g\u00E9orgien" }
        kg { "kongo" }
        ki { "kikuyu" }
        kj { "kuanyama" }
        kk { "kazakh" }
        kl { "groenlandais" }
        km { "khmer" }
        kn { "kannada" }
        ko { "cor\u00E9en" }
        kok { "konkani" }
        kr { "kanouri" }
        ks { "kashmiri" }
        ku { "kurde" }
        kv { "komi" }
        kw { "cornique" }
        ky { "kirghize" }
        la { "latin" }
        lb { "luxembourgeois" }
        lg { "ganda" }
        li { "limbourgeois" }
        ln { "lingala" }
        lo { "lao" }
        lt { "lithuanien" }
        lu { "luba-katanga" }
        lv { "letton" }
        mg { "malgache" }
        mh { "marshall" }
        mi { "maori" }
        mk { "mac\u00E9donien" }
        ml { "malayalam" }
        mn { "mongol" }
        mo { "moldave" }
        mr { "marathe" }
        ms { "malais" }
        mt { "maltais" }
        my { "birman" }
        na { "nauruan" }
        nb { "bokm\u00E5l norv\u00E9gien" }
        nd { "nd\u00E9b\u00E9l\u00E9 du Nord" }
        ne { "n\u00E9palais" }
        ng { "ndonga" }
        nl { "n\u00E9erlandais" }
        nn { "nynorsk norv\u00E9gien" }
        no { "norv\u00E9gien" }
        nr { "nd\u00E9b\u00E9l\u00E9 du Sud" }
        nv { "navaho" }
        ny { "nyanja" }
        oc { "occitan" }
        oj { "ojibwa" }
        om { "galla" }
        or { "oriya" }
        os { "oss\u00E8te" }
        pa { "pendjabi" }
        pi { "pali" }
        pl { "polonais" }
        ps { "pachto" }
        pt { "portugais" }
        qu { "quechua" }
        rm { "rh\u00E9to-roman" }
        rn { "roundi" }
        ro { "roumain" }
        ru { "russe" }
        rw { "rwanda" }
        sa { "sanskrit" }
        sc { "sarde" }
        sd { "sindhi" }
        se { "sami du Nord" }
        sg { "sango" }
        sh { "serbo-croate" }
        si { "singhalais" }
        sk { "slovaque" }
        sl { "slov\u00E8ne" }
        sm { "samoan" }
        sn { "shona" }
        so { "somali" }
        sq { "albanais" }
        sr { "serbe" }
        ss { "swati" }
        st { "sotho du Sud" }
        su { "soundanais" }
        sv { "su\u00E9dois" }
        sw { "swahili" }
        ta { "tamoul" }
        te { "t\u00E9lougou" }
        tg { "tadjik" }
        th { "tha\u00EF" }
        ti { "tigrigna" }
        tk { "turkm\u00E8ne" }
        tl { "tagalog" }
        tn { "setswana" }
        to { "tonga" }
        tr { "turc" }
        ts { "tsonga" }
        tt { "tatare" }
        tw { "twi" }
        ty { "tahitien" }
        ug { "ou\u00EFgour" }
        uk { "ukrainien" }
        ur { "ourdou" }
        uz { "ouzbek" }
        ve { "venda" }
        vi { "vietnamien" }
        vo { "volap\u00FCk" }
        wa { "wallon" }
        wo { "wolof" }
        xh { "xhosa" }
        yi { "yiddish" }
        yo { "yoruba" }
        za { "zhuang" }
        zh { "chinois" }
        zu { "zoulou" }
    }
    MonthAbbreviations { 
        "janv.",
        "f\u00E9vr.",
        "mars",
        "avr.",
        "mai",
        "juin",
        "juil.",
        "ao\u00FBt",
        "sept.",
        "oct.",
        "nov.",
        "d\u00E9c.",
    }
    MonthNames { 
        "janvier",
        "f\u00E9vrier",
        "mars",
        "avril",
        "mai",
        "juin",
        "juillet",
        "ao\u00FBt",
        "septembre",
        "octobre",
        "novembre",
        "d\u00E9cembre",
    }
    NumberElements { 
        ",",
        "\u00A0",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    NumberPatterns { 
        "#,##0.###;-#,##0.###",
        "#,##0.00 \u00A4;-#,##0.00 \u00A4",
        "#,##0%",
        "#E0",
    }

    Scripts {
        Arab { "arabe" }
        Armn { "arm\u00E9nien" }
        Beng { "beng\u00E2gl\u00EE" }
        Bopo { "bopomofo" }
        Brai { "braille" }
        Buhd { "bouhide" }
        Cans { "syllabaire autochthone canadien unifi\u00E9" }
        Cher { "tch\u00E9rok\u00EE" }
        Cprt { "chypriote" }
        Cyrl { "cyrillique" }
        Deva { "d\u00E9van\u00E2gar\u00EE" }
        Dsrt { "d\u00E9s\u00E9ret" }
        Ethi { "\u00E9thiopique" }
        Geor { "g\u00E9orgien" }
        Goth { "gotique" }
        Grek { "grec" }
        Gujr { "goudjar\u00E2t\u00EE" }
        Guru { "gourmoukh\u00EE" }
        Hang { "hang\u00FBl" }
        Hano { "hanoun\u00F3o" }
        Hani { "han" }
        //Hans { "Simplified Han" } // Not a formal part of ISO-15924 yet, and missing data.
        //Hant { "Traditional Han" } // Not a formal part of ISO-15924 yet, and missing data.
        Hebr { "h\u00E9breu" }
        Hira { "hiragana" }
        Ital { "ancien italique" }
        Kana { "katakana" }
        Khmr { "khmer" }
        Knda { "kannara" }
        Laoo { "laotien" }
        Latn { "latin" }
        //Limb { "Limbu" } // translation missing
        Linb { "lin\u00E9aire B" }
        Mlym { "malay\u00E2lam" }
        Mong { "mongol" }
        Mymr { "birman" }
        Ogam { "ogam" }
        Orya { "oriy\u00E2" }
        Osma { "osmanais" }
        //Qaac { "Coptic" } // translation missing, and this is PUA
        //Qaai { "Inherited" }// translation missing, and this is PUA
        Runr { "runique" }
        Shaw { "shavien" }
        Sinh { "singhalais" }
        Syrc { "syriaque" }
        Tagb { "tagbanoua" }
        //Tale { "Tai Le" } // translation missing
        Taml { "tamoul" }
        Telu { "t\u00E9lougou" }
        Tglg { "tagal" }
        Thaa { "th\u00E2na" }
        Thai { "tha\u00EF" }
        Tibt { "tib\u00E9tain" }
        //Ugar { "Ugaritic" } // translation missing
        Yiii { "yi" }
        //Zyyy { "Common" } // This could be "\u00E9criture ind\u00E9termin\u00E9e"
    }

    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

    // * Spellout rules for French.  French adds some interesting quirks of its
    // * own: 1) The word "et" is interposed between the tens and ones digits,
    // * but only if the ones digit if 1: 20 is "vingt," and 2 is "vingt-deux,"
    // * but 21 is "vingt-et-un."  2)  There are no words for 70, 80, or 90.
    // * "quatre-vingts" ("four twenties") is used for 80, and values proceed
    // * by score from 60 to 99 (e.g., 73 is "soixante-treize" ["sixty-thirteen"]).
    // * Numbers from 1,100 to 1,199 are rendered as hundreds rather than
    // * thousands: 1,100 is "onze cents" ("eleven hundred"), rather than
    // * "mille cent" ("one thousand one hundred")

    SpelloutRules {
        // the main rule set
        "%main:\n"
            "-x: moins >>;\n"
            "x.x: << virgule >>;\n"
               // words for numbers from 0 to 10
            "z\u00e9ro; un; deux; trois; quatre; cinq; six; sept; huit; neuf;\n"
            "dix; onze; douze; treize; quatorze; quinze; seize;\n"
            "    dix-sept; dix-huit; dix-neuf;\n"
               // ords for the multiples of 10: %%alt-ones inserts "et"
               // when needed
            "20: vingt[->%%alt-ones>];\n"
            "30: trente[->%%alt-ones>];\n"
            "40: quarante[->%%alt-ones>];\n"
            "50: cinquante[->%%alt-ones>];\n"
               // rule for 60.  The /20 causes this rule's multiplier to be
               // 20 rather than 10, allowinhg us to recurse for all values
               // from 60 to 79...
            "60/20: soixante[->%%alt-ones>];\n"
               // ...except for 71, which must be special-cased
            "71: soixante et onze;\n"
               // at 72, we have to repeat the rule for 60 to get us to 79
            "72/20: soixante->%%alt-ones>;\n"
               // at 80, we state a new rule with the phrase for 80.  Since
               // it changes form when there's a ones digit, we need a second
               // rule at 81.  This rule also includes "/20," allowing it to
               // be used correctly for all values up to 99
            "80: quatre-vingts; 81/20: quatre-vingt->>;\n"
               // "cent" becomes plural when preceded by a multiplier, and
               // the multiplier is omitted from the singular form
            "100: cent[ >>];\n"
            "200: << cents[ >>];\n"
            "1000: mille[ >>];\n"
               // values from 1,100 to 1,199 are rendered as "onze cents..."
               // instead of "mille cent..."  The > after "1000" decreases
               // the rule's exponent, causing its multiplier to be 100 instead
               // of 1,000.  This prevents us from getting "onze cents cent
               // vingt-deux" ("eleven hundred one hundred twenty-two").
            "1100>: onze cents[ >>];\n"
               // at 1,200, we go back to formating in thousands, so we
               // repeat the rule for 1,000
            "1200: mille >>;\n"
               // at 2,000, the multiplier is added
            "2000: << mille[ >>];\n"
            "1,000,000: << million[ >>];\n"
            "1,000,000,000: << milliard[ >>];\n"
            "1,000,000,000,000: << billion[ >>];\n"
            "1,000,000,000,000,000: =#,##0=;\n"
        // %%alt-ones is used to insert "et" when the ones digit is 1
        "%%alt-ones:\n"
            "; et-un; =%main=;\n" 
        "%%lenient-parse:\n"
            "&\u0000 << ' ' << ',' << '-';\n"
    }
    Keys{
        collation{ "Ordonnancement" }
        calendar { "Calendrier" }
        //currency { "" }
    }
    Types {
        collation{
            traditional{ "Traditionnel Ordonnancement" }
        }
        calendar{
            traditional{ "Traditionnel Calendrier" }
        }
    }
    Variants {
        REVISED { "R\u00e9vis\u00e9" }
    }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }

    // International Calendars Data.
    // NOTE (ICU 2.6) - the format of this data WILL CHANGE in future releases.  
    // Islamic calendar
    //Eras_islamic:array { 
    //        "AH"        // Anno Hijri  (in root)
    //}

    MonthNames_islamic {
            "Mouharram",            // Muharram
            "Safar",                // Safar
            "Rabi'-oul-Aououal",    // Rabi' al-awwal
            "Rabi'-out-Tani",       // Rabi' al-thani
            "Djoumada-l-Oula",      // Jumada al-awwal
            "Djoumada-t-Tania",     // Jumada al-thani
            "Radjab",               // Rajab
            "Cha'ban",              // Sha'ban
            "Ramadan",              // Ramadan
            "Chaououal",            // Shawwal
            "Dou-l-Qa'da",          // Dhu al-Qi'dah
            "Dou-l-Hidjja",         // Dhu al-Hijjah
    }
    MonthAbbreviations_islamic {  // same as MonthNames (no data)
        "fr/MonthNames_islamic"
    }   
    // Civil is identical other than in calculations
    MonthNames_islamic-civil:alias {
        "fr/MonthNames_islamic"
    }
    MonthAbbreviations_islamic-civil:alias {
        "fr/MonthAbbreviations_islamic"
    }


}
