/*
 * 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-08-27 20:07:13 +0200 (Tue, 27 Aug 2013) $
//  number=$Revision: 9280 $
//  type=fa

/**
 * Localized names for the "fa_AF" locale.
 */
public class LocalizedNamesImpl_fa_AF extends LocalizedNamesImpl_fa {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "اندورا");
    namesMap.put("AG", "انتیگوا و باربودا");
    namesMap.put("AL", "البانیا");
    namesMap.put("AO", "انگولا");
    namesMap.put("AR", "ارجنتاین");
    namesMap.put("AU", "آسترالیا");
    namesMap.put("BA", "بوسنیا و هرزه‌گوینا");
    namesMap.put("BD", "بنگله‌دیش");
    namesMap.put("BE", "بلجیم");
    namesMap.put("BG", "بلغاریا");
    namesMap.put("BN", "برونی");
    namesMap.put("BO", "بولیویا");
    namesMap.put("BR", "برازیل");
    namesMap.put("BS", "بهاماس");
    namesMap.put("BY", "روسیهٔ سفید");
    namesMap.put("CD", "جمهوری دموکراتیک کانگو");
    namesMap.put("CF", "افریقای مرکزی");
    namesMap.put("CG", "کانگو");
    namesMap.put("CH", "سویس");
    namesMap.put("CL", "چلی");
    namesMap.put("CO", "کولمبیا");
    namesMap.put("CR", "کاستریکا");
    namesMap.put("CU", "کیوبا");
    namesMap.put("DK", "دنمارک");
    namesMap.put("EE", "استونیا");
    namesMap.put("ER", "اریتریا");
    namesMap.put("ES", "هسپانیه");
    namesMap.put("ET", "ایتوپیا");
    namesMap.put("FI", "فنلند");
    namesMap.put("FM", "میکرونزیا");
    namesMap.put("GD", "گرینادا");
    namesMap.put("GN", "گینیا");
    namesMap.put("GQ", "گینیا استوایی");
    namesMap.put("GT", "گواتیمالا");
    namesMap.put("GW", "گینیا بیسائو");
    namesMap.put("GY", "گیانا");
    namesMap.put("HN", "هاندوراس");
    namesMap.put("HR", "کروشیا");
    namesMap.put("HT", "هایتی");
    namesMap.put("ID", "اندونیزیا");
    namesMap.put("IE", "آیرلند");
    namesMap.put("IS", "آیسلند");
    namesMap.put("JP", "جاپان");
    namesMap.put("KE", "کینیا");
    namesMap.put("KG", "قرغزستان");
    namesMap.put("KH", "کمپوچیا");
    namesMap.put("KN", "سنت کیتس و نیویس");
    namesMap.put("KP", "کوریای شمالی");
    namesMap.put("KR", "کوریای جنوبی");
    namesMap.put("LK", "سریلانکا");
    namesMap.put("LS", "لیسوتو");
    namesMap.put("LT", "لتوانیا");
    namesMap.put("LV", "لاتویا");
    namesMap.put("LY", "لیبیا");
    namesMap.put("MG", "مادغاسکر");
    namesMap.put("MN", "منگولیا");
    namesMap.put("MR", "موریتانیا");
    namesMap.put("MT", "مالتا");
    namesMap.put("MX", "مکسیکو");
    namesMap.put("MY", "مالیزیا");
    namesMap.put("MZ", "موزمبیق");
    namesMap.put("NG", "نیجریا");
    namesMap.put("NI", "نیکاراگوا");
    namesMap.put("NL", "هالند");
    namesMap.put("NO", "ناروی");
    namesMap.put("NP", "نیپال");
    namesMap.put("NZ", "زیلاند جدید");
    namesMap.put("PA", "پانامه");
    namesMap.put("PE", "پیرو");
    namesMap.put("PG", "پاپوا نیو گینیا");
    namesMap.put("PL", "پولند");
    namesMap.put("PT", "پرتگال");
    namesMap.put("PY", "پاراگوای");
    namesMap.put("RO", "رومانیا");
    namesMap.put("RW", "روآندا");
    namesMap.put("SB", "جزایر سلومون");
    namesMap.put("SE", "سویدن");
    namesMap.put("SG", "سینگاپور");
    namesMap.put("SI", "سلونیا");
    namesMap.put("SK", "سلواکیا");
    namesMap.put("SL", "سیرالیون");
    namesMap.put("SN", "سینیگال");
    namesMap.put("SO", "سومالیه");
    namesMap.put("ST", "سائو تومه و پرینسیپ");
    namesMap.put("SV", "السلوادور");
    namesMap.put("TJ", "تاجکستان");
    namesMap.put("UA", "اکراین");
    namesMap.put("UY", "یوروگوای");
    namesMap.put("VC", "سنت وینسنت و گرینادین");
    namesMap.put("VE", "ونزویلا");
    namesMap.put("ZW", "زیمبابوی");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "اندورا",
        "AG": "انتیگوا و باربودا",
        "AL": "البانیا",
        "AO": "انگولا",
        "AR": "ارجنتاین",
        "AU": "آسترالیا",
        "BA": "بوسنیا و هرزه‌گوینا",
        "BD": "بنگله‌دیش",
        "BE": "بلجیم",
        "BG": "بلغاریا",
        "BN": "برونی",
        "BO": "بولیویا",
        "BR": "برازیل",
        "BS": "بهاماس",
        "BY": "روسیهٔ سفید",
        "CD": "جمهوری دموکراتیک کانگو",
        "CF": "افریقای مرکزی",
        "CG": "کانگو",
        "CH": "سویس",
        "CL": "چلی",
        "CO": "کولمبیا",
        "CR": "کاستریکا",
        "CU": "کیوبا",
        "DK": "دنمارک",
        "EE": "استونیا",
        "ER": "اریتریا",
        "ES": "هسپانیه",
        "ET": "ایتوپیا",
        "FI": "فنلند",
        "FM": "میکرونزیا",
        "GD": "گرینادا",
        "GN": "گینیا",
        "GQ": "گینیا استوایی",
        "GT": "گواتیمالا",
        "GW": "گینیا بیسائو",
        "GY": "گیانا",
        "HN": "هاندوراس",
        "HR": "کروشیا",
        "HT": "هایتی",
        "ID": "اندونیزیا",
        "IE": "آیرلند",
        "IS": "آیسلند",
        "JP": "جاپان",
        "KE": "کینیا",
        "KG": "قرغزستان",
        "KH": "کمپوچیا",
        "KN": "سنت کیتس و نیویس",
        "KP": "کوریای شمالی",
        "KR": "کوریای جنوبی",
        "LK": "سریلانکا",
        "LS": "لیسوتو",
        "LT": "لتوانیا",
        "LV": "لاتویا",
        "LY": "لیبیا",
        "MG": "مادغاسکر",
        "MN": "منگولیا",
        "MR": "موریتانیا",
        "MT": "مالتا",
        "MX": "مکسیکو",
        "MY": "مالیزیا",
        "MZ": "موزمبیق",
        "NG": "نیجریا",
        "NI": "نیکاراگوا",
        "NL": "هالند",
        "NO": "ناروی",
        "NP": "نیپال",
        "NZ": "زیلاند جدید",
        "PA": "پانامه",
        "PE": "پیرو",
        "PG": "پاپوا نیو گینیا",
        "PL": "پولند",
        "PT": "پرتگال",
        "PY": "پاراگوای",
        "RO": "رومانیا",
        "RW": "روآندا",
        "SB": "جزایر سلومون",
        "SE": "سویدن",
        "SG": "سینگاپور",
        "SI": "سلونیا",
        "SK": "سلواکیا",
        "SL": "سیرالیون",
        "SN": "سینیگال",
        "SO": "سومالیه",
        "ST": "سائو تومه و پرینسیپ",
        "SV": "السلوادور",
        "TJ": "تاجکستان",
        "UA": "اکراین",
        "UY": "یوروگوای",
        "VC": "سنت وینسنت و گرینادین",
        "VE": "ونزویلا",
        "ZW": "زیمبابوی"
    };
  }-*/;
}
