/*
 * Copyright 2014 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.i18n.client.impl.cldr;

import com.google.gwt.core.client.JavaScriptObject;

// DO NOT EDIT - GENERATED FROM CLDR DATA:
//  cldrVersion=25
//  date=$Date: 2014-03-01 06:57:43 +0100 (Sat, 01 Mar 2014) $
//  number=$Revision: 9852 $
//  type=fr

/**
 * Localized names for the "fr" locale.
 */
public class LocalizedNamesImpl_fr extends LocalizedNamesImpl {

  @Override
  public String[] loadLikelyRegionCodes() {
    return new String[] {
        "FR",
        "CM",
        "MG",
        "CA",
        "TN",
        "CI",
        "DZ",
        "MA",
        "BI",
        "BE",
    };
  }

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AF",
        "ZA",
        "AL",
        "DZ",
        "DE",
        "AD",
        "AO",
        "AI",
        "AQ",
        "AG",
        "AN",
        "SA",
        "AR",
        "AM",
        "AW",
        "AU",
        "AT",
        "AZ",
        "BS",
        "BH",
        "BD",
        "BB",
        "BE",
        "BZ",
        "BJ",
        "BM",
        "BT",
        "BY",
        "BO",
        "BA",
        "BW",
        "BR",
        "BN",
        "BG",
        "BF",
        "BI",
        "KH",
        "CM",
        "CA",
        "CV",
        "EA",
        "CL",
        "CN",
        "CY",
        "CO",
        "KM",
        "CG",
        "CD",
        "KP",
        "KR",
        "CR",
        "CI",
        "HR",
        "CU",
        "CW",
        "DK",
        "DG",
        "DJ",
        "DM",
        "EG",
        "SV",
        "AE",
        "EC",
        "ER",
        "ES",
        "EE",
        "VA",
        "FM",
        "US",
        "ET",
        "FJ",
        "FI",
        "FR",
        "GA",
        "GM",
        "GE",
        "GS",
        "GH",
        "GI",
        "GR",
        "GD",
        "GL",
        "GP",
        "GU",
        "GT",
        "GG",
        "GN",
        "GW",
        "GQ",
        "GY",
        "GF",
        "HT",
        "HN",
        "HU",
        "BV",
        "CX",
        "CP",
        "AC",
        "IM",
        "NF",
        "AX",
        "KY",
        "IC",
        "CC",
        "CK",
        "FO",
        "HM",
        "FK",
        "MP",
        "MH",
        "UM",
        "SB",
        "TC",
        "VG",
        "VI",
        "IN",
        "ID",
        "IQ",
        "IR",
        "IE",
        "IS",
        "IL",
        "IT",
        "JM",
        "JP",
        "JE",
        "JO",
        "KZ",
        "KE",
        "KG",
        "KI",
        "XK",
        "KW",
        "LA",
        "RE",
        "LS",
        "LV",
        "LB",
        "LR",
        "LY",
        "LI",
        "LT",
        "LU",
        "MK",
        "MG",
        "MY",
        "MW",
        "MV",
        "ML",
        "MT",
        "MA",
        "MQ",
        "MU",
        "MR",
        "YT",
        "MX",
        "MD",
        "MC",
        "MN",
        "ME",
        "MS",
        "MZ",
        "MM",
        "NA",
        "NR",
        "NP",
        "NI",
        "NE",
        "NG",
        "NU",
        "NO",
        "NC",
        "NZ",
        "OM",
        "UG",
        "UZ",
        "PK",
        "PW",
        "PA",
        "PG",
        "PY",
        "NL",
        "BQ",
        "PE",
        "PH",
        "PN",
        "PL",
        "PF",
        "PR",
        "PT",
        "QA",
        "HK",
        "MO",
        "QO",
        "CF",
        "DO",
        "CZ",
        "RO",
        "GB",
        "RU",
        "RW",
        "EH",
        "BL",
        "SH",
        "LC",
        "KN",
        "SM",
        "MF",
        "SX",
        "PM",
        "VC",
        "WS",
        "AS",
        "ST",
        "SN",
        "RS",
        "SC",
        "SL",
        "SG",
        "SK",
        "SI",
        "SO",
        "SD",
        "SS",
        "LK",
        "SE",
        "CH",
        "SR",
        "SJ",
        "SZ",
        "SY",
        "TJ",
        "TW",
        "TZ",
        "TD",
        "TF",
        "IO",
        "PS",
        "TH",
        "TL",
        "TG",
        "TK",
        "TO",
        "TT",
        "TA",
        "TN",
        "TM",
        "TR",
        "TV",
        "UA",
        "EU",
        "UY",
        "VU",
        "VE",
        "VN",
        "WF",
        "YE",
        "ZM",
        "ZW",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Monde");
    namesMap.put("002", "Afrique");
    namesMap.put("003", "Amérique du Nord");
    namesMap.put("005", "Amérique du Sud");
    namesMap.put("009", "Océanie");
    namesMap.put("011", "Afrique occidentale");
    namesMap.put("013", "Amérique centrale");
    namesMap.put("014", "Afrique orientale");
    namesMap.put("015", "Afrique septentrionale");
    namesMap.put("017", "Afrique centrale");
    namesMap.put("018", "Afrique australe");
    namesMap.put("019", "Amériques");
    namesMap.put("021", "Amérique septentrionale");
    namesMap.put("029", "Caraïbes");
    namesMap.put("030", "Asie orientale");
    namesMap.put("034", "Asie du Sud");
    namesMap.put("035", "Asie du Sud-Est");
    namesMap.put("039", "Europe méridionale");
    namesMap.put("053", "Australasie");
    namesMap.put("054", "Mélanésie");
    namesMap.put("057", "région micronésienne");
    namesMap.put("061", "Polynésie");
    namesMap.put("142", "Asie");
    namesMap.put("143", "Asie centrale");
    namesMap.put("145", "Asie occidentale");
    namesMap.put("151", "Europe orientale");
    namesMap.put("154", "Europe septentrionale");
    namesMap.put("155", "Europe occidentale");
    namesMap.put("419", "Amérique latine");
    namesMap.put("AC", "Île de l’Ascension");
    namesMap.put("AD", "Andorre");
    namesMap.put("AE", "Émirats arabes unis");
    namesMap.put("AG", "Antigua-et-Barbuda");
    namesMap.put("AL", "Albanie");
    namesMap.put("AM", "Arménie");
    namesMap.put("AN", "Antilles néerlandaises");
    namesMap.put("AQ", "Antarctique");
    namesMap.put("AR", "Argentine");
    namesMap.put("AS", "Samoa américaines");
    namesMap.put("AT", "Autriche");
    namesMap.put("AU", "Australie");
    namesMap.put("AX", "Îles Åland");
    namesMap.put("AZ", "Azerbaïdjan");
    namesMap.put("BA", "Bosnie-Herzégovine");
    namesMap.put("BB", "Barbade");
    namesMap.put("BE", "Belgique");
    namesMap.put("BG", "Bulgarie");
    namesMap.put("BH", "Bahreïn");
    namesMap.put("BJ", "Bénin");
    namesMap.put("BL", "Saint-Barthélemy");
    namesMap.put("BM", "Bermudes");
    namesMap.put("BN", "Brunéi Darussalam");
    namesMap.put("BO", "Bolivie");
    namesMap.put("BQ", "Pays-Bas caribéens");
    namesMap.put("BR", "Brésil");
    namesMap.put("BT", "Bhoutan");
    namesMap.put("BV", "Île Bouvet");
    namesMap.put("BY", "Biélorussie");
    namesMap.put("CC", "Îles Cocos (Keeling)");
    namesMap.put("CD", "Congo-Kinshasa");
    namesMap.put("CF", "République centrafricaine");
    namesMap.put("CG", "Congo-Brazzaville");
    namesMap.put("CH", "Suisse");
    namesMap.put("CK", "Îles Cook");
    namesMap.put("CL", "Chili");
    namesMap.put("CM", "Cameroun");
    namesMap.put("CN", "Chine");
    namesMap.put("CO", "Colombie");
    namesMap.put("CP", "Île Clipperton");
    namesMap.put("CV", "Cap-Vert");
    namesMap.put("CX", "Île Christmas");
    namesMap.put("CY", "Chypre");
    namesMap.put("CZ", "République tchèque");
    namesMap.put("DE", "Allemagne");
    namesMap.put("DK", "Danemark");
    namesMap.put("DM", "Dominique");
    namesMap.put("DO", "République dominicaine");
    namesMap.put("DZ", "Algérie");
    namesMap.put("EA", "Ceuta et Melilla");
    namesMap.put("EC", "Équateur");
    namesMap.put("EE", "Estonie");
    namesMap.put("EG", "Égypte");
    namesMap.put("EH", "Sahara occidental");
    namesMap.put("ER", "Érythrée");
    namesMap.put("ES", "Espagne");
    namesMap.put("ET", "Éthiopie");
    namesMap.put("EU", "Union européenne");
    namesMap.put("FI", "Finlande");
    namesMap.put("FJ", "Fidji");
    namesMap.put("FK", "Îles Malouines");
    namesMap.put("FM", "États fédérés de Micronésie");
    namesMap.put("FO", "Îles Féroé");
    namesMap.put("GB", "Royaume-Uni");
    namesMap.put("GD", "Grenade");
    namesMap.put("GE", "Géorgie");
    namesMap.put("GF", "Guyane française");
    namesMap.put("GG", "Guernesey");
    namesMap.put("GL", "Groenland");
    namesMap.put("GM", "Gambie");
    namesMap.put("GN", "Guinée");
    namesMap.put("GQ", "Guinée équatoriale");
    namesMap.put("GR", "Grèce");
    namesMap.put("GS", "Géorgie du Sud et les Îles Sandwich du Sud");
    namesMap.put("GW", "Guinée-Bissau");
    namesMap.put("HK", "R.A.S. chinoise de Hong Kong");
    namesMap.put("HM", "Îles Heard et MacDonald");
    namesMap.put("HR", "Croatie");
    namesMap.put("HT", "Haïti");
    namesMap.put("HU", "Hongrie");
    namesMap.put("IC", "Îles Canaries");
    namesMap.put("ID", "Indonésie");
    namesMap.put("IE", "Irlande");
    namesMap.put("IL", "Israël");
    namesMap.put("IM", "Île de Man");
    namesMap.put("IN", "Inde");
    namesMap.put("IO", "Territoire britannique de l’océan Indien");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islande");
    namesMap.put("IT", "Italie");
    namesMap.put("JM", "Jamaïque");
    namesMap.put("JO", "Jordanie");
    namesMap.put("JP", "Japon");
    namesMap.put("KG", "Kirghizistan");
    namesMap.put("KH", "Cambodge");
    namesMap.put("KM", "Comores");
    namesMap.put("KN", "Saint-Kitts-et-Nevis");
    namesMap.put("KP", "Corée du Nord");
    namesMap.put("KR", "Corée du Sud");
    namesMap.put("KW", "Koweït");
    namesMap.put("KY", "Îles Caïmans");
    namesMap.put("LB", "Liban");
    namesMap.put("LC", "Sainte-Lucie");
    namesMap.put("LR", "Libéria");
    namesMap.put("LT", "Lituanie");
    namesMap.put("LV", "Lettonie");
    namesMap.put("LY", "Libye");
    namesMap.put("MA", "Maroc");
    namesMap.put("MD", "Moldavie");
    namesMap.put("ME", "Monténégro");
    namesMap.put("MF", "Saint-Martin (partie française)");
    namesMap.put("MH", "Îles Marshall");
    namesMap.put("MK", "Macédoine");
    namesMap.put("MM", "Myanmar");
    namesMap.put("MN", "Mongolie");
    namesMap.put("MO", "R.A.S. chinoise de Macao");
    namesMap.put("MP", "Îles Mariannes du Nord");
    namesMap.put("MR", "Mauritanie");
    namesMap.put("MT", "Malte");
    namesMap.put("MU", "Maurice");
    namesMap.put("MX", "Mexique");
    namesMap.put("MY", "Malaisie");
    namesMap.put("NA", "Namibie");
    namesMap.put("NC", "Nouvelle-Calédonie");
    namesMap.put("NF", "Île Norfolk");
    namesMap.put("NG", "Nigéria");
    namesMap.put("NL", "Pays-Bas");
    namesMap.put("NO", "Norvège");
    namesMap.put("NP", "Népal");
    namesMap.put("NZ", "Nouvelle-Zélande");
    namesMap.put("PE", "Pérou");
    namesMap.put("PF", "Polynésie française");
    namesMap.put("PG", "Papouasie-Nouvelle-Guinée");
    namesMap.put("PL", "Pologne");
    namesMap.put("PM", "Saint-Pierre-et-Miquelon");
    namesMap.put("PN", "Pitcairn");
    namesMap.put("PR", "Porto Rico");
    namesMap.put("PS", "Territoires palestiniens");
    namesMap.put("PW", "Palaos");
    namesMap.put("QO", "régions éloignées de l’Océanie");
    namesMap.put("RE", "La Réunion");
    namesMap.put("RO", "Roumanie");
    namesMap.put("RS", "Serbie");
    namesMap.put("RU", "Russie");
    namesMap.put("SA", "Arabie saoudite");
    namesMap.put("SB", "Îles Salomon");
    namesMap.put("SD", "Soudan");
    namesMap.put("SE", "Suède");
    namesMap.put("SG", "Singapour");
    namesMap.put("SH", "Sainte-Hélène");
    namesMap.put("SI", "Slovénie");
    namesMap.put("SJ", "Svalbard et Jan Mayen");
    namesMap.put("SK", "Slovaquie");
    namesMap.put("SM", "Saint-Marin");
    namesMap.put("SN", "Sénégal");
    namesMap.put("SO", "Somalie");
    namesMap.put("SS", "Soudan du Sud");
    namesMap.put("ST", "Sao Tomé-et-Principe");
    namesMap.put("SX", "Saint-Martin (partie néerlandaise)");
    namesMap.put("SY", "Syrie");
    namesMap.put("TC", "Îles Turques-et-Caïques");
    namesMap.put("TD", "Tchad");
    namesMap.put("TF", "Terres australes françaises");
    namesMap.put("TH", "Thaïlande");
    namesMap.put("TJ", "Tadjikistan");
    namesMap.put("TL", "Timor oriental");
    namesMap.put("TM", "Turkménistan");
    namesMap.put("TN", "Tunisie");
    namesMap.put("TR", "Turquie");
    namesMap.put("TT", "Trinité-et-Tobago");
    namesMap.put("TW", "Taïwan");
    namesMap.put("TZ", "Tanzanie");
    namesMap.put("UG", "Ouganda");
    namesMap.put("UM", "Îles mineures éloignées des États-Unis");
    namesMap.put("US", "États-Unis");
    namesMap.put("UZ", "Ouzbékistan");
    namesMap.put("VA", "État de la Cité du Vatican");
    namesMap.put("VC", "Saint-Vincent-et-les Grenadines");
    namesMap.put("VG", "Îles Vierges britanniques");
    namesMap.put("VI", "Îles Vierges des États-Unis");
    namesMap.put("WF", "Wallis-et-Futuna");
    namesMap.put("YE", "Yémen");
    namesMap.put("ZA", "Afrique du Sud");
    namesMap.put("ZM", "Zambie");
    namesMap.put("ZZ", "région indéterminée");
  }

  @Override
  protected JavaScriptObject loadNameMapNative() {
    return overrideMap(super.loadNameMapNative(), loadMyNameMap());
  }

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Monde",
        "002": "Afrique",
        "003": "Amérique du Nord",
        "005": "Amérique du Sud",
        "009": "Océanie",
        "011": "Afrique occidentale",
        "013": "Amérique centrale",
        "014": "Afrique orientale",
        "015": "Afrique septentrionale",
        "017": "Afrique centrale",
        "018": "Afrique australe",
        "019": "Amériques",
        "021": "Amérique septentrionale",
        "029": "Caraïbes",
        "030": "Asie orientale",
        "034": "Asie du Sud",
        "035": "Asie du Sud-Est",
        "039": "Europe méridionale",
        "053": "Australasie",
        "054": "Mélanésie",
        "057": "région micronésienne",
        "061": "Polynésie",
        "142": "Asie",
        "143": "Asie centrale",
        "145": "Asie occidentale",
        "151": "Europe orientale",
        "154": "Europe septentrionale",
        "155": "Europe occidentale",
        "419": "Amérique latine",
        "AC": "Île de l’Ascension",
        "AD": "Andorre",
        "AE": "Émirats arabes unis",
        "AG": "Antigua-et-Barbuda",
        "AL": "Albanie",
        "AM": "Arménie",
        "AN": "Antilles néerlandaises",
        "AQ": "Antarctique",
        "AR": "Argentine",
        "AS": "Samoa américaines",
        "AT": "Autriche",
        "AU": "Australie",
        "AX": "Îles Åland",
        "AZ": "Azerbaïdjan",
        "BA": "Bosnie-Herzégovine",
        "BB": "Barbade",
        "BE": "Belgique",
        "BG": "Bulgarie",
        "BH": "Bahreïn",
        "BJ": "Bénin",
        "BL": "Saint-Barthélemy",
        "BM": "Bermudes",
        "BN": "Brunéi Darussalam",
        "BO": "Bolivie",
        "BQ": "Pays-Bas caribéens",
        "BR": "Brésil",
        "BT": "Bhoutan",
        "BV": "Île Bouvet",
        "BY": "Biélorussie",
        "CC": "Îles Cocos (Keeling)",
        "CD": "Congo-Kinshasa",
        "CF": "République centrafricaine",
        "CG": "Congo-Brazzaville",
        "CH": "Suisse",
        "CK": "Îles Cook",
        "CL": "Chili",
        "CM": "Cameroun",
        "CN": "Chine",
        "CO": "Colombie",
        "CP": "Île Clipperton",
        "CV": "Cap-Vert",
        "CX": "Île Christmas",
        "CY": "Chypre",
        "CZ": "République tchèque",
        "DE": "Allemagne",
        "DK": "Danemark",
        "DM": "Dominique",
        "DO": "République dominicaine",
        "DZ": "Algérie",
        "EA": "Ceuta et Melilla",
        "EC": "Équateur",
        "EE": "Estonie",
        "EG": "Égypte",
        "EH": "Sahara occidental",
        "ER": "Érythrée",
        "ES": "Espagne",
        "ET": "Éthiopie",
        "EU": "Union européenne",
        "FI": "Finlande",
        "FJ": "Fidji",
        "FK": "Îles Malouines",
        "FM": "États fédérés de Micronésie",
        "FO": "Îles Féroé",
        "GB": "Royaume-Uni",
        "GD": "Grenade",
        "GE": "Géorgie",
        "GF": "Guyane française",
        "GG": "Guernesey",
        "GL": "Groenland",
        "GM": "Gambie",
        "GN": "Guinée",
        "GQ": "Guinée équatoriale",
        "GR": "Grèce",
        "GS": "Géorgie du Sud et les Îles Sandwich du Sud",
        "GW": "Guinée-Bissau",
        "HK": "R.A.S. chinoise de Hong Kong",
        "HM": "Îles Heard et MacDonald",
        "HR": "Croatie",
        "HT": "Haïti",
        "HU": "Hongrie",
        "IC": "Îles Canaries",
        "ID": "Indonésie",
        "IE": "Irlande",
        "IL": "Israël",
        "IM": "Île de Man",
        "IN": "Inde",
        "IO": "Territoire britannique de l’océan Indien",
        "IQ": "Irak",
        "IS": "Islande",
        "IT": "Italie",
        "JM": "Jamaïque",
        "JO": "Jordanie",
        "JP": "Japon",
        "KG": "Kirghizistan",
        "KH": "Cambodge",
        "KM": "Comores",
        "KN": "Saint-Kitts-et-Nevis",
        "KP": "Corée du Nord",
        "KR": "Corée du Sud",
        "KW": "Koweït",
        "KY": "Îles Caïmans",
        "LB": "Liban",
        "LC": "Sainte-Lucie",
        "LR": "Libéria",
        "LT": "Lituanie",
        "LV": "Lettonie",
        "LY": "Libye",
        "MA": "Maroc",
        "MD": "Moldavie",
        "ME": "Monténégro",
        "MF": "Saint-Martin (partie française)",
        "MH": "Îles Marshall",
        "MK": "Macédoine",
        "MM": "Myanmar",
        "MN": "Mongolie",
        "MO": "R.A.S. chinoise de Macao",
        "MP": "Îles Mariannes du Nord",
        "MR": "Mauritanie",
        "MT": "Malte",
        "MU": "Maurice",
        "MX": "Mexique",
        "MY": "Malaisie",
        "NA": "Namibie",
        "NC": "Nouvelle-Calédonie",
        "NF": "Île Norfolk",
        "NG": "Nigéria",
        "NL": "Pays-Bas",
        "NO": "Norvège",
        "NP": "Népal",
        "NZ": "Nouvelle-Zélande",
        "PE": "Pérou",
        "PF": "Polynésie française",
        "PG": "Papouasie-Nouvelle-Guinée",
        "PL": "Pologne",
        "PM": "Saint-Pierre-et-Miquelon",
        "PN": "Pitcairn",
        "PR": "Porto Rico",
        "PS": "Territoires palestiniens",
        "PW": "Palaos",
        "QO": "régions éloignées de l’Océanie",
        "RE": "La Réunion",
        "RO": "Roumanie",
        "RS": "Serbie",
        "RU": "Russie",
        "SA": "Arabie saoudite",
        "SB": "Îles Salomon",
        "SD": "Soudan",
        "SE": "Suède",
        "SG": "Singapour",
        "SH": "Sainte-Hélène",
        "SI": "Slovénie",
        "SJ": "Svalbard et Jan Mayen",
        "SK": "Slovaquie",
        "SM": "Saint-Marin",
        "SN": "Sénégal",
        "SO": "Somalie",
        "SS": "Soudan du Sud",
        "ST": "Sao Tomé-et-Principe",
        "SX": "Saint-Martin (partie néerlandaise)",
        "SY": "Syrie",
        "TC": "Îles Turques-et-Caïques",
        "TD": "Tchad",
        "TF": "Terres australes françaises",
        "TH": "Thaïlande",
        "TJ": "Tadjikistan",
        "TL": "Timor oriental",
        "TM": "Turkménistan",
        "TN": "Tunisie",
        "TR": "Turquie",
        "TT": "Trinité-et-Tobago",
        "TW": "Taïwan",
        "TZ": "Tanzanie",
        "UG": "Ouganda",
        "UM": "Îles mineures éloignées des États-Unis",
        "US": "États-Unis",
        "UZ": "Ouzbékistan",
        "VA": "État de la Cité du Vatican",
        "VC": "Saint-Vincent-et-les Grenadines",
        "VG": "Îles Vierges britanniques",
        "VI": "Îles Vierges des États-Unis",
        "WF": "Wallis-et-Futuna",
        "YE": "Yémen",
        "ZA": "Afrique du Sud",
        "ZM": "Zambie",
        "ZZ": "région indéterminée"
    };
  }-*/;
}
