/*
 * Copyright 2012 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

/**
 * Localized names for the "br" locale.
 */
public class LocalizedNamesImpl_br extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Bed");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Norzhamerika");
    namesMap.put("005", "Suamerika");
    namesMap.put("009", "Oseania");
    namesMap.put("011", "Afrika ar Cʼhornôg");
    namesMap.put("013", "Kreizamerika");
    namesMap.put("014", "Afrika ar Reter");
    namesMap.put("015", "Afrika an Norzh");
    namesMap.put("017", "Afrika ar Cʼhreiz");
    namesMap.put("018", "Afrika ar Su");
    namesMap.put("019", "Amerikaoù");
    namesMap.put("021", "Amerika an Norzh");
    namesMap.put("029", "Karib");
    namesMap.put("030", "Azia ar Reter");
    namesMap.put("034", "Azia ar Su");
    namesMap.put("035", "Azia ar Gevred");
    namesMap.put("039", "Europa ar Su");
    namesMap.put("053", "Aostralazia");
    namesMap.put("054", "Melanezia");
    namesMap.put("057", "Rannved Mikronezia");
    namesMap.put("061", "Polinezia");
    namesMap.put("142", "Azia");
    namesMap.put("143", "Azia ar Cʼhreiz");
    namesMap.put("145", "Azia ar Cʼhornôg");
    namesMap.put("150", "Europa");
    namesMap.put("151", "Europa ar Reter");
    namesMap.put("154", "Europa an Norzh");
    namesMap.put("155", "Europa ar Cʼhornôg");
    namesMap.put("202", "Afrika issaharat");
    namesMap.put("419", "Amerika Latin");
    namesMap.put("AC", "Enez Ascension");
    namesMap.put("AE", "Emirelezhioù Arab Unanet");
    namesMap.put("AG", "Antigua ha Barbuda");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AR", "Arcʼhantina");
    namesMap.put("AS", "Samoa Amerikan");
    namesMap.put("AT", "Aostria");
    namesMap.put("AU", "Aostralia");
    namesMap.put("AX", "Inizi Åland");
    namesMap.put("AZ", "Azerbaidjan");
    namesMap.put("BA", "Bosnia ha Herzegovina");
    namesMap.put("BE", "Belgia");
    namesMap.put("BH", "Bahrein");
    namesMap.put("BL", "Saint Barthélemy");
    namesMap.put("BQ", "Karib Nederlandat");
    namesMap.put("BT", "Bhoutan");
    namesMap.put("BV", "Enez Bouvet");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Inizi Kokoz");
    namesMap.put("CD", "Kongo - Kinshasa");
    namesMap.put("CF", "Republik Kreizafrikan");
    namesMap.put("CG", "Kongo - Brazzaville");
    namesMap.put("CH", "Suis");
    namesMap.put("CI", "Aod an Olifant");
    namesMap.put("CK", "Inizi Cook");
    namesMap.put("CM", "Kameroun");
    namesMap.put("CN", "Sina");
    namesMap.put("CO", "Kolombia");
    namesMap.put("CP", "Enez Clipperton");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kab-Glas");
    namesMap.put("CX", "Enez Christmas");
    namesMap.put("CY", "Kiprenez");
    namesMap.put("CZ", "Tchekia");
    namesMap.put("DE", "Alamagn");
    namesMap.put("DK", "Danmark");
    namesMap.put("DO", "Republik Dominikan");
    namesMap.put("DZ", "Aljeria");
    namesMap.put("EA", "Ceuta ha Melilla");
    namesMap.put("EG", "Egipt");
    namesMap.put("EH", "Sahara ar Cʼhornôg");
    namesMap.put("ES", "Spagn");
    namesMap.put("ET", "Etiopia");
    namesMap.put("EU", "Unaniezh Europa");
    namesMap.put("EZ", "takad an euro");
    namesMap.put("FJ", "Fidji");
    namesMap.put("FK", "Inizi Falkland");
    namesMap.put("FM", "Mikronezia");
    namesMap.put("FO", "Inizi Faero");
    namesMap.put("FR", "Frañs");
    namesMap.put("GB", "Rouantelezh-Unanet");
    namesMap.put("GE", "Jorjia");
    namesMap.put("GF", "Gwiana cʼhall");
    namesMap.put("GG", "Gwernenez");
    namesMap.put("GI", "Jibraltar");
    namesMap.put("GL", "Greunland");
    namesMap.put("GN", "Ginea");
    namesMap.put("GP", "Gwadeloup");
    namesMap.put("GQ", "Ginea ar Cʼheheder");
    namesMap.put("GR", "Gres");
    namesMap.put("GS", "Inizi Georgia ar Su hag Inizi Sandwich ar Su");
    namesMap.put("GW", "Ginea-Bissau");
    namesMap.put("HK", "Hong Kong RMD Sina");
    namesMap.put("HM", "Inizi Heard ha McDonald");
    namesMap.put("HR", "Kroatia");
    namesMap.put("HU", "Hungaria");
    namesMap.put("IC", "Inizi Kanariez");
    namesMap.put("ID", "Indonezia");
    namesMap.put("IE", "Iwerzhon");
    namesMap.put("IM", "Enez Vanav");
    namesMap.put("IO", "Tiriad breizhveurat Meurvor Indez");
    namesMap.put("IS", "Island");
    namesMap.put("IT", "Italia");
    namesMap.put("JE", "Jerzenez");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordania");
    namesMap.put("KH", "Kambodja");
    namesMap.put("KM", "Komorez");
    namesMap.put("KN", "Saint Kitts ha Nevis");
    namesMap.put("KP", "Korea an Norzh");
    namesMap.put("KR", "Korea ar Su");
    namesMap.put("KW", "Koweit");
    namesMap.put("KY", "Inizi Cayman");
    namesMap.put("KZ", "Kazakstan");
    namesMap.put("LB", "Liban");
    namesMap.put("LC", "Saint Lucia");
    namesMap.put("LT", "Lituania");
    namesMap.put("LU", "Luksembourg");
    namesMap.put("LY", "Libia");
    namesMap.put("MA", "Maroko");
    namesMap.put("MF", "Saint Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Inizi Marshall");
    namesMap.put("MK", "Makedonia");
    namesMap.put("MM", "Myanmar (Birmania)");
    namesMap.put("MO", "Macau RMD Sina");
    namesMap.put("MP", "Inizi Mariana an Norzh");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Maouritania");
    namesMap.put("MU", "Moris");
    namesMap.put("MV", "Maldivez");
    namesMap.put("MX", "Mecʼhiko");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NC", "Kaledonia Nevez");
    namesMap.put("NF", "Enez Norfolk");
    namesMap.put("NL", "Izelvroioù");
    namesMap.put("NO", "Norvegia");
    namesMap.put("NZ", "Zeland-Nevez");
    namesMap.put("PA", "Panamá");
    namesMap.put("PE", "Perou");
    namesMap.put("PF", "Polinezia Cʼhall");
    namesMap.put("PG", "Papoua Ginea-Nevez");
    namesMap.put("PH", "Filipinez");
    namesMap.put("PL", "Polonia");
    namesMap.put("PM", "Sant-Pêr-ha-Mikelon");
    namesMap.put("PN", "Enez Pitcairn");
    namesMap.put("PS", "Tiriadoù Palestina");
    namesMap.put("QO", "Oseania diabell");
    namesMap.put("RE", "Ar Reünion");
    namesMap.put("RO", "Roumania");
    namesMap.put("RU", "Rusia");
    namesMap.put("SA", "Arabia Saoudat");
    namesMap.put("SB", "Inizi Salomon");
    namesMap.put("SC", "Sechelez");
    namesMap.put("SD", "Soudan");
    namesMap.put("SE", "Sveden");
    namesMap.put("SG", "Singapour");
    namesMap.put("SH", "Saint-Helena");
    namesMap.put("SJ", "Svalbard");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Susoudan");
    namesMap.put("ST", "São Tomé ha Príncipe");
    namesMap.put("SV", "Salvador");
    namesMap.put("SY", "Siria");
    namesMap.put("TC", "Inizi Turks ha Caicos");
    namesMap.put("TD", "Tchad");
    namesMap.put("TF", "Douaroù aostral Frañs");
    namesMap.put("TJ", "Tadjikistan");
    namesMap.put("TN", "Tunizia");
    namesMap.put("TR", "Turkia");
    namesMap.put("TT", "Trinidad ha Tobago");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UG", "Ouganda");
    namesMap.put("UM", "Inizi diabell ar Stadoù-Unanet");
    namesMap.put("UN", "Broadoù unanet");
    namesMap.put("US", "Stadoù-Unanet");
    namesMap.put("UZ", "Ouzbekistan");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Sant Visant hag ar Grenadinez");
    namesMap.put("VG", "Inizi Gwercʼh Breizh-Veur");
    namesMap.put("VI", "Inizi Gwercʼh ar Stadoù-Unanet");
    namesMap.put("VN", "Viêt Nam");
    namesMap.put("WF", "Wallis ha Futuna");
    namesMap.put("ZA", "Suafrika");
    namesMap.put("ZZ", "Rannved dianav");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Bed",
        "002": "Afrika",
        "003": "Norzhamerika",
        "005": "Suamerika",
        "009": "Oseania",
        "011": "Afrika ar Cʼhornôg",
        "013": "Kreizamerika",
        "014": "Afrika ar Reter",
        "015": "Afrika an Norzh",
        "017": "Afrika ar Cʼhreiz",
        "018": "Afrika ar Su",
        "019": "Amerikaoù",
        "021": "Amerika an Norzh",
        "029": "Karib",
        "030": "Azia ar Reter",
        "034": "Azia ar Su",
        "035": "Azia ar Gevred",
        "039": "Europa ar Su",
        "053": "Aostralazia",
        "054": "Melanezia",
        "057": "Rannved Mikronezia",
        "061": "Polinezia",
        "142": "Azia",
        "143": "Azia ar Cʼhreiz",
        "145": "Azia ar Cʼhornôg",
        "150": "Europa",
        "151": "Europa ar Reter",
        "154": "Europa an Norzh",
        "155": "Europa ar Cʼhornôg",
        "202": "Afrika issaharat",
        "419": "Amerika Latin",
        "AC": "Enez Ascension",
        "AE": "Emirelezhioù Arab Unanet",
        "AG": "Antigua ha Barbuda",
        "AQ": "Antarktika",
        "AR": "Arcʼhantina",
        "AS": "Samoa Amerikan",
        "AT": "Aostria",
        "AU": "Aostralia",
        "AX": "Inizi Åland",
        "AZ": "Azerbaidjan",
        "BA": "Bosnia ha Herzegovina",
        "BE": "Belgia",
        "BH": "Bahrein",
        "BL": "Saint Barthélemy",
        "BQ": "Karib Nederlandat",
        "BT": "Bhoutan",
        "BV": "Enez Bouvet",
        "CA": "Kanada",
        "CC": "Inizi Kokoz",
        "CD": "Kongo - Kinshasa",
        "CF": "Republik Kreizafrikan",
        "CG": "Kongo - Brazzaville",
        "CH": "Suis",
        "CI": "Aod an Olifant",
        "CK": "Inizi Cook",
        "CM": "Kameroun",
        "CN": "Sina",
        "CO": "Kolombia",
        "CP": "Enez Clipperton",
        "CU": "Kuba",
        "CV": "Kab-Glas",
        "CX": "Enez Christmas",
        "CY": "Kiprenez",
        "CZ": "Tchekia",
        "DE": "Alamagn",
        "DK": "Danmark",
        "DO": "Republik Dominikan",
        "DZ": "Aljeria",
        "EA": "Ceuta ha Melilla",
        "EG": "Egipt",
        "EH": "Sahara ar Cʼhornôg",
        "ES": "Spagn",
        "ET": "Etiopia",
        "EU": "Unaniezh Europa",
        "EZ": "takad an euro",
        "FJ": "Fidji",
        "FK": "Inizi Falkland",
        "FM": "Mikronezia",
        "FO": "Inizi Faero",
        "FR": "Frañs",
        "GB": "Rouantelezh-Unanet",
        "GE": "Jorjia",
        "GF": "Gwiana cʼhall",
        "GG": "Gwernenez",
        "GI": "Jibraltar",
        "GL": "Greunland",
        "GN": "Ginea",
        "GP": "Gwadeloup",
        "GQ": "Ginea ar Cʼheheder",
        "GR": "Gres",
        "GS": "Inizi Georgia ar Su hag Inizi Sandwich ar Su",
        "GW": "Ginea-Bissau",
        "HK": "Hong Kong RMD Sina",
        "HM": "Inizi Heard ha McDonald",
        "HR": "Kroatia",
        "HU": "Hungaria",
        "IC": "Inizi Kanariez",
        "ID": "Indonezia",
        "IE": "Iwerzhon",
        "IM": "Enez Vanav",
        "IO": "Tiriad breizhveurat Meurvor Indez",
        "IS": "Island",
        "IT": "Italia",
        "JE": "Jerzenez",
        "JM": "Jamaika",
        "JO": "Jordania",
        "KH": "Kambodja",
        "KM": "Komorez",
        "KN": "Saint Kitts ha Nevis",
        "KP": "Korea an Norzh",
        "KR": "Korea ar Su",
        "KW": "Koweit",
        "KY": "Inizi Cayman",
        "KZ": "Kazakstan",
        "LB": "Liban",
        "LC": "Saint Lucia",
        "LT": "Lituania",
        "LU": "Luksembourg",
        "LY": "Libia",
        "MA": "Maroko",
        "MF": "Saint Martin",
        "MG": "Madagaskar",
        "MH": "Inizi Marshall",
        "MK": "Makedonia",
        "MM": "Myanmar (Birmania)",
        "MO": "Macau RMD Sina",
        "MP": "Inizi Mariana an Norzh",
        "MQ": "Martinik",
        "MR": "Maouritania",
        "MU": "Moris",
        "MV": "Maldivez",
        "MX": "Mecʼhiko",
        "MZ": "Mozambik",
        "NC": "Kaledonia Nevez",
        "NF": "Enez Norfolk",
        "NL": "Izelvroioù",
        "NO": "Norvegia",
        "NZ": "Zeland-Nevez",
        "PA": "Panamá",
        "PE": "Perou",
        "PF": "Polinezia Cʼhall",
        "PG": "Papoua Ginea-Nevez",
        "PH": "Filipinez",
        "PL": "Polonia",
        "PM": "Sant-Pêr-ha-Mikelon",
        "PN": "Enez Pitcairn",
        "PS": "Tiriadoù Palestina",
        "QO": "Oseania diabell",
        "RE": "Ar Reünion",
        "RO": "Roumania",
        "RU": "Rusia",
        "SA": "Arabia Saoudat",
        "SB": "Inizi Salomon",
        "SC": "Sechelez",
        "SD": "Soudan",
        "SE": "Sveden",
        "SG": "Singapour",
        "SH": "Saint-Helena",
        "SJ": "Svalbard",
        "SR": "Surinam",
        "SS": "Susoudan",
        "ST": "São Tomé ha Príncipe",
        "SV": "Salvador",
        "SY": "Siria",
        "TC": "Inizi Turks ha Caicos",
        "TD": "Tchad",
        "TF": "Douaroù aostral Frañs",
        "TJ": "Tadjikistan",
        "TN": "Tunizia",
        "TR": "Turkia",
        "TT": "Trinidad ha Tobago",
        "UA": "Ukraina",
        "UG": "Ouganda",
        "UM": "Inizi diabell ar Stadoù-Unanet",
        "UN": "Broadoù unanet",
        "US": "Stadoù-Unanet",
        "UZ": "Ouzbekistan",
        "VA": "Vatikan",
        "VC": "Sant Visant hag ar Grenadinez",
        "VG": "Inizi Gwercʼh Breizh-Veur",
        "VI": "Inizi Gwercʼh ar Stadoù-Unanet",
        "VN": "Viêt Nam",
        "WF": "Wallis ha Futuna",
        "ZA": "Suafrika",
        "ZZ": "Rannved dianav"
    };
  }-*/;
}
