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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "Andola");
    namesMap.put("AE", "Dimiliki dya Vakulungwa va Chalabu");
    namesMap.put("AF", "Afuganistani");
    namesMap.put("AG", "Antigua na Balbuda");
    namesMap.put("AI", "Angwila");
    namesMap.put("AM", "Almenia");
    namesMap.put("AN", "Antili za Uholanzi");
    namesMap.put("AR", "Adyentina");
    namesMap.put("AS", "Samoa ya Malekani");
    namesMap.put("AT", "Austlia");
    namesMap.put("AU", "Austlalia");
    namesMap.put("AW", "Aluba");
    namesMap.put("AZ", "Azabadyani");
    namesMap.put("BA", "Bosnia na Hezegovina");
    namesMap.put("BB", "Babadosi");
    namesMap.put("BD", "Bangladeshi");
    namesMap.put("BE", "Ubelgidi");
    namesMap.put("BF", "Buchinafaso");
    namesMap.put("BG", "Bulgalia");
    namesMap.put("BH", "Bahaleni");
    namesMap.put("BI", "Bulundi");
    namesMap.put("BJ", "Benini");
    namesMap.put("BM", "Belmuda");
    namesMap.put("BN", "Blunei");
    namesMap.put("BR", "Blazili");
    namesMap.put("BS", "Bahama");
    namesMap.put("BT", "Butani");
    namesMap.put("BY", "Belalusi");
    namesMap.put("CA", "Kanada");
    namesMap.put("CD", "Jamuhuli ya Chidemoklasia ya kuKongo");
    namesMap.put("CF", "Jamuhuli ya Afilika ya Paching'ati");
    namesMap.put("CG", "Kongo");
    namesMap.put("CH", "Uswisi");
    namesMap.put("CI", "Kodivaa");
    namesMap.put("CK", "Chisiwa cha Cook");
    namesMap.put("CM", "Kameluni");
    namesMap.put("CO", "Kolombia");
    namesMap.put("CR", "Kostalika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kepuvede");
    namesMap.put("CY", "Kuplosi");
    namesMap.put("CZ", "Jamuhuli ya Chechi");
    namesMap.put("DE", "Udyerumani");
    namesMap.put("DJ", "Dyibuti");
    namesMap.put("DK", "Denmaki");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Jamuhuli ya Dominika");
    namesMap.put("DZ", "Aljelia");
    namesMap.put("EC", "Ekwado");
    namesMap.put("EG", "Misli");
    namesMap.put("ER", "Elitilea");
    namesMap.put("ES", "Hispania");
    namesMap.put("ET", "Uhabeshi");
    namesMap.put("FI", "Ufini");
    namesMap.put("FK", "Chisiwa cha Falkland");
    namesMap.put("FM", "Mikilonesia");
    namesMap.put("FR", "Ufalansa");
    namesMap.put("GA", "Gaboni");
    namesMap.put("GB", "Nngalesa");
    namesMap.put("GD", "Glenada");
    namesMap.put("GE", "Dyodya");
    namesMap.put("GF", "Gwiyana ya Ufalansa");
    namesMap.put("GI", "Diblalta");
    namesMap.put("GL", "Glinlandi");
    namesMap.put("GN", "Gine");
    namesMap.put("GP", "Gwadelupe");
    namesMap.put("GQ", "Ginekweta");
    namesMap.put("GR", "Ugilichi");
    namesMap.put("GT", "Gwatemala");
    namesMap.put("GU", "Gwam");
    namesMap.put("GW", "Ginebisau");
    namesMap.put("HN", "Hondulasi");
    namesMap.put("HR", "Kolasia");
    namesMap.put("HU", "Hungalia");
    namesMap.put("IE", "Ayalandi");
    namesMap.put("IL", "Islaeli");
    namesMap.put("IO", "Lieneo lyaki Nngalesa Nbahali ya Hindi");
    namesMap.put("IQ", "Ilaki");
    namesMap.put("IR", "Uadyemi");
    namesMap.put("IS", "Aislandi");
    namesMap.put("IT", "Italia");
    namesMap.put("JM", "Dyamaika");
    namesMap.put("JO", "Yordani");
    namesMap.put("JP", "Dyapani");
    namesMap.put("KG", "Kiligizistani");
    namesMap.put("KH", "Kambodia");
    namesMap.put("KI", "Kilibati");
    namesMap.put("KM", "Komolo");
    namesMap.put("KN", "Santakitzi na Nevis");
    namesMap.put("KP", "Kolea Kasikazini");
    namesMap.put("KR", "Kolea Kusini");
    namesMap.put("KW", "Kuwaiti");
    namesMap.put("KY", "Chisiwa cha Kemen");
    namesMap.put("KZ", "Kazachistani");
    namesMap.put("LA", "Laosi");
    namesMap.put("LB", "Lebanoni");
    namesMap.put("LC", "Santalusia");
    namesMap.put("LI", "Lishenteni");
    namesMap.put("LK", "Sililanka");
    namesMap.put("LR", "Libelia");
    namesMap.put("LS", "Lesoto");
    namesMap.put("LT", "Litwania");
    namesMap.put("LU", "Lasembagi");
    namesMap.put("LV", "Lativia");
    namesMap.put("MA", "Moloko");
    namesMap.put("MC", "Monako");
    namesMap.put("MG", "Bukini");
    namesMap.put("MH", "Chisiwa cha Malushal");
    namesMap.put("MK", "Masedonia");
    namesMap.put("MM", "Myama");
    namesMap.put("MP", "Chisiwa cha Marian cha Kasikazini");
    namesMap.put("MQ", "Malitiniki");
    namesMap.put("MR", "Molitania");
    namesMap.put("MS", "Monselati");
    namesMap.put("MU", "Molisi");
    namesMap.put("MV", "Modivu");
    namesMap.put("MX", "Meksiko");
    namesMap.put("MY", "Malesia");
    namesMap.put("MZ", "Msumbiji");
    namesMap.put("NC", "Nyukaledonia");
    namesMap.put("NE", "Nidyeli");
    namesMap.put("NF", "Chisiwa cha Nolufok");
    namesMap.put("NG", "Nidyelia");
    namesMap.put("NI", "Nikalagwa");
    namesMap.put("NL", "Uholanzi");
    namesMap.put("NO", "Norwe");
    namesMap.put("NP", "Nepali");
    namesMap.put("NR", "Naulu");
    namesMap.put("NZ", "Nyuzilandi");
    namesMap.put("OM", "Omani");
    namesMap.put("PE", "Pelu");
    namesMap.put("PF", "Polinesia ya Ufalansa");
    namesMap.put("PG", "Papua");
    namesMap.put("PH", "Filipino");
    namesMap.put("PK", "Pakistani");
    namesMap.put("PL", "Polandi");
    namesMap.put("PM", "Santapieli na Mikeloni");
    namesMap.put("PN", "Pitikeluni");
    namesMap.put("PR", "Pwetoliko");
    namesMap.put("PS", "Nchingu wa Magalibi wa Mpanda wa kuGaza wa kuPales");
    namesMap.put("PT", "Uleno");
    namesMap.put("PY", "Palagwai");
    namesMap.put("QA", "Katali");
    namesMap.put("RE", "Liyunioni");
    namesMap.put("RO", "Lomania");
    namesMap.put("RU", "Ulusi");
    namesMap.put("RW", "Lwanda");
    namesMap.put("SA", "Saudia");
    namesMap.put("SB", "Chisiwa cha Solomon");
    namesMap.put("SC", "Shelisheli");
    namesMap.put("SD", "Sudani");
    namesMap.put("SE", "Uswidi");
    namesMap.put("SG", "Singapoo");
    namesMap.put("SH", "Santahelena");
    namesMap.put("SL", "Siela Leoni");
    namesMap.put("SM", "Samalino");
    namesMap.put("SN", "Senegali");
    namesMap.put("SR", "Sulinamu");
    namesMap.put("ST", "Saotome na Prinsipe");
    namesMap.put("SV", "Elsavado");
    namesMap.put("SY", "Silia");
    namesMap.put("SZ", "Uswazi");
    namesMap.put("TC", "Chisiwa cha Tuluchi na Kaiko");
    namesMap.put("TD", "Chadi");
    namesMap.put("TH", "Tailandi");
    namesMap.put("TJ", "Tadikistani");
    namesMap.put("TL", "Timoli ya Mashaliki");
    namesMap.put("TM", "Tuluchimenistani");
    namesMap.put("TR", "Utuluchi");
    namesMap.put("TT", "Tilinidad na Tobago");
    namesMap.put("TW", "Taiwani");
    namesMap.put("UA", "Uklaini");
    namesMap.put("US", "Malekani");
    namesMap.put("UY", "Ulugwai");
    namesMap.put("UZ", "Uzibechistani");
    namesMap.put("VA", "Vatikani");
    namesMap.put("VC", "Santavisenti na Glenadini");
    namesMap.put("VG", "Chisiwa Chivihi cha Wingalesa");
    namesMap.put("VI", "Chisiwa Chivihi cha Malekani");
    namesMap.put("VN", "Vietinamu");
    namesMap.put("WF", "Walis na Futuna");
    namesMap.put("YE", "Yemeni");
    namesMap.put("YT", "Maole");
    namesMap.put("ZA", "Afilika Kusini");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "Andola",
        "AE": "Dimiliki dya Vakulungwa va Chalabu",
        "AF": "Afuganistani",
        "AG": "Antigua na Balbuda",
        "AI": "Angwila",
        "AM": "Almenia",
        "AN": "Antili za Uholanzi",
        "AR": "Adyentina",
        "AS": "Samoa ya Malekani",
        "AT": "Austlia",
        "AU": "Austlalia",
        "AW": "Aluba",
        "AZ": "Azabadyani",
        "BA": "Bosnia na Hezegovina",
        "BB": "Babadosi",
        "BD": "Bangladeshi",
        "BE": "Ubelgidi",
        "BF": "Buchinafaso",
        "BG": "Bulgalia",
        "BH": "Bahaleni",
        "BI": "Bulundi",
        "BJ": "Benini",
        "BM": "Belmuda",
        "BN": "Blunei",
        "BR": "Blazili",
        "BS": "Bahama",
        "BT": "Butani",
        "BY": "Belalusi",
        "CA": "Kanada",
        "CD": "Jamuhuli ya Chidemoklasia ya kuKongo",
        "CF": "Jamuhuli ya Afilika ya Paching'ati",
        "CG": "Kongo",
        "CH": "Uswisi",
        "CI": "Kodivaa",
        "CK": "Chisiwa cha Cook",
        "CM": "Kameluni",
        "CO": "Kolombia",
        "CR": "Kostalika",
        "CU": "Kuba",
        "CV": "Kepuvede",
        "CY": "Kuplosi",
        "CZ": "Jamuhuli ya Chechi",
        "DE": "Udyerumani",
        "DJ": "Dyibuti",
        "DK": "Denmaki",
        "DM": "Dominika",
        "DO": "Jamuhuli ya Dominika",
        "DZ": "Aljelia",
        "EC": "Ekwado",
        "EG": "Misli",
        "ER": "Elitilea",
        "ES": "Hispania",
        "ET": "Uhabeshi",
        "FI": "Ufini",
        "FK": "Chisiwa cha Falkland",
        "FM": "Mikilonesia",
        "FR": "Ufalansa",
        "GA": "Gaboni",
        "GB": "Nngalesa",
        "GD": "Glenada",
        "GE": "Dyodya",
        "GF": "Gwiyana ya Ufalansa",
        "GI": "Diblalta",
        "GL": "Glinlandi",
        "GN": "Gine",
        "GP": "Gwadelupe",
        "GQ": "Ginekweta",
        "GR": "Ugilichi",
        "GT": "Gwatemala",
        "GU": "Gwam",
        "GW": "Ginebisau",
        "HN": "Hondulasi",
        "HR": "Kolasia",
        "HU": "Hungalia",
        "IE": "Ayalandi",
        "IL": "Islaeli",
        "IO": "Lieneo lyaki Nngalesa Nbahali ya Hindi",
        "IQ": "Ilaki",
        "IR": "Uadyemi",
        "IS": "Aislandi",
        "IT": "Italia",
        "JM": "Dyamaika",
        "JO": "Yordani",
        "JP": "Dyapani",
        "KG": "Kiligizistani",
        "KH": "Kambodia",
        "KI": "Kilibati",
        "KM": "Komolo",
        "KN": "Santakitzi na Nevis",
        "KP": "Kolea Kasikazini",
        "KR": "Kolea Kusini",
        "KW": "Kuwaiti",
        "KY": "Chisiwa cha Kemen",
        "KZ": "Kazachistani",
        "LA": "Laosi",
        "LB": "Lebanoni",
        "LC": "Santalusia",
        "LI": "Lishenteni",
        "LK": "Sililanka",
        "LR": "Libelia",
        "LS": "Lesoto",
        "LT": "Litwania",
        "LU": "Lasembagi",
        "LV": "Lativia",
        "MA": "Moloko",
        "MC": "Monako",
        "MG": "Bukini",
        "MH": "Chisiwa cha Malushal",
        "MK": "Masedonia",
        "MM": "Myama",
        "MP": "Chisiwa cha Marian cha Kasikazini",
        "MQ": "Malitiniki",
        "MR": "Molitania",
        "MS": "Monselati",
        "MU": "Molisi",
        "MV": "Modivu",
        "MX": "Meksiko",
        "MY": "Malesia",
        "MZ": "Msumbiji",
        "NC": "Nyukaledonia",
        "NE": "Nidyeli",
        "NF": "Chisiwa cha Nolufok",
        "NG": "Nidyelia",
        "NI": "Nikalagwa",
        "NL": "Uholanzi",
        "NO": "Norwe",
        "NP": "Nepali",
        "NR": "Naulu",
        "NZ": "Nyuzilandi",
        "OM": "Omani",
        "PE": "Pelu",
        "PF": "Polinesia ya Ufalansa",
        "PG": "Papua",
        "PH": "Filipino",
        "PK": "Pakistani",
        "PL": "Polandi",
        "PM": "Santapieli na Mikeloni",
        "PN": "Pitikeluni",
        "PR": "Pwetoliko",
        "PS": "Nchingu wa Magalibi wa Mpanda wa kuGaza wa kuPales",
        "PT": "Uleno",
        "PY": "Palagwai",
        "QA": "Katali",
        "RE": "Liyunioni",
        "RO": "Lomania",
        "RU": "Ulusi",
        "RW": "Lwanda",
        "SA": "Saudia",
        "SB": "Chisiwa cha Solomon",
        "SC": "Shelisheli",
        "SD": "Sudani",
        "SE": "Uswidi",
        "SG": "Singapoo",
        "SH": "Santahelena",
        "SL": "Siela Leoni",
        "SM": "Samalino",
        "SN": "Senegali",
        "SR": "Sulinamu",
        "ST": "Saotome na Prinsipe",
        "SV": "Elsavado",
        "SY": "Silia",
        "SZ": "Uswazi",
        "TC": "Chisiwa cha Tuluchi na Kaiko",
        "TD": "Chadi",
        "TH": "Tailandi",
        "TJ": "Tadikistani",
        "TL": "Timoli ya Mashaliki",
        "TM": "Tuluchimenistani",
        "TR": "Utuluchi",
        "TT": "Tilinidad na Tobago",
        "TW": "Taiwani",
        "UA": "Uklaini",
        "US": "Malekani",
        "UY": "Ulugwai",
        "UZ": "Uzibechistani",
        "VA": "Vatikani",
        "VC": "Santavisenti na Glenadini",
        "VG": "Chisiwa Chivihi cha Wingalesa",
        "VI": "Chisiwa Chivihi cha Malekani",
        "VN": "Vietinamu",
        "WF": "Walis na Futuna",
        "YE": "Yemeni",
        "YT": "Maole",
        "ZA": "Afilika Kusini"
    };
  }-*/;
}
