/*
 * 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 "lb" locale.
 */
public class LocalizedNamesImpl_lb extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Welt");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Nordamerika");
    namesMap.put("005", "Südamerika");
    namesMap.put("009", "Ozeanien");
    namesMap.put("011", "Westafrika");
    namesMap.put("013", "Mëttelamerika");
    namesMap.put("014", "Ostafrika");
    namesMap.put("015", "Nordafrika");
    namesMap.put("017", "Zentralafrika");
    namesMap.put("018", "Südlecht Afrika");
    namesMap.put("019", "Amerika");
    namesMap.put("021", "Nërdlecht Amerika");
    namesMap.put("029", "Karibik");
    namesMap.put("030", "Ostasien");
    namesMap.put("034", "Südasien");
    namesMap.put("035", "Südostasien");
    namesMap.put("039", "Südeuropa");
    namesMap.put("053", "Australien an Neiséiland");
    namesMap.put("054", "Melanesien");
    namesMap.put("057", "Mikronesescht Inselgebitt");
    namesMap.put("061", "Polynesien");
    namesMap.put("142", "Asien");
    namesMap.put("143", "Zentralasien");
    namesMap.put("145", "Westasien");
    namesMap.put("150", "Europa");
    namesMap.put("151", "Osteuropa");
    namesMap.put("154", "Nordeuropa");
    namesMap.put("155", "Westeuropa");
    namesMap.put("419", "Latäinamerika");
    namesMap.put("AC", "Ascension");
    namesMap.put("AE", "Vereenegt Arabesch Emirater");
    namesMap.put("AG", "Antigua a Barbuda");
    namesMap.put("AL", "Albanien");
    namesMap.put("AM", "Armenien");
    namesMap.put("AQ", "Antarktis");
    namesMap.put("AR", "Argentinien");
    namesMap.put("AS", "Amerikanesch-Samoa");
    namesMap.put("AT", "Éisträich");
    namesMap.put("AU", "Australien");
    namesMap.put("AX", "Ålandinselen");
    namesMap.put("AZ", "Aserbaidschan");
    namesMap.put("BA", "Bosnien an Herzegowina");
    namesMap.put("BD", "Bangladesch");
    namesMap.put("BE", "Belsch");
    namesMap.put("BG", "Bulgarien");
    namesMap.put("BL", "Saint-Barthélemy");
    namesMap.put("BO", "Bolivien");
    namesMap.put("BQ", "Karibescht Holland");
    namesMap.put("BR", "Brasilien");
    namesMap.put("BV", "Bouvetinsel");
    namesMap.put("BW", "Botsuana");
    namesMap.put("BY", "Wäissrussland");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosinselen");
    namesMap.put("CD", "Kongo-Kinshasa");
    namesMap.put("CF", "Zentralafrikanesch Republik");
    namesMap.put("CG", "Kongo-Brazzaville");
    namesMap.put("CH", "Schwäiz");
    namesMap.put("CK", "Cookinselen");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CO", "Kolumbien");
    namesMap.put("CP", "Clipperton-Insel");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kap Verde");
    namesMap.put("CX", "Chrëschtdagsinsel");
    namesMap.put("CY", "Zypern");
    namesMap.put("CZ", "Tschechien");
    namesMap.put("DE", "Däitschland");
    namesMap.put("DJ", "Dschibuti");
    namesMap.put("DK", "Dänemark");
    namesMap.put("DO", "Dominikanesch Republik");
    namesMap.put("DZ", "Algerien");
    namesMap.put("EA", "Ceuta a Melilla");
    namesMap.put("EE", "Estland");
    namesMap.put("EG", "Egypten");
    namesMap.put("EH", "Westsahara");
    namesMap.put("ES", "Spanien");
    namesMap.put("ET", "Ethiopien");
    namesMap.put("EU", "Europäesch Unioun");
    namesMap.put("FI", "Finnland");
    namesMap.put("FJ", "Fidschi");
    namesMap.put("FK", "Falklandinselen");
    namesMap.put("FM", "Mikronesien");
    namesMap.put("FO", "Färöer");
    namesMap.put("FR", "Frankräich");
    namesMap.put("GA", "Gabun");
    namesMap.put("GB", "Groussbritannien");
    namesMap.put("GE", "Georgien");
    namesMap.put("GF", "Guayane");
    namesMap.put("GL", "Grönland");
    namesMap.put("GQ", "Equatorialguinea");
    namesMap.put("GR", "Griicheland");
    namesMap.put("GS", "Südgeorgien an déi Südlech Sandwichinselen");
    namesMap.put("HK", "Spezialverwaltungszon Hong Kong");
    namesMap.put("HM", "Heard- a McDonald-Inselen");
    namesMap.put("HR", "Kroatien");
    namesMap.put("HU", "Ungarn");
    namesMap.put("IC", "Kanaresch Inselen");
    namesMap.put("ID", "Indonesien");
    namesMap.put("IE", "Irland");
    namesMap.put("IN", "Indien");
    namesMap.put("IO", "Britescht Territorium am Indeschen Ozean");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Island");
    namesMap.put("IT", "Italien");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordanien");
    namesMap.put("KE", "Kenia");
    namesMap.put("KG", "Kirgisistan");
    namesMap.put("KH", "Kambodscha");
    namesMap.put("KM", "Komoren");
    namesMap.put("KN", "St. Kitts an Nevis");
    namesMap.put("KP", "Nordkorea");
    namesMap.put("KR", "Südkorea");
    namesMap.put("KY", "Kaimaninselen");
    namesMap.put("KZ", "Kasachstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LT", "Litauen");
    namesMap.put("LU", "Lëtzebuerg");
    namesMap.put("LV", "Lettland");
    namesMap.put("LY", "Libyen");
    namesMap.put("MA", "Marokko");
    namesMap.put("MD", "Moldawien");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallinselen");
    namesMap.put("MK", "Mazedonien");
    namesMap.put("MM", "Myanmar");
    namesMap.put("MN", "Mongolei");
    namesMap.put("MO", "Spezialverwaltungszon Macau");
    namesMap.put("MP", "Nërdlech Marianen");
    namesMap.put("MR", "Mauretanien");
    namesMap.put("MV", "Maldiven");
    namesMap.put("MX", "Mexiko");
    namesMap.put("MZ", "Mosambik");
    namesMap.put("NC", "Neikaledonien");
    namesMap.put("NF", "Norfolkinsel");
    namesMap.put("NL", "Holland");
    namesMap.put("NO", "Norwegen");
    namesMap.put("NZ", "Neiséiland");
    namesMap.put("PF", "Franséisch-Polynesien");
    namesMap.put("PG", "Papua-Neiguinea");
    namesMap.put("PH", "Philippinnen");
    namesMap.put("PL", "Polen");
    namesMap.put("PM", "St. Pierre a Miquelon");
    namesMap.put("PN", "Pitcairninselen");
    namesMap.put("PS", "Palestinensesch Autonomiegebidder");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Baussecht Ozeanien");
    namesMap.put("RO", "Rumänien");
    namesMap.put("RS", "Serbien");
    namesMap.put("RU", "Russland");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudi-Arabien");
    namesMap.put("SB", "Salomonen");
    namesMap.put("SC", "Seychellen");
    namesMap.put("SE", "Schweden");
    namesMap.put("SG", "Singapur");
    namesMap.put("SI", "Slowenien");
    namesMap.put("SJ", "Svalbard a Jan Mayen");
    namesMap.put("SK", "Slowakei");
    namesMap.put("SS", "Südsudan");
    namesMap.put("ST", "São Tomé a Príncipe");
    namesMap.put("SY", "Syrien");
    namesMap.put("SZ", "Swasiland");
    namesMap.put("TC", "Turks- a Caicosinselen");
    namesMap.put("TD", "Tschad");
    namesMap.put("TF", "Franséisch Süd- an Antarktisgebidder");
    namesMap.put("TJ", "Tadschikistan");
    namesMap.put("TL", "Osttimor");
    namesMap.put("TN", "Tunesien");
    namesMap.put("TR", "Tierkei");
    namesMap.put("TT", "Trinidad an Tobago");
    namesMap.put("TZ", "Tansania");
    namesMap.put("UA", "Ukrain");
    namesMap.put("UM", "Amerikanesch-Ozeanien");
    namesMap.put("US", "Vereenegt Staaten");
    namesMap.put("UZ", "Usbekistan");
    namesMap.put("VA", "Vatikanstad");
    namesMap.put("VC", "St. Vincent an d’Grenadinnen");
    namesMap.put("VG", "Britesch Joffereninselen");
    namesMap.put("VI", "Amerikanesch Joffereninselen");
    namesMap.put("WF", "Wallis a Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Südafrika");
    namesMap.put("ZM", "Sambia");
    namesMap.put("ZW", "Simbabwe");
    namesMap.put("ZZ", "Onbekannt Regioun");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Welt",
        "002": "Afrika",
        "003": "Nordamerika",
        "005": "Südamerika",
        "009": "Ozeanien",
        "011": "Westafrika",
        "013": "Mëttelamerika",
        "014": "Ostafrika",
        "015": "Nordafrika",
        "017": "Zentralafrika",
        "018": "Südlecht Afrika",
        "019": "Amerika",
        "021": "Nërdlecht Amerika",
        "029": "Karibik",
        "030": "Ostasien",
        "034": "Südasien",
        "035": "Südostasien",
        "039": "Südeuropa",
        "053": "Australien an Neiséiland",
        "054": "Melanesien",
        "057": "Mikronesescht Inselgebitt",
        "061": "Polynesien",
        "142": "Asien",
        "143": "Zentralasien",
        "145": "Westasien",
        "150": "Europa",
        "151": "Osteuropa",
        "154": "Nordeuropa",
        "155": "Westeuropa",
        "419": "Latäinamerika",
        "AC": "Ascension",
        "AE": "Vereenegt Arabesch Emirater",
        "AG": "Antigua a Barbuda",
        "AL": "Albanien",
        "AM": "Armenien",
        "AQ": "Antarktis",
        "AR": "Argentinien",
        "AS": "Amerikanesch-Samoa",
        "AT": "Éisträich",
        "AU": "Australien",
        "AX": "Ålandinselen",
        "AZ": "Aserbaidschan",
        "BA": "Bosnien an Herzegowina",
        "BD": "Bangladesch",
        "BE": "Belsch",
        "BG": "Bulgarien",
        "BL": "Saint-Barthélemy",
        "BO": "Bolivien",
        "BQ": "Karibescht Holland",
        "BR": "Brasilien",
        "BV": "Bouvetinsel",
        "BW": "Botsuana",
        "BY": "Wäissrussland",
        "CA": "Kanada",
        "CC": "Kokosinselen",
        "CD": "Kongo-Kinshasa",
        "CF": "Zentralafrikanesch Republik",
        "CG": "Kongo-Brazzaville",
        "CH": "Schwäiz",
        "CK": "Cookinselen",
        "CM": "Kamerun",
        "CO": "Kolumbien",
        "CP": "Clipperton-Insel",
        "CU": "Kuba",
        "CV": "Kap Verde",
        "CX": "Chrëschtdagsinsel",
        "CY": "Zypern",
        "CZ": "Tschechien",
        "DE": "Däitschland",
        "DJ": "Dschibuti",
        "DK": "Dänemark",
        "DO": "Dominikanesch Republik",
        "DZ": "Algerien",
        "EA": "Ceuta a Melilla",
        "EE": "Estland",
        "EG": "Egypten",
        "EH": "Westsahara",
        "ES": "Spanien",
        "ET": "Ethiopien",
        "EU": "Europäesch Unioun",
        "FI": "Finnland",
        "FJ": "Fidschi",
        "FK": "Falklandinselen",
        "FM": "Mikronesien",
        "FO": "Färöer",
        "FR": "Frankräich",
        "GA": "Gabun",
        "GB": "Groussbritannien",
        "GE": "Georgien",
        "GF": "Guayane",
        "GL": "Grönland",
        "GQ": "Equatorialguinea",
        "GR": "Griicheland",
        "GS": "Südgeorgien an déi Südlech Sandwichinselen",
        "HK": "Spezialverwaltungszon Hong Kong",
        "HM": "Heard- a McDonald-Inselen",
        "HR": "Kroatien",
        "HU": "Ungarn",
        "IC": "Kanaresch Inselen",
        "ID": "Indonesien",
        "IE": "Irland",
        "IN": "Indien",
        "IO": "Britescht Territorium am Indeschen Ozean",
        "IQ": "Irak",
        "IS": "Island",
        "IT": "Italien",
        "JM": "Jamaika",
        "JO": "Jordanien",
        "KE": "Kenia",
        "KG": "Kirgisistan",
        "KH": "Kambodscha",
        "KM": "Komoren",
        "KN": "St. Kitts an Nevis",
        "KP": "Nordkorea",
        "KR": "Südkorea",
        "KY": "Kaimaninselen",
        "KZ": "Kasachstan",
        "LB": "Libanon",
        "LT": "Litauen",
        "LU": "Lëtzebuerg",
        "LV": "Lettland",
        "LY": "Libyen",
        "MA": "Marokko",
        "MD": "Moldawien",
        "MG": "Madagaskar",
        "MH": "Marshallinselen",
        "MK": "Mazedonien",
        "MM": "Myanmar",
        "MN": "Mongolei",
        "MO": "Spezialverwaltungszon Macau",
        "MP": "Nërdlech Marianen",
        "MR": "Mauretanien",
        "MV": "Maldiven",
        "MX": "Mexiko",
        "MZ": "Mosambik",
        "NC": "Neikaledonien",
        "NF": "Norfolkinsel",
        "NL": "Holland",
        "NO": "Norwegen",
        "NZ": "Neiséiland",
        "PF": "Franséisch-Polynesien",
        "PG": "Papua-Neiguinea",
        "PH": "Philippinnen",
        "PL": "Polen",
        "PM": "St. Pierre a Miquelon",
        "PN": "Pitcairninselen",
        "PS": "Palestinensesch Autonomiegebidder",
        "QA": "Katar",
        "QO": "Baussecht Ozeanien",
        "RO": "Rumänien",
        "RS": "Serbien",
        "RU": "Russland",
        "RW": "Ruanda",
        "SA": "Saudi-Arabien",
        "SB": "Salomonen",
        "SC": "Seychellen",
        "SE": "Schweden",
        "SG": "Singapur",
        "SI": "Slowenien",
        "SJ": "Svalbard a Jan Mayen",
        "SK": "Slowakei",
        "SS": "Südsudan",
        "ST": "São Tomé a Príncipe",
        "SY": "Syrien",
        "SZ": "Swasiland",
        "TC": "Turks- a Caicosinselen",
        "TD": "Tschad",
        "TF": "Franséisch Süd- an Antarktisgebidder",
        "TJ": "Tadschikistan",
        "TL": "Osttimor",
        "TN": "Tunesien",
        "TR": "Tierkei",
        "TT": "Trinidad an Tobago",
        "TZ": "Tansania",
        "UA": "Ukrain",
        "UM": "Amerikanesch-Ozeanien",
        "US": "Vereenegt Staaten",
        "UZ": "Usbekistan",
        "VA": "Vatikanstad",
        "VC": "St. Vincent an d’Grenadinnen",
        "VG": "Britesch Joffereninselen",
        "VI": "Amerikanesch Joffereninselen",
        "WF": "Wallis a Futuna",
        "YE": "Jemen",
        "ZA": "Südafrika",
        "ZM": "Sambia",
        "ZW": "Simbabwe",
        "ZZ": "Onbekannt Regioun"
    };
  }-*/;
}
