/*
 * 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 "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": "زیمبابوی"
    };
  }-*/;
}
