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

/**
 * Localized names for the "fi" locale.
 */
public class LocalizedNamesImpl_fi extends LocalizedNamesImpl {

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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "maailma");
    namesMap.put("002", "Afrikka");
    namesMap.put("003", "Pohjois-Amerikka");
    namesMap.put("005", "Etelä-Amerikka");
    namesMap.put("009", "Oseania");
    namesMap.put("011", "Länsi-Afrikka");
    namesMap.put("013", "Väli-Amerikka");
    namesMap.put("014", "Itä-Afrikka");
    namesMap.put("015", "Pohjois-Afrikka");
    namesMap.put("017", "Keski-Afrikka");
    namesMap.put("018", "eteläinen Afrikka");
    namesMap.put("019", "Amerikka");
    namesMap.put("021", "pohjoinen Amerikka");
    namesMap.put("029", "Karibia");
    namesMap.put("030", "Itä-Aasia");
    namesMap.put("034", "Etelä-Aasia");
    namesMap.put("035", "Kaakkois-Aasia");
    namesMap.put("039", "Etelä-Eurooppa");
    namesMap.put("053", "Australaasia");
    namesMap.put("057", "Mikronesia");
    namesMap.put("142", "Aasia");
    namesMap.put("143", "Keski-Aasia");
    namesMap.put("145", "Länsi-Aasia");
    namesMap.put("150", "Eurooppa");
    namesMap.put("151", "Itä-Eurooppa");
    namesMap.put("154", "Pohjois-Eurooppa");
    namesMap.put("155", "Länsi-Eurooppa");
    namesMap.put("419", "Latinalainen Amerikka");
    namesMap.put("AC", "Ascension-saari");
    namesMap.put("AE", "Arabiemiirikunnat");
    namesMap.put("AF", "Afganistan");
    namesMap.put("AG", "Antigua ja Barbuda");
    namesMap.put("AN", "Alankomaiden Antillit");
    namesMap.put("AQ", "Antarktis");
    namesMap.put("AR", "Argentiina");
    namesMap.put("AS", "Amerikan Samoa");
    namesMap.put("AT", "Itävalta");
    namesMap.put("AX", "Ahvenanmaa");
    namesMap.put("AZ", "Azerbaidžan");
    namesMap.put("BA", "Bosnia ja Hertsegovina");
    namesMap.put("BE", "Belgia");
    namesMap.put("BL", "Saint-Barthélemy");
    namesMap.put("BQ", "Karibian Alankomaat");
    namesMap.put("BR", "Brasilia");
    namesMap.put("BS", "Bahama");
    namesMap.put("BV", "Bouvet’nsaari");
    namesMap.put("BY", "Valko-Venäjä");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kookossaaret (Keelingsaaret)");
    namesMap.put("CD", "Kongon demokraattinen tasavalta");
    namesMap.put("CF", "Keski-Afrikan tasavalta");
    namesMap.put("CG", "Kongon tasavalta");
    namesMap.put("CH", "Sveitsi");
    namesMap.put("CI", "Norsunluurannikko");
    namesMap.put("CK", "Cookinsaaret");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kiina");
    namesMap.put("CO", "Kolumbia");
    namesMap.put("CP", "Clippertoninsaari");
    namesMap.put("CU", "Kuuba");
    namesMap.put("CV", "Kap Verde");
    namesMap.put("CX", "Joulusaari");
    namesMap.put("CY", "Kypros");
    namesMap.put("CZ", "Tšekki");
    namesMap.put("DE", "Saksa");
    namesMap.put("DK", "Tanska");
    namesMap.put("DO", "Dominikaaninen tasavalta");
    namesMap.put("EA", "Ceuta ja Melilla");
    namesMap.put("EE", "Viro");
    namesMap.put("EG", "Egypti");
    namesMap.put("EH", "Länsi-Sahara");
    namesMap.put("ES", "Espanja");
    namesMap.put("ET", "Etiopia");
    namesMap.put("EU", "Euroopan unioni");
    namesMap.put("FI", "Suomi");
    namesMap.put("FJ", "Fidži");
    namesMap.put("FK", "Falklandinsaaret");
    namesMap.put("FM", "Mikronesian liittovaltio");
    namesMap.put("FO", "Färsaaret");
    namesMap.put("FR", "Ranska");
    namesMap.put("GB", "Yhdistynyt kuningaskunta");
    namesMap.put("GF", "Ranskan Guayana");
    namesMap.put("GL", "Grönlanti");
    namesMap.put("GQ", "Päiväntasaajan Guinea");
    namesMap.put("GR", "Kreikka");
    namesMap.put("GS", "Etelä-Georgia ja Eteläiset Sandwichsaaret");
    namesMap.put("HK", "Hongkong – Kiinan e.h.a.");
    namesMap.put("HM", "Heard ja McDonaldinsaaret");
    namesMap.put("HR", "Kroatia");
    namesMap.put("HU", "Unkari");
    namesMap.put("IC", "Kanariansaaret");
    namesMap.put("IE", "Irlanti");
    namesMap.put("IM", "Mansaari");
    namesMap.put("IN", "Intia");
    namesMap.put("IO", "Brittiläinen Intian valtameren alue");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islanti");
    namesMap.put("IT", "Italia");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordania");
    namesMap.put("JP", "Japani");
    namesMap.put("KE", "Kenia");
    namesMap.put("KG", "Kirgisia");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KM", "Komorit");
    namesMap.put("KN", "Saint Kitts ja Nevis");
    namesMap.put("KP", "Pohjois-Korea");
    namesMap.put("KR", "Etelä-Korea");
    namesMap.put("KY", "Caymansaaret");
    namesMap.put("KZ", "Kazakstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LT", "Liettua");
    namesMap.put("LU", "Luxemburg");
    namesMap.put("MA", "Marokko");
    namesMap.put("MF", "Saint-Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallinsaaret");
    namesMap.put("MK", "Makedonia");
    namesMap.put("MO", "Macao – Kiinan e.h.a.");
    namesMap.put("MP", "Pohjois-Mariaanit");
    namesMap.put("MV", "Malediivit");
    namesMap.put("MX", "Meksiko");
    namesMap.put("MY", "Malesia");
    namesMap.put("MZ", "Mosambik");
    namesMap.put("NC", "Uusi-Kaledonia");
    namesMap.put("NF", "Norfolkinsaari");
    namesMap.put("NL", "Alankomaat");
    namesMap.put("NO", "Norja");
    namesMap.put("NZ", "Uusi-Seelanti");
    namesMap.put("PF", "Ranskan Polynesia");
    namesMap.put("PG", "Papua-Uusi-Guinea");
    namesMap.put("PH", "Filippiinit");
    namesMap.put("PL", "Puola");
    namesMap.put("PM", "Saint-Pierre ja Miquelon");
    namesMap.put("PN", "Pitcairn");
    namesMap.put("PS", "Palestiinalaisalueet");
    namesMap.put("PT", "Portugali");
    namesMap.put("QO", "ulkomeri");
    namesMap.put("RU", "Venäjä");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudi-Arabia");
    namesMap.put("SB", "Salomonsaaret");
    namesMap.put("SC", "Seychellit");
    namesMap.put("SE", "Ruotsi");
    namesMap.put("SJ", "Huippuvuoret ja Jan Mayen");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Etelä-Sudan");
    namesMap.put("ST", "São Tomé ja Príncipe");
    namesMap.put("SY", "Syyria");
    namesMap.put("SZ", "Swazimaa");
    namesMap.put("TC", "Turks- ja Caicossaaret");
    namesMap.put("TD", "Tšad");
    namesMap.put("TF", "Ranskan ulkopuoliset eteläiset alueet");
    namesMap.put("TH", "Thaimaa");
    namesMap.put("TJ", "Tadžikistan");
    namesMap.put("TL", "Itä-Timor");
    namesMap.put("TR", "Turkki");
    namesMap.put("TT", "Trinidad ja Tobago");
    namesMap.put("TZ", "Tansania");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UM", "Yhdysvaltain erillissaaret");
    namesMap.put("US", "Yhdysvallat");
    namesMap.put("VA", "Vatikaani");
    namesMap.put("VC", "Saint Vincent ja Grenadiinit");
    namesMap.put("VG", "Brittiläiset Neitsytsaaret");
    namesMap.put("VI", "Yhdysvaltain Neitsytsaaret");
    namesMap.put("WF", "Wallis ja Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Etelä-Afrikka");
    namesMap.put("ZM", "Sambia");
    namesMap.put("ZZ", "tuntematon alue");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "maailma",
        "002": "Afrikka",
        "003": "Pohjois-Amerikka",
        "005": "Etelä-Amerikka",
        "009": "Oseania",
        "011": "Länsi-Afrikka",
        "013": "Väli-Amerikka",
        "014": "Itä-Afrikka",
        "015": "Pohjois-Afrikka",
        "017": "Keski-Afrikka",
        "018": "eteläinen Afrikka",
        "019": "Amerikka",
        "021": "pohjoinen Amerikka",
        "029": "Karibia",
        "030": "Itä-Aasia",
        "034": "Etelä-Aasia",
        "035": "Kaakkois-Aasia",
        "039": "Etelä-Eurooppa",
        "053": "Australaasia",
        "057": "Mikronesia",
        "142": "Aasia",
        "143": "Keski-Aasia",
        "145": "Länsi-Aasia",
        "150": "Eurooppa",
        "151": "Itä-Eurooppa",
        "154": "Pohjois-Eurooppa",
        "155": "Länsi-Eurooppa",
        "419": "Latinalainen Amerikka",
        "AC": "Ascension-saari",
        "AE": "Arabiemiirikunnat",
        "AF": "Afganistan",
        "AG": "Antigua ja Barbuda",
        "AN": "Alankomaiden Antillit",
        "AQ": "Antarktis",
        "AR": "Argentiina",
        "AS": "Amerikan Samoa",
        "AT": "Itävalta",
        "AX": "Ahvenanmaa",
        "AZ": "Azerbaidžan",
        "BA": "Bosnia ja Hertsegovina",
        "BE": "Belgia",
        "BL": "Saint-Barthélemy",
        "BQ": "Karibian Alankomaat",
        "BR": "Brasilia",
        "BS": "Bahama",
        "BV": "Bouvet’nsaari",
        "BY": "Valko-Venäjä",
        "CA": "Kanada",
        "CC": "Kookossaaret (Keelingsaaret)",
        "CD": "Kongon demokraattinen tasavalta",
        "CF": "Keski-Afrikan tasavalta",
        "CG": "Kongon tasavalta",
        "CH": "Sveitsi",
        "CI": "Norsunluurannikko",
        "CK": "Cookinsaaret",
        "CM": "Kamerun",
        "CN": "Kiina",
        "CO": "Kolumbia",
        "CP": "Clippertoninsaari",
        "CU": "Kuuba",
        "CV": "Kap Verde",
        "CX": "Joulusaari",
        "CY": "Kypros",
        "CZ": "Tšekki",
        "DE": "Saksa",
        "DK": "Tanska",
        "DO": "Dominikaaninen tasavalta",
        "EA": "Ceuta ja Melilla",
        "EE": "Viro",
        "EG": "Egypti",
        "EH": "Länsi-Sahara",
        "ES": "Espanja",
        "ET": "Etiopia",
        "EU": "Euroopan unioni",
        "FI": "Suomi",
        "FJ": "Fidži",
        "FK": "Falklandinsaaret",
        "FM": "Mikronesian liittovaltio",
        "FO": "Färsaaret",
        "FR": "Ranska",
        "GB": "Yhdistynyt kuningaskunta",
        "GF": "Ranskan Guayana",
        "GL": "Grönlanti",
        "GQ": "Päiväntasaajan Guinea",
        "GR": "Kreikka",
        "GS": "Etelä-Georgia ja Eteläiset Sandwichsaaret",
        "HK": "Hongkong – Kiinan e.h.a.",
        "HM": "Heard ja McDonaldinsaaret",
        "HR": "Kroatia",
        "HU": "Unkari",
        "IC": "Kanariansaaret",
        "IE": "Irlanti",
        "IM": "Mansaari",
        "IN": "Intia",
        "IO": "Brittiläinen Intian valtameren alue",
        "IQ": "Irak",
        "IS": "Islanti",
        "IT": "Italia",
        "JM": "Jamaika",
        "JO": "Jordania",
        "JP": "Japani",
        "KE": "Kenia",
        "KG": "Kirgisia",
        "KH": "Kambodža",
        "KM": "Komorit",
        "KN": "Saint Kitts ja Nevis",
        "KP": "Pohjois-Korea",
        "KR": "Etelä-Korea",
        "KY": "Caymansaaret",
        "KZ": "Kazakstan",
        "LB": "Libanon",
        "LT": "Liettua",
        "LU": "Luxemburg",
        "MA": "Marokko",
        "MF": "Saint-Martin",
        "MG": "Madagaskar",
        "MH": "Marshallinsaaret",
        "MK": "Makedonia",
        "MO": "Macao – Kiinan e.h.a.",
        "MP": "Pohjois-Mariaanit",
        "MV": "Malediivit",
        "MX": "Meksiko",
        "MY": "Malesia",
        "MZ": "Mosambik",
        "NC": "Uusi-Kaledonia",
        "NF": "Norfolkinsaari",
        "NL": "Alankomaat",
        "NO": "Norja",
        "NZ": "Uusi-Seelanti",
        "PF": "Ranskan Polynesia",
        "PG": "Papua-Uusi-Guinea",
        "PH": "Filippiinit",
        "PL": "Puola",
        "PM": "Saint-Pierre ja Miquelon",
        "PN": "Pitcairn",
        "PS": "Palestiinalaisalueet",
        "PT": "Portugali",
        "QO": "ulkomeri",
        "RU": "Venäjä",
        "RW": "Ruanda",
        "SA": "Saudi-Arabia",
        "SB": "Salomonsaaret",
        "SC": "Seychellit",
        "SE": "Ruotsi",
        "SJ": "Huippuvuoret ja Jan Mayen",
        "SR": "Surinam",
        "SS": "Etelä-Sudan",
        "ST": "São Tomé ja Príncipe",
        "SY": "Syyria",
        "SZ": "Swazimaa",
        "TC": "Turks- ja Caicossaaret",
        "TD": "Tšad",
        "TF": "Ranskan ulkopuoliset eteläiset alueet",
        "TH": "Thaimaa",
        "TJ": "Tadžikistan",
        "TL": "Itä-Timor",
        "TR": "Turkki",
        "TT": "Trinidad ja Tobago",
        "TZ": "Tansania",
        "UA": "Ukraina",
        "UM": "Yhdysvaltain erillissaaret",
        "US": "Yhdysvallat",
        "VA": "Vatikaani",
        "VC": "Saint Vincent ja Grenadiinit",
        "VG": "Brittiläiset Neitsytsaaret",
        "VI": "Yhdysvaltain Neitsytsaaret",
        "WF": "Wallis ja Futuna",
        "YE": "Jemen",
        "ZA": "Etelä-Afrikka",
        "ZM": "Sambia",
        "ZZ": "tuntematon alue"
    };
  }-*/;
}
