/*
 * 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: 2013-07-20 19:27:45 +0200 (Sat, 20 Jul 2013) $
//  number=$Revision: 9061 $
//  type=PT

/**
 * Localized names for the "pt_TL" locale.
 */
public class LocalizedNamesImpl_pt_TL extends LocalizedNamesImpl_pt {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("009", "Oceânia");
    namesMap.put("015", "Norte de África");
    namesMap.put("029", "Caraíbas");
    namesMap.put("035", "Sudeste Asiático");
    namesMap.put("154", "Europa do Norte");
    namesMap.put("AI", "Anguila");
    namesMap.put("AM", "Arménia");
    namesMap.put("BH", "Barém");
    namesMap.put("BJ", "Benim");
    namesMap.put("BW", "Botswana");
    namesMap.put("CC", "Ilhas Cocos");
    namesMap.put("CD", "Congo-Kinshasa");
    namesMap.put("CG", "Congo-Brazzaville");
    namesMap.put("CM", "Camarões");
    namesMap.put("CW", "Curaçau");
    namesMap.put("CX", "Ilha do Natal");
    namesMap.put("CZ", "República Checa");
    namesMap.put("DJ", "Jibuti");
    namesMap.put("DM", "Domínica");
    namesMap.put("EE", "Estónia");
    namesMap.put("EG", "Egipto");
    namesMap.put("FK", "Ilhas Falkland");
    namesMap.put("FO", "Ilhas Faroé");
    namesMap.put("GL", "Gronelândia");
    namesMap.put("GS", "Ilhas Geórgia do Sul e Sandwich do Sul");
    namesMap.put("GU", "Guame");
    namesMap.put("GW", "Guiné-Bissau");
    namesMap.put("HM", "Ilhas Heard e McDonald");
    namesMap.put("IR", "Irão");
    namesMap.put("KE", "Quénia");
    namesMap.put("KG", "Quirguizistão");
    namesMap.put("KM", "Comoros");
    namesMap.put("KN", "São Cristóvão e Nevis");
    namesMap.put("KY", "Ilhas Caimão");
    namesMap.put("LK", "Sri Lanca");
    namesMap.put("LV", "Letónia");
    namesMap.put("MC", "Mónaco");
    namesMap.put("MG", "Madagáscar");
    namesMap.put("MK", "Macedónia");
    namesMap.put("MS", "Monserrate");
    namesMap.put("MU", "Maurícia");
    namesMap.put("NC", "Nova Caledónia");
    namesMap.put("NL", "Países Baixos");
    namesMap.put("PL", "Polónia");
    namesMap.put("PN", "Pitcairn");
    namesMap.put("PS", "Território Palestiniano");
    namesMap.put("QO", "Oceânia Insular");
    namesMap.put("RO", "Roménia");
    namesMap.put("SC", "Seicheles");
    namesMap.put("SG", "Singapura");
    namesMap.put("SI", "Eslovénia");
    namesMap.put("SM", "São Marino");
    namesMap.put("TC", "Ilhas Turcas e Caicos");
    namesMap.put("TJ", "Tajiquistão");
    namesMap.put("TK", "Toquelau");
    namesMap.put("TM", "Turquemenistão");
    namesMap.put("TT", "Trindade e Tobago");
    namesMap.put("VN", "Vietname");
    namesMap.put("YE", "Iémen");
    namesMap.put("YT", "Maiote");
    namesMap.put("ZW", "Zimbabué");
    namesMap.put("ZZ", "Região desconhecida ou inválida");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "009": "Oceânia",
        "015": "Norte de África",
        "029": "Caraíbas",
        "035": "Sudeste Asiático",
        "154": "Europa do Norte",
        "AI": "Anguila",
        "AM": "Arménia",
        "BH": "Barém",
        "BJ": "Benim",
        "BW": "Botswana",
        "CC": "Ilhas Cocos",
        "CD": "Congo-Kinshasa",
        "CG": "Congo-Brazzaville",
        "CM": "Camarões",
        "CW": "Curaçau",
        "CX": "Ilha do Natal",
        "CZ": "República Checa",
        "DJ": "Jibuti",
        "DM": "Domínica",
        "EE": "Estónia",
        "EG": "Egipto",
        "FK": "Ilhas Falkland",
        "FO": "Ilhas Faroé",
        "GL": "Gronelândia",
        "GS": "Ilhas Geórgia do Sul e Sandwich do Sul",
        "GU": "Guame",
        "GW": "Guiné-Bissau",
        "HM": "Ilhas Heard e McDonald",
        "IR": "Irão",
        "KE": "Quénia",
        "KG": "Quirguizistão",
        "KM": "Comoros",
        "KN": "São Cristóvão e Nevis",
        "KY": "Ilhas Caimão",
        "LK": "Sri Lanca",
        "LV": "Letónia",
        "MC": "Mónaco",
        "MG": "Madagáscar",
        "MK": "Macedónia",
        "MS": "Monserrate",
        "MU": "Maurícia",
        "NC": "Nova Caledónia",
        "NL": "Países Baixos",
        "PL": "Polónia",
        "PN": "Pitcairn",
        "PS": "Território Palestiniano",
        "QO": "Oceânia Insular",
        "RO": "Roménia",
        "SC": "Seicheles",
        "SG": "Singapura",
        "SI": "Eslovénia",
        "SM": "São Marino",
        "TC": "Ilhas Turcas e Caicos",
        "TJ": "Tajiquistão",
        "TK": "Toquelau",
        "TM": "Turquemenistão",
        "TT": "Trindade e Tobago",
        "VN": "Vietname",
        "YE": "Iémen",
        "YT": "Maiote",
        "ZW": "Zimbabué",
        "ZZ": "Região desconhecida ou inválida"
    };
  }-*/;
}
