/*
 * 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:
//  cldrVersion=21.0
//  number=$Revision: 6546 $
//  date=$Date: 2012-02-07 13:32:35 -0500 (Tue, 07 Feb 2012) $
//  type=AF


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

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "BQ",
        "CW",
        "SS",
        "SX",
        "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",
        "SB",
        "FO",
        "FK",
        "IC",
        "MH",
        "MP",
        "VI",
        "VG",
        "PN",
        "CP",
        "UM",
        "CK",
        "CC",
        "KY",
        "BV",
        "IM",
        "NF",
        "HM",
        "CX",
        "AZ",
        "CD",
        "DO",
        "CZ",
        "AQ",
        "GS",
        "DJ",
        "DK",
        "DM",
        "DG",
        "RW",
        "RU",
        "BY",
        "RO",
        "RE",
        "ZM",
        "NZ",
        "ZW",
        "ST",
        "CI",
        "WS",
        "AS",
        "SM",
        "EA",
        "PS",
        "LK",
        "SK",
        "SI",
        "BL",
        "LC",
        "MF",
        "SH",
        "VC",
        "PM",
        "KN",
        "SZ",
        "SD",
        "SR",
        "SY",
        "SO",
        "SE",
        "CH",
        "SL",
        "SC",
        "SG",
        "SN",
        "EH",
        "RS",
        "CS",
        "IQ",
        "SA",
        "OM",
        "GH",
        "FR",
        "FI",
        "FJ",
        "PH",
        "CY",
        "KG",
        "KZ",
        "QA",
        "LA",
        "LV",
        "LB",
        "LT",
        "LU",
        "LR",
        "LY",
        "LI",
        "LS",
        "MG",
        "MQ",
        "MW",
        "MT",
        "MV",
        "ML",
        "MY",
        "MO",
        "YT",
        "HU",
        "MA",
        "IO",
        "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",
        "KI",
        "KH",
        "KR",
        "KP",
        "CO",
        "KM",
        "KW",
        "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("KM", "کومور");
    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("WS", "ساموآ");
    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": "کمپوچیا",
        "KM": "کومور",
        "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": "ونزویلا",
        "WS": "ساموآ",
        "ZW": "زیمبابوی"
    };
  }-*/;
}
