/*
 * 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=cs

/**
 * Localized names for the "cs" locale.
 */
public class LocalizedNamesImpl_cs extends LocalizedNamesImpl {

  @Override
  public String[] loadLikelyRegionCodes() {
    return new String[] {
        "CZ",
    };
  }

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "Svět");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Severní Amerika");
    namesMap.put("005", "Jižní Amerika");
    namesMap.put("009", "Oceánie");
    namesMap.put("011", "Západní Afrika");
    namesMap.put("013", "Střední Amerika");
    namesMap.put("014", "Východní Afrika");
    namesMap.put("015", "Severní Afrika");
    namesMap.put("017", "Střední Afrika");
    namesMap.put("018", "Jižní Afrika");
    namesMap.put("019", "Amerika");
    namesMap.put("021", "Severní Amerika oblast");
    namesMap.put("029", "Karibik");
    namesMap.put("030", "Východní Asie");
    namesMap.put("034", "Jižní Asie");
    namesMap.put("035", "Jihovýchodní Asie");
    namesMap.put("039", "Jižní Evropa");
    namesMap.put("053", "Australasie");
    namesMap.put("054", "Melanésie");
    namesMap.put("057", "Mikronésie (region)");
    namesMap.put("061", "Polynésie");
    namesMap.put("142", "Asie");
    namesMap.put("143", "Střední Asie");
    namesMap.put("145", "Západní Asie");
    namesMap.put("150", "Evropa");
    namesMap.put("151", "Východní Evropa");
    namesMap.put("154", "Severní Evropa");
    namesMap.put("155", "Západní Evropa");
    namesMap.put("419", "Latinská Amerika");
    namesMap.put("AC", "Ascension");
    namesMap.put("AE", "Spojené arabské emiráty");
    namesMap.put("AF", "Afghánistán");
    namesMap.put("AG", "Antigua a Barbuda");
    namesMap.put("AL", "Albánie");
    namesMap.put("AM", "Arménie");
    namesMap.put("AN", "Nizozemské Antily");
    namesMap.put("AQ", "Antarktida");
    namesMap.put("AS", "Americká Samoa");
    namesMap.put("AT", "Rakousko");
    namesMap.put("AU", "Austrálie");
    namesMap.put("AX", "Ålandy");
    namesMap.put("AZ", "Ázerbájdžán");
    namesMap.put("BA", "Bosna a Hercegovina");
    namesMap.put("BD", "Bangladéš");
    namesMap.put("BE", "Belgie");
    namesMap.put("BG", "Bulharsko");
    namesMap.put("BH", "Bahrajn");
    namesMap.put("BL", "Svatý Bartoloměj");
    namesMap.put("BM", "Bermudy");
    namesMap.put("BN", "Brunej");
    namesMap.put("BO", "Bolívie");
    namesMap.put("BQ", "Karibské Nizozemsko");
    namesMap.put("BR", "Brazílie");
    namesMap.put("BS", "Bahamy");
    namesMap.put("BT", "Bhútán");
    namesMap.put("BV", "Bouvetův ostrov");
    namesMap.put("BY", "Bělorusko");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosové ostrovy");
    namesMap.put("CD", "Kongo - Kinshasa");
    namesMap.put("CF", "Středoafrická republika");
    namesMap.put("CG", "Kongo - Brazzaville");
    namesMap.put("CH", "Švýcarsko");
    namesMap.put("CI", "Pobřeží slonoviny");
    namesMap.put("CK", "Cookovy ostrovy");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Čína");
    namesMap.put("CO", "Kolumbie");
    namesMap.put("CP", "Clippertonův ostrov");
    namesMap.put("CR", "Kostarika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kapverdy");
    namesMap.put("CX", "Vánoční ostrov");
    namesMap.put("CY", "Kypr");
    namesMap.put("CZ", "Česká republika");
    namesMap.put("DE", "Německo");
    namesMap.put("DG", "Diego García");
    namesMap.put("DJ", "Džibutsko");
    namesMap.put("DK", "Dánsko");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikánská republika");
    namesMap.put("DZ", "Alžírsko");
    namesMap.put("EA", "Ceuta a Melilla");
    namesMap.put("EC", "Ekvádor");
    namesMap.put("EE", "Estonsko");
    namesMap.put("EH", "Západní Sahara");
    namesMap.put("ES", "Španělsko");
    namesMap.put("ET", "Etiopie");
    namesMap.put("EU", "Evropská unie");
    namesMap.put("FI", "Finsko");
    namesMap.put("FJ", "Fidži");
    namesMap.put("FK", "Falklandské ostrovy");
    namesMap.put("FM", "Mikronésie");
    namesMap.put("FO", "Faerské ostrovy");
    namesMap.put("FR", "Francie");
    namesMap.put("GB", "Velká Británie");
    namesMap.put("GE", "Gruzie");
    namesMap.put("GF", "Francouzská Guyana");
    namesMap.put("GL", "Grónsko");
    namesMap.put("GM", "Gambie");
    namesMap.put("GQ", "Rovníková Guinea");
    namesMap.put("GR", "Řecko");
    namesMap.put("GS", "Jižní Georgie a Jižní Sandwichovy ostrovy");
    namesMap.put("HK", "Hongkong - ZAO Číny");
    namesMap.put("HM", "Heardův ostrov a McDonaldovy ostrovy");
    namesMap.put("HR", "Chorvatsko");
    namesMap.put("HU", "Maďarsko");
    namesMap.put("IC", "Kanárské ostrovy");
    namesMap.put("ID", "Indonésie");
    namesMap.put("IE", "Irsko");
    namesMap.put("IL", "Izrael");
    namesMap.put("IM", "Ostrov Man");
    namesMap.put("IN", "Indie");
    namesMap.put("IO", "Britské indickooceánské území");
    namesMap.put("IQ", "Irák");
    namesMap.put("IR", "Írán");
    namesMap.put("IS", "Island");
    namesMap.put("IT", "Itálie");
    namesMap.put("JM", "Jamajka");
    namesMap.put("JO", "Jordánsko");
    namesMap.put("JP", "Japonsko");
    namesMap.put("KE", "Keňa");
    namesMap.put("KG", "Kyrgyzstán");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KM", "Komory");
    namesMap.put("KN", "Svatý Kryštof a Nevis");
    namesMap.put("KP", "Severní Korea");
    namesMap.put("KR", "Jižní Korea");
    namesMap.put("KW", "Kuvajt");
    namesMap.put("KY", "Kajmanské ostrovy");
    namesMap.put("KZ", "Kazachstán");
    namesMap.put("LB", "Libanon");
    namesMap.put("LC", "Svatá Lucie");
    namesMap.put("LI", "Lichtenštejnsko");
    namesMap.put("LK", "Srí Lanka");
    namesMap.put("LR", "Libérie");
    namesMap.put("LT", "Litva");
    namesMap.put("LU", "Lucembursko");
    namesMap.put("LV", "Lotyšsko");
    namesMap.put("LY", "Libye");
    namesMap.put("MA", "Maroko");
    namesMap.put("MC", "Monako");
    namesMap.put("MD", "Moldavsko");
    namesMap.put("ME", "Černá Hora");
    namesMap.put("MF", "Svatý Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallovy ostrovy");
    namesMap.put("MK", "Makedonie");
    namesMap.put("MM", "Myanmar (Barma)");
    namesMap.put("MN", "Mongolsko");
    namesMap.put("MO", "Macao - ZAO Číny");
    namesMap.put("MP", "Severní Mariany");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Mauritánie");
    namesMap.put("MU", "Mauricius");
    namesMap.put("MV", "Maledivy");
    namesMap.put("MX", "Mexiko");
    namesMap.put("MY", "Malajsie");
    namesMap.put("MZ", "Mosambik");
    namesMap.put("NA", "Namibie");
    namesMap.put("NC", "Nová Kaledonie");
    namesMap.put("NF", "Norfolk");
    namesMap.put("NG", "Nigérie");
    namesMap.put("NI", "Nikaragua");
    namesMap.put("NL", "Nizozemsko");
    namesMap.put("NO", "Norsko");
    namesMap.put("NP", "Nepál");
    namesMap.put("NZ", "Nový Zéland");
    namesMap.put("OM", "Omán");
    namesMap.put("PF", "Francouzská Polynésie");
    namesMap.put("PG", "Papua-Nová Guinea");
    namesMap.put("PH", "Filipíny");
    namesMap.put("PK", "Pákistán");
    namesMap.put("PL", "Polsko");
    namesMap.put("PM", "Saint-Pierre a Miquelon");
    namesMap.put("PN", "Pitcairnovy ostrovy");
    namesMap.put("PR", "Portoriko");
    namesMap.put("PS", "Palestinská území");
    namesMap.put("PT", "Portugalsko");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Vnější Oceánie");
    namesMap.put("RO", "Rumunsko");
    namesMap.put("RS", "Srbsko");
    namesMap.put("RU", "Rusko");
    namesMap.put("SA", "Saúdská Arábie");
    namesMap.put("SB", "Šalamounovy ostrovy");
    namesMap.put("SC", "Seychely");
    namesMap.put("SD", "Súdán");
    namesMap.put("SE", "Švédsko");
    namesMap.put("SG", "Singapur");
    namesMap.put("SH", "Svatá Helena");
    namesMap.put("SI", "Slovinsko");
    namesMap.put("SJ", "Špicberky a Jan Mayen");
    namesMap.put("SK", "Slovensko");
    namesMap.put("SO", "Somálsko");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Jižní Súdán");
    namesMap.put("ST", "Svatý Tomáš a Princův ostrov");
    namesMap.put("SV", "Salvador");
    namesMap.put("SY", "Sýrie");
    namesMap.put("SZ", "Svazijsko");
    namesMap.put("TC", "Turks a Caicos");
    namesMap.put("TD", "Čad");
    namesMap.put("TF", "Francouzská jižní území");
    namesMap.put("TH", "Thajsko");
    namesMap.put("TJ", "Tádžikistán");
    namesMap.put("TL", "Východní Timor");
    namesMap.put("TM", "Turkmenistán");
    namesMap.put("TN", "Tunisko");
    namesMap.put("TR", "Turecko");
    namesMap.put("TT", "Trinidad a Tobago");
    namesMap.put("TW", "Tchaj-wan");
    namesMap.put("TZ", "Tanzanie");
    namesMap.put("UA", "Ukrajina");
    namesMap.put("UM", "Menší odlehlé ostrovy USA");
    namesMap.put("US", "Spojené státy");
    namesMap.put("UZ", "Uzbekistán");
    namesMap.put("VA", "Vatikán");
    namesMap.put("VC", "Svatý Vincenc a Grenadiny");
    namesMap.put("VG", "Britské Panenské ostrovy");
    namesMap.put("VI", "Americké Panenské ostrovy");
    namesMap.put("WF", "Wallis a Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Jihoafrická republika");
    namesMap.put("ZM", "Zambie");
    namesMap.put("ZZ", "Neznámá oblast");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "Svět",
        "002": "Afrika",
        "003": "Severní Amerika",
        "005": "Jižní Amerika",
        "009": "Oceánie",
        "011": "Západní Afrika",
        "013": "Střední Amerika",
        "014": "Východní Afrika",
        "015": "Severní Afrika",
        "017": "Střední Afrika",
        "018": "Jižní Afrika",
        "019": "Amerika",
        "021": "Severní Amerika oblast",
        "029": "Karibik",
        "030": "Východní Asie",
        "034": "Jižní Asie",
        "035": "Jihovýchodní Asie",
        "039": "Jižní Evropa",
        "053": "Australasie",
        "054": "Melanésie",
        "057": "Mikronésie (region)",
        "061": "Polynésie",
        "142": "Asie",
        "143": "Střední Asie",
        "145": "Západní Asie",
        "150": "Evropa",
        "151": "Východní Evropa",
        "154": "Severní Evropa",
        "155": "Západní Evropa",
        "419": "Latinská Amerika",
        "AC": "Ascension",
        "AE": "Spojené arabské emiráty",
        "AF": "Afghánistán",
        "AG": "Antigua a Barbuda",
        "AL": "Albánie",
        "AM": "Arménie",
        "AN": "Nizozemské Antily",
        "AQ": "Antarktida",
        "AS": "Americká Samoa",
        "AT": "Rakousko",
        "AU": "Austrálie",
        "AX": "Ålandy",
        "AZ": "Ázerbájdžán",
        "BA": "Bosna a Hercegovina",
        "BD": "Bangladéš",
        "BE": "Belgie",
        "BG": "Bulharsko",
        "BH": "Bahrajn",
        "BL": "Svatý Bartoloměj",
        "BM": "Bermudy",
        "BN": "Brunej",
        "BO": "Bolívie",
        "BQ": "Karibské Nizozemsko",
        "BR": "Brazílie",
        "BS": "Bahamy",
        "BT": "Bhútán",
        "BV": "Bouvetův ostrov",
        "BY": "Bělorusko",
        "CA": "Kanada",
        "CC": "Kokosové ostrovy",
        "CD": "Kongo - Kinshasa",
        "CF": "Středoafrická republika",
        "CG": "Kongo - Brazzaville",
        "CH": "Švýcarsko",
        "CI": "Pobřeží slonoviny",
        "CK": "Cookovy ostrovy",
        "CM": "Kamerun",
        "CN": "Čína",
        "CO": "Kolumbie",
        "CP": "Clippertonův ostrov",
        "CR": "Kostarika",
        "CU": "Kuba",
        "CV": "Kapverdy",
        "CX": "Vánoční ostrov",
        "CY": "Kypr",
        "CZ": "Česká republika",
        "DE": "Německo",
        "DG": "Diego García",
        "DJ": "Džibutsko",
        "DK": "Dánsko",
        "DM": "Dominika",
        "DO": "Dominikánská republika",
        "DZ": "Alžírsko",
        "EA": "Ceuta a Melilla",
        "EC": "Ekvádor",
        "EE": "Estonsko",
        "EH": "Západní Sahara",
        "ES": "Španělsko",
        "ET": "Etiopie",
        "EU": "Evropská unie",
        "FI": "Finsko",
        "FJ": "Fidži",
        "FK": "Falklandské ostrovy",
        "FM": "Mikronésie",
        "FO": "Faerské ostrovy",
        "FR": "Francie",
        "GB": "Velká Británie",
        "GE": "Gruzie",
        "GF": "Francouzská Guyana",
        "GL": "Grónsko",
        "GM": "Gambie",
        "GQ": "Rovníková Guinea",
        "GR": "Řecko",
        "GS": "Jižní Georgie a Jižní Sandwichovy ostrovy",
        "HK": "Hongkong - ZAO Číny",
        "HM": "Heardův ostrov a McDonaldovy ostrovy",
        "HR": "Chorvatsko",
        "HU": "Maďarsko",
        "IC": "Kanárské ostrovy",
        "ID": "Indonésie",
        "IE": "Irsko",
        "IL": "Izrael",
        "IM": "Ostrov Man",
        "IN": "Indie",
        "IO": "Britské indickooceánské území",
        "IQ": "Irák",
        "IR": "Írán",
        "IS": "Island",
        "IT": "Itálie",
        "JM": "Jamajka",
        "JO": "Jordánsko",
        "JP": "Japonsko",
        "KE": "Keňa",
        "KG": "Kyrgyzstán",
        "KH": "Kambodža",
        "KM": "Komory",
        "KN": "Svatý Kryštof a Nevis",
        "KP": "Severní Korea",
        "KR": "Jižní Korea",
        "KW": "Kuvajt",
        "KY": "Kajmanské ostrovy",
        "KZ": "Kazachstán",
        "LB": "Libanon",
        "LC": "Svatá Lucie",
        "LI": "Lichtenštejnsko",
        "LK": "Srí Lanka",
        "LR": "Libérie",
        "LT": "Litva",
        "LU": "Lucembursko",
        "LV": "Lotyšsko",
        "LY": "Libye",
        "MA": "Maroko",
        "MC": "Monako",
        "MD": "Moldavsko",
        "ME": "Černá Hora",
        "MF": "Svatý Martin",
        "MG": "Madagaskar",
        "MH": "Marshallovy ostrovy",
        "MK": "Makedonie",
        "MM": "Myanmar (Barma)",
        "MN": "Mongolsko",
        "MO": "Macao - ZAO Číny",
        "MP": "Severní Mariany",
        "MQ": "Martinik",
        "MR": "Mauritánie",
        "MU": "Mauricius",
        "MV": "Maledivy",
        "MX": "Mexiko",
        "MY": "Malajsie",
        "MZ": "Mosambik",
        "NA": "Namibie",
        "NC": "Nová Kaledonie",
        "NF": "Norfolk",
        "NG": "Nigérie",
        "NI": "Nikaragua",
        "NL": "Nizozemsko",
        "NO": "Norsko",
        "NP": "Nepál",
        "NZ": "Nový Zéland",
        "OM": "Omán",
        "PF": "Francouzská Polynésie",
        "PG": "Papua-Nová Guinea",
        "PH": "Filipíny",
        "PK": "Pákistán",
        "PL": "Polsko",
        "PM": "Saint-Pierre a Miquelon",
        "PN": "Pitcairnovy ostrovy",
        "PR": "Portoriko",
        "PS": "Palestinská území",
        "PT": "Portugalsko",
        "QA": "Katar",
        "QO": "Vnější Oceánie",
        "RO": "Rumunsko",
        "RS": "Srbsko",
        "RU": "Rusko",
        "SA": "Saúdská Arábie",
        "SB": "Šalamounovy ostrovy",
        "SC": "Seychely",
        "SD": "Súdán",
        "SE": "Švédsko",
        "SG": "Singapur",
        "SH": "Svatá Helena",
        "SI": "Slovinsko",
        "SJ": "Špicberky a Jan Mayen",
        "SK": "Slovensko",
        "SO": "Somálsko",
        "SR": "Surinam",
        "SS": "Jižní Súdán",
        "ST": "Svatý Tomáš a Princův ostrov",
        "SV": "Salvador",
        "SY": "Sýrie",
        "SZ": "Svazijsko",
        "TC": "Turks a Caicos",
        "TD": "Čad",
        "TF": "Francouzská jižní území",
        "TH": "Thajsko",
        "TJ": "Tádžikistán",
        "TL": "Východní Timor",
        "TM": "Turkmenistán",
        "TN": "Tunisko",
        "TR": "Turecko",
        "TT": "Trinidad a Tobago",
        "TW": "Tchaj-wan",
        "TZ": "Tanzanie",
        "UA": "Ukrajina",
        "UM": "Menší odlehlé ostrovy USA",
        "US": "Spojené státy",
        "UZ": "Uzbekistán",
        "VA": "Vatikán",
        "VC": "Svatý Vincenc a Grenadiny",
        "VG": "Britské Panenské ostrovy",
        "VI": "Americké Panenské ostrovy",
        "WF": "Wallis a Futuna",
        "YE": "Jemen",
        "ZA": "Jihoafrická republika",
        "ZM": "Zambie",
        "ZZ": "Neznámá oblast"
    };
  }-*/;
}
