All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.squarespace.cldr.dates._CalendarFormatter_fa Maven / Gradle / Ivy

//
//
// AUTO-GENERATED CLASS - DO NOT EDIT
//
//
package com.squarespace.cldr.dates;

import com.squarespace.cldr.CLDR;
import java.lang.Override;
import java.lang.String;
import java.lang.StringBuilder;
import java.time.ZonedDateTime;
import java.util.HashMap;

/**
 * Locale "fa"
 * See http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 */
public class _CalendarFormatter_fa extends CalendarFormatterBase {
  public _CalendarFormatter_fa() {
    this.locale = CLDR.Locale.fa;
    this.firstDay = 1;
    this.minDays = 1;
    this.eras = new FieldVariants(
          new String[] {"ق.م.", "م."}, 
          new String[] {"ق", "م"}, 
          new String[] {}, 
          new String[] {"قبل از میلاد", "میلادی"});
    this.quartersFormat = new FieldVariants(
          new String[] {"س‌م۱", "س‌م۲", "س‌م۳", "س‌م۴"}, 
          new String[] {"۱", "۲", "۳", "۴"}, 
          new String[] {}, 
          new String[] {"سه‌ماههٔ اول", "سه‌ماههٔ دوم", "سه‌ماههٔ سوم", "سه‌ماههٔ چهارم"});
    this.quartersStandalone = new FieldVariants(
          new String[] {"س‌م۱", "س‌م۲", "س‌م۳", "س‌م۴"}, 
          new String[] {"۱", "۲", "۳", "۴"}, 
          new String[] {}, 
          new String[] {"سه‌ماههٔ اول", "سه‌ماههٔ دوم", "سه‌ماههٔ سوم", "سه‌ماههٔ چهارم"});
    this.monthsFormat = new FieldVariants(
          new String[] {"ژانویهٔ", "فوریهٔ", "مارس", "آوریل", "مهٔ", "ژوئن", "ژوئیهٔ", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"}, 
          new String[] {"ژ", "ف", "م", "آ", "م", "ژ", "ژ", "ا", "س", "ا", "ن", "د"}, 
          new String[] {}, 
          new String[] {"ژانویهٔ", "فوریهٔ", "مارس", "آوریل", "مهٔ", "ژوئن", "ژوئیهٔ", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"});
    this.monthsStandalone = new FieldVariants(
          new String[] {"ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"}, 
          new String[] {"ژ", "ف", "م", "آ", "م", "ژ", "ژ", "ا", "س", "ا", "ن", "د"}, 
          new String[] {}, 
          new String[] {"ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"});
    this.weekdaysFormat = new FieldVariants(
          new String[] {"یکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"}, 
          new String[] {"ی", "د", "س", "چ", "پ", "ج", "ش"}, 
          new String[] {"۱ش", "۲ش", "۳ش", "۴ش", "۵ش", "ج", "ش"}, 
          new String[] {"یکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"});
    this.weekdaysStandalone = new FieldVariants(
          new String[] {"یکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"}, 
          new String[] {"ی", "د", "س", "چ", "پ", "ج", "ش"}, 
          new String[] {"۱ش", "۲ش", "۳ش", "۴ش", "۵ش", "ج", "ش"}, 
          new String[] {"یکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"});
    this.dayPeriodsFormat = new FieldVariants(
          new String[] {"ق.ظ.", "ب.ظ."}, 
          new String[] {"ق", "ب"}, 
          new String[] {}, 
          new String[] {"قبل‌ازظهر", "بعدازظهر"});
    this.dayPeriodsStandalone = new FieldVariants(
          new String[] {"ق.ظ.", "ب.ظ."}, 
          new String[] {"ق.ظ.", "ب.ظ."}, 
          new String[] {}, 
          new String[] {"قبل‌ازظهر", "بعدازظهر"});
    this.exemplarCities = new HashMap() { {
      put("America/Adak", "ایدک");
      put("America/Anchorage", "انکوریج");
      put("America/Anguilla", "آنگوئیلا");
      put("America/Antigua", "آنتیگوا");
      put("America/Araguaina", "آراگواینا");
      put("America/Argentina/Rio_Gallegos", "ریوگالگوس");
      put("America/Argentina/San_Juan", "سن‌خوان");
      put("America/Argentina/Ushuaia", "اوشوایا");
      put("America/Argentina/La_Rioja", "لاریوخا");
      put("America/Argentina/San_Luis", "سن‌لوئیس");
      put("America/Argentina/Salta", "سالتا");
      put("America/Argentina/Tucuman", "توکومن");
      put("America/Aruba", "اروبا");
      put("America/Asuncion", "آسونسیون");
      put("America/Bahia", "بایا");
      put("America/Bahia_Banderas", "باهیا باندراس");
      put("America/Barbados", "باربادوس");
      put("America/Belem", "بلم");
      put("America/Belize", "بلیز");
      put("America/Blanc-Sablon", "بلان‐سابلون");
      put("America/Boa_Vista", "بوئاویستا");
      put("America/Bogota", "بوگوتا");
      put("America/Boise", "بویسی");
      put("America/Buenos_Aires", "بوئنوس‌آیرس");
      put("America/Cambridge_Bay", "کمبریج‌بی");
      put("America/Campo_Grande", "کمپو گرانده");
      put("America/Cancun", "کانکون");
      put("America/Caracas", "کاراکاس");
      put("America/Catamarca", "کاتامارکا");
      put("America/Cayenne", "کاین");
      put("America/Cayman", "کیمن");
      put("America/Chicago", "شیکاگو");
      put("America/Chihuahua", "چیواوا");
      put("America/Coral_Harbour", "اتکوکان");
      put("America/Cordoba", "کوردووا");
      put("America/Costa_Rica", "کاستاریکا");
      put("America/Creston", "کرستون");
      put("America/Cuiaba", "کویاوا");
      put("America/Curacao", "کوراسائو");
      put("America/Danmarkshavn", "دانمارکس‌هاون");
      put("America/Dawson", "داوسن");
      put("America/Dawson_Creek", "داوسن کریک");
      put("America/Denver", "دنور");
      put("America/Detroit", "دیترویت");
      put("America/Dominica", "دومینیکا");
      put("America/Edmonton", "ادمونتون");
      put("America/Eirunepe", "ایرونپه");
      put("America/El_Salvador", "السالوادور");
      put("America/Fort_Nelson", "فورت نلسون");
      put("America/Fortaleza", "فورتالزا");
      put("America/Glace_Bay", "گلیس‌بی");
      put("America/Godthab", "نووک");
      put("America/Goose_Bay", "گوس‌بی");
      put("America/Grand_Turk", "گراند تورک");
      put("America/Grenada", "گرنادا");
      put("America/Guadeloupe", "گوادلوپ");
      put("America/Guatemala", "گواتمالا");
      put("America/Guayaquil", "گوایاکیل");
      put("America/Guyana", "گویان");
      put("America/Halifax", "هلیفکس");
      put("America/Havana", "هاوانا");
      put("America/Hermosillo", "ارموسیو");
      put("America/Indiana/Vincennes", "وینسنس، اندیانا");
      put("America/Indiana/Petersburg", "پیترزبرگ، ایندیانا");
      put("America/Indiana/Tell_City", "تل‌سیتی، ایندیانا");
      put("America/Indiana/Knox", "ناکس، ایندیانا");
      put("America/Indiana/Winamac", "ویناماک، ایندیانا");
      put("America/Indiana/Marengo", "مارنگو، ایندیانا");
      put("America/Indiana/Vevay", "ویوی، ایندیانا");
      put("America/Indianapolis", "ایندیاناپولیس");
      put("America/Inuvik", "اینوویک");
      put("America/Iqaluit", "ایکلوئت");
      put("America/Jamaica", "جامائیکا");
      put("America/Jujuy", "خوخوی");
      put("America/Juneau", "جونو");
      put("America/Kentucky/Monticello", "مانتیسلو، کنتاکی");
      put("America/Kralendijk", "کرالندیک");
      put("America/La_Paz", "لاپاز");
      put("America/Lima", "لیما");
      put("America/Los_Angeles", "لوس‌آنجلس");
      put("America/Louisville", "لوئیزویل");
      put("America/Lower_Princes", "بخش شاهزاده‌‌نشین پایین");
      put("America/Maceio", "ماسیو");
      put("America/Managua", "ماناگوا");
      put("America/Manaus", "ماناوس");
      put("America/Marigot", "ماریگات");
      put("America/Martinique", "مارتینیک");
      put("America/Matamoros", "ماتاموروس");
      put("America/Mazatlan", "ماساتلان");
      put("America/Mendoza", "مندوسا");
      put("America/Menominee", "منامینی");
      put("America/Merida", "مریدا");
      put("America/Metlakatla", "متالاکاتلا");
      put("America/Mexico_City", "مکزیکوسیتی");
      put("America/Miquelon", "میکلون");
      put("America/Moncton", "مانکتون");
      put("America/Monterrey", "مونتری");
      put("America/Montevideo", "مونته‌ویدئو");
      put("America/Montserrat", "مونتسرات");
      put("America/Nassau", "ناسائو");
      put("America/New_York", "نیویورک");
      put("America/Nipigon", "نیپیگان");
      put("America/Nome", "نوم");
      put("America/Noronha", "نورونیا");
      put("America/North_Dakota/Beulah", "بیولا، داکوتای شمالی");
      put("America/North_Dakota/New_Salem", "نیوسالم، داکوتای شمالی");
      put("America/North_Dakota/Center", "سنتر، داکوتای شمالی");
      put("America/Ojinaga", "اخیناگا");
      put("America/Panama", "پاناما");
      put("America/Pangnirtung", "پانگنیرتونگ");
      put("America/Paramaribo", "پاراماریبو");
      put("America/Phoenix", "فینکس");
      put("America/Port-au-Prince", "پورتوپرنس");
      put("America/Port_of_Spain", "پورت‌آواسپین");
      put("America/Porto_Velho", "پورتوولیو");
      put("America/Puerto_Rico", "پورتوریکو");
      put("America/Rainy_River", "رینی‌ریور");
      put("America/Rankin_Inlet", "خلیجک رنکین");
      put("America/Recife", "ریسیفی");
      put("America/Regina", "رجاینا");
      put("America/Resolute", "رزولوت");
      put("America/Rio_Branco", "ریوبرانکو");
      put("America/Santa_Isabel", "سانتا ایزابل");
      put("America/Santarem", "سنتارم");
      put("America/Santiago", "سانتیاگو");
      put("America/Santo_Domingo", "سانتو دومینگو");
      put("America/Sao_Paulo", "سائوپائولو");
      put("America/Scoresbysund", "اسکورسبیسوند");
      put("America/Sitka", "سیتکا");
      put("America/St_Barthelemy", "سنت بارتلمی");
      put("America/St_Johns", "سنت جان");
      put("America/St_Kitts", "سنت کیتس");
      put("America/St_Lucia", "سنت لوسیا");
      put("America/St_Thomas", "سنت توماس");
      put("America/St_Vincent", "سنت وینسنت");
      put("America/Swift_Current", "سویفت‌کارنت");
      put("America/Tegucigalpa", "تگوسیگالپا");
      put("America/Thule", "تول");
      put("America/Thunder_Bay", "تاندربی");
      put("America/Tijuana", "تیخوانا");
      put("America/Toronto", "تورنتو");
      put("America/Tortola", "تورتولا");
      put("America/Vancouver", "ونکوور");
      put("America/Whitehorse", "وایت‌هورس");
      put("America/Winnipeg", "وینیپگ");
      put("America/Yakutat", "یاکوتات");
      put("America/Yellowknife", "یلونایف");
      put("Atlantic/Azores", "آزور");
      put("Atlantic/Bermuda", "برمودا");
      put("Atlantic/Canary", "قناری");
      put("Atlantic/Cape_Verde", "کیپ‌ورد");
      put("Atlantic/Faeroe", "فارو");
      put("Atlantic/Madeira", "مادیرا");
      put("Atlantic/Reykjavik", "ریکیاویک");
      put("Atlantic/South_Georgia", "جورجیای جنوبی");
      put("Atlantic/St_Helena", "سنت هلنا");
      put("Atlantic/Stanley", "استانلی");
      put("Europe/Amsterdam", "آمستردام");
      put("Europe/Andorra", "آندورا");
      put("Europe/Astrakhan", "آستراخان");
      put("Europe/Athens", "آتن");
      put("Europe/Belgrade", "بلگراد");
      put("Europe/Berlin", "برلین");
      put("Europe/Bratislava", "براتیسلاوا");
      put("Europe/Brussels", "بروکسل");
      put("Europe/Bucharest", "بخارست");
      put("Europe/Budapest", "بوداپست");
      put("Europe/Busingen", "بازنگن");
      put("Europe/Chisinau", "کیشیناو");
      put("Europe/Copenhagen", "کپنهاگ");
      put("Europe/Dublin", "دوبلین");
      put("Europe/Gibraltar", "جبل‌الطارق");
      put("Europe/Guernsey", "گرنزی");
      put("Europe/Helsinki", "هلسینکی");
      put("Europe/Isle_of_Man", "جزیرهٔ من");
      put("Europe/Istanbul", "استانبول");
      put("Europe/Jersey", "جرزی");
      put("Europe/Kaliningrad", "کالینینگراد");
      put("Europe/Kiev", "کیف");
      put("Europe/Kirov", "کیروف");
      put("Europe/Lisbon", "لیسبون");
      put("Europe/Ljubljana", "لیوبلیانا");
      put("Europe/London", "لندن");
      put("Europe/Luxembourg", "لوکزامبورگ");
      put("Europe/Madrid", "مادرید");
      put("Europe/Malta", "مالت");
      put("Europe/Mariehamn", "ماریه‌هامن");
      put("Europe/Minsk", "مینسک");
      put("Europe/Monaco", "موناکو");
      put("Europe/Moscow", "مسکو");
      put("Europe/Oslo", "اسلو");
      put("Europe/Paris", "پاریس");
      put("Europe/Podgorica", "پادگاریتسا");
      put("Europe/Prague", "پراگ");
      put("Europe/Riga", "ریگا");
      put("Europe/Rome", "رم");
      put("Europe/Samara", "سامارا");
      put("Europe/San_Marino", "سان‌مارینو");
      put("Europe/Sarajevo", "سارایوو");
      put("Europe/Simferopol", "سیمفروپل");
      put("Europe/Skopje", "اسکوپیه");
      put("Europe/Sofia", "صوفیه");
      put("Europe/Stockholm", "استکهلم");
      put("Europe/Tallinn", "تالین");
      put("Europe/Tirane", "تیرانا");
      put("Europe/Ulyanovsk", "اولیانوفسک");
      put("Europe/Uzhgorod", "اوژگورود");
      put("Europe/Vaduz", "فادوتس");
      put("Europe/Vatican", "واتیکان");
      put("Europe/Vienna", "وین");
      put("Europe/Vilnius", "ویلنیوس");
      put("Europe/Volgograd", "ولگاگراد");
      put("Europe/Warsaw", "ورشو");
      put("Europe/Zagreb", "زاگرب");
      put("Europe/Zaporozhye", "زاپوروژیا");
      put("Europe/Zurich", "زوریخ");
      put("Africa/Abidjan", "آبیجان");
      put("Africa/Accra", "اکرا");
      put("Africa/Addis_Ababa", "آدیس آبابا");
      put("Africa/Algiers", "الجزیره");
      put("Africa/Asmera", "اسمره");
      put("Africa/Bamako", "باماکو");
      put("Africa/Bangui", "بانگی");
      put("Africa/Banjul", "بانجول");
      put("Africa/Bissau", "بیسائو");
      put("Africa/Blantyre", "بلانتیره");
      put("Africa/Brazzaville", "برازویل");
      put("Africa/Bujumbura", "بوجومبورا");
      put("Africa/Cairo", "قاهره");
      put("Africa/Casablanca", "کازابلانکا");
      put("Africa/Ceuta", "سبته");
      put("Africa/Conakry", "کوناکری");
      put("Africa/Dakar", "داکار");
      put("Africa/Dar_es_Salaam", "دارالسلام");
      put("Africa/Djibouti", "جیبوتی");
      put("Africa/Douala", "دوآلا");
      put("Africa/El_Aaiun", "العیون");
      put("Africa/Freetown", "فری‌تاون");
      put("Africa/Gaborone", "گابورون");
      put("Africa/Harare", "هراره");
      put("Africa/Johannesburg", "ژوهانسبورگ");
      put("Africa/Juba", "جوبا");
      put("Africa/Kampala", "کامپالا");
      put("Africa/Khartoum", "خارطوم");
      put("Africa/Kigali", "کیگالی");
      put("Africa/Kinshasa", "کینشاسا");
      put("Africa/Lagos", "لاگوس");
      put("Africa/Libreville", "لیبرویل");
      put("Africa/Lome", "لومه");
      put("Africa/Luanda", "لواندا");
      put("Africa/Lubumbashi", "لوبومباشی");
      put("Africa/Lusaka", "لوزاکا");
      put("Africa/Malabo", "مالابو");
      put("Africa/Maputo", "ماپوتو");
      put("Africa/Maseru", "ماسرو");
      put("Africa/Mbabane", "مبابانه");
      put("Africa/Mogadishu", "موگادیشو");
      put("Africa/Monrovia", "مونروویا");
      put("Africa/Nairobi", "نایروبی");
      put("Africa/Ndjamena", "انجامنا");
      put("Africa/Niamey", "نیامی");
      put("Africa/Nouakchott", "نوآکشوت");
      put("Africa/Ouagadougou", "اوآگادوگو");
      put("Africa/Porto-Novo", "پورتو نووو");
      put("Africa/Sao_Tome", "سائوتومه");
      put("Africa/Tripoli", "طرابلس");
      put("Africa/Tunis", "شهر تونس");
      put("Africa/Windhoek", "ویندهوک");
      put("Asia/Aden", "عدن");
      put("Asia/Almaty", "آلماتی");
      put("Asia/Amman", "عمّان");
      put("Asia/Anadyr", "آنادیر");
      put("Asia/Aqtau", "آقتاو");
      put("Asia/Aqtobe", "آقتوبه");
      put("Asia/Ashgabat", "عشق‌آباد");
      put("Asia/Baghdad", "بغداد");
      put("Asia/Bahrain", "بحرین");
      put("Asia/Baku", "باکو");
      put("Asia/Bangkok", "بانکوک");
      put("Asia/Barnaul", "بارنائول");
      put("Asia/Beirut", "بیروت");
      put("Asia/Bishkek", "بیشکک");
      put("Asia/Brunei", "برونئی");
      put("Asia/Calcutta", "کلکته");
      put("Asia/Chita", "چیتا");
      put("Asia/Choibalsan", "چویبالسان");
      put("Asia/Colombo", "کلمبو");
      put("Asia/Damascus", "دمشق");
      put("Asia/Dhaka", "داکا");
      put("Asia/Dili", "دیلی");
      put("Asia/Dubai", "دبی");
      put("Asia/Dushanbe", "دوشنبه");
      put("Asia/Gaza", "غزه");
      put("Asia/Hebron", "الخلیل");
      put("Asia/Hong_Kong", "هنگ‌کنگ");
      put("Asia/Hovd", "خوود");
      put("Asia/Irkutsk", "ایرکوتسک");
      put("Asia/Jakarta", "جاکارتا");
      put("Asia/Jayapura", "جایاپورا");
      put("Asia/Jerusalem", "اورشلیم");
      put("Asia/Kabul", "کابل");
      put("Asia/Kamchatka", "کامچاتکا");
      put("Asia/Karachi", "کراچی");
      put("Asia/Katmandu", "کاتماندو");
      put("Asia/Khandyga", "خاندیگا");
      put("Asia/Krasnoyarsk", "کراسنویارسک");
      put("Asia/Kuala_Lumpur", "کوالالامپور");
      put("Asia/Kuching", "کوچینگ");
      put("Asia/Kuwait", "کویت");
      put("Asia/Macau", "ماکائو");
      put("Asia/Magadan", "ماگادان");
      put("Asia/Makassar", "ماکاسار");
      put("Asia/Manila", "مانیل");
      put("Asia/Muscat", "مسقط");
      put("Asia/Nicosia", "نیکوزیا");
      put("Asia/Novokuznetsk", "نوووکوزنتسک");
      put("Asia/Novosibirsk", "نووسیبیریسک");
      put("Asia/Omsk", "اومسک");
      put("Asia/Oral", "اورال");
      put("Asia/Phnom_Penh", "پنوم‌پن");
      put("Asia/Pontianak", "پونتیاناک");
      put("Asia/Pyongyang", "پیونگ‌یانگ");
      put("Asia/Qatar", "قطر");
      put("Asia/Qyzylorda", "قیزیل‌اوردا");
      put("Asia/Rangoon", "یانگون");
      put("Asia/Riyadh", "ریاض");
      put("Asia/Saigon", "هوشی‌مین‌سیتی");
      put("Asia/Sakhalin", "ساخالین");
      put("Asia/Samarkand", "سمرقند");
      put("Asia/Seoul", "سئول");
      put("Asia/Shanghai", "شانگهای");
      put("Asia/Singapore", "سنگاپور");
      put("Asia/Srednekolymsk", "اسردنکولیمسک");
      put("Asia/Taipei", "تایپه");
      put("Asia/Tashkent", "تاشکند");
      put("Asia/Tbilisi", "تفلیس");
      put("Asia/Tehran", "تهران");
      put("Asia/Thimphu", "تیمفو");
      put("Asia/Tokyo", "توکیو");
      put("Asia/Tomsk", "تومسک");
      put("Asia/Ulaanbaatar", "اولان‌باتور");
      put("Asia/Urumqi", "ارومچی");
      put("Asia/Ust-Nera", "اوست نرا");
      put("Asia/Vientiane", "وینتیان");
      put("Asia/Vladivostok", "ولادی‌وستوک");
      put("Asia/Yakutsk", "یاکوتسک");
      put("Asia/Yekaterinburg", "یکاترینبرگ");
      put("Asia/Yerevan", "ایروان");
      put("Indian/Antananarivo", "آنتاناناریوو");
      put("Indian/Chagos", "شاگوس");
      put("Indian/Christmas", "کریسمس");
      put("Indian/Cocos", "کوکوس");
      put("Indian/Comoro", "کومورو");
      put("Indian/Kerguelen", "کرگولن");
      put("Indian/Mahe", "ماهه");
      put("Indian/Maldives", "مالدیو");
      put("Indian/Mauritius", "موریس");
      put("Indian/Mayotte", "مایوت");
      put("Indian/Reunion", "رئونیون");
      put("Australia/Adelaide", "آدلاید");
      put("Australia/Brisbane", "بریسبین");
      put("Australia/Broken_Hill", "بروکن‌هیل");
      put("Australia/Currie", "کوری");
      put("Australia/Darwin", "داروین");
      put("Australia/Eucla", "اوکلا");
      put("Australia/Hobart", "هوبارت");
      put("Australia/Lindeman", "لیندمن");
      put("Australia/Lord_Howe", "لردهاو");
      put("Australia/Melbourne", "ملبورن");
      put("Australia/Perth", "پرت");
      put("Australia/Sydney", "سیدنی");
      put("Pacific/Apia", "آپیا");
      put("Pacific/Auckland", "اوکلند");
      put("Pacific/Bougainville", "بوگنویل");
      put("Pacific/Chatham", "چتم");
      put("Pacific/Easter", "ایستر");
      put("Pacific/Efate", "افاته");
      put("Pacific/Enderbury", "اندربری");
      put("Pacific/Fakaofo", "فاکائوفو");
      put("Pacific/Fiji", "فیجی");
      put("Pacific/Funafuti", "فونافوتی");
      put("Pacific/Galapagos", "گالاپاگوس");
      put("Pacific/Gambier", "گامبیر");
      put("Pacific/Guadalcanal", "گوادال‌کانال");
      put("Pacific/Guam", "گوام");
      put("Pacific/Honolulu", "هونولولو");
      put("Pacific/Johnston", "جانستون");
      put("Pacific/Kiritimati", "کریتیماتی");
      put("Pacific/Kosrae", "کوسرای");
      put("Pacific/Kwajalein", "کواجیلین");
      put("Pacific/Majuro", "ماجورو");
      put("Pacific/Marquesas", "مارکوزه");
      put("Pacific/Midway", "میدوی");
      put("Pacific/Nauru", "نائورو");
      put("Pacific/Niue", "نیوئه");
      put("Pacific/Norfolk", "نورفولک");
      put("Pacific/Noumea", "نومئا");
      put("Pacific/Pago_Pago", "پاگوپاگو");
      put("Pacific/Palau", "پالائو");
      put("Pacific/Pitcairn", "پیت‌کرن");
      put("Pacific/Ponape", "پانپی");
      put("Pacific/Port_Moresby", "پورت‌مورزبی");
      put("Pacific/Rarotonga", "راروتونگا");
      put("Pacific/Saipan", "سایپان");
      put("Pacific/Tahiti", "تاهیتی");
      put("Pacific/Tarawa", "تاراوا");
      put("Pacific/Tongatapu", "تونگاتاپو");
      put("Pacific/Truk", "چوک");
      put("Pacific/Wake", "ویک");
      put("Pacific/Wallis", "والیس");
      put("Arctic/Longyearbyen", "لانگ‌یربین");
      put("Antarctica/Casey", "کیسی");
      put("Antarctica/Davis", "دیویس");
      put("Antarctica/DumontDUrville", "دومون دورویل");
      put("Antarctica/Macquarie", "مکواری");
      put("Antarctica/Mawson", "ماوسون");
      put("Antarctica/McMurdo", "مک‌موردو");
      put("Antarctica/Palmer", "پالمر");
      put("Antarctica/Rothera", "روترا");
      put("Antarctica/Syowa", "شووا");
      put("Antarctica/Troll", "ترول");
      put("Antarctica/Vostok", "ووستوک");
      put("Etc/GMT", "GMT");
      put("Etc/GMT1", "GMT+1");
      put("Etc/GMT10", "GMT+10");
      put("Etc/GMT11", "GMT+11");
      put("Etc/GMT12", "GMT+12");
      put("Etc/GMT2", "GMT+2");
      put("Etc/GMT3", "GMT+3");
      put("Etc/GMT4", "GMT+4");
      put("Etc/GMT5", "GMT+5");
      put("Etc/GMT6", "GMT+6");
      put("Etc/GMT7", "GMT+7");
      put("Etc/GMT8", "GMT+8");
      put("Etc/GMT9", "GMT+9");
      put("Etc/GMT-1", "GMT-1");
      put("Etc/GMT-10", "GMT-10");
      put("Etc/GMT-11", "GMT-11");
      put("Etc/GMT-12", "GMT-12");
      put("Etc/GMT-13", "GMT-13");
      put("Etc/GMT-14", "GMT-14");
      put("Etc/GMT-2", "GMT-2");
      put("Etc/GMT-3", "GMT-3");
      put("Etc/GMT-4", "GMT-4");
      put("Etc/GMT-5", "GMT-5");
      put("Etc/GMT-6", "GMT-6");
      put("Etc/GMT-7", "GMT-7");
      put("Etc/GMT-8", "GMT-8");
      put("Etc/GMT-9", "GMT-9");
      put("Etc/UTC", "UTC");
      put("Etc/Unknown", "شهر نامشخص");
    } };

    this.timezoneNames = new HashMap() { {

      put("Europe/Dublin", new TimeZoneNames("Europe/Dublin",   new TimeZoneNames.Name(null, null, "وقت عادی ایرلند"),
        null));

      put("Europe/London", new TimeZoneNames("Europe/London",   new TimeZoneNames.Name(null, null, "وقت تابستانی بریتانیا"),
        null));

      put("Etc/UTC", new TimeZoneNames("Etc/UTC",   new TimeZoneNames.Name(null, "زمان هماهنگ جهانی", null),
        new TimeZoneNames.Name(null, "UTC", null)));
    } };

    this.metazoneNames = new HashMap() { {

      put("Afghanistan", new TimeZoneNames("Afghanistan", 
        new TimeZoneNames.Name(null, "وقت افغانستان", null),
        null));

      put("Africa_Central", new TimeZoneNames("Africa_Central", 
        new TimeZoneNames.Name(null, "وقت مرکز افریقا", null),
        null));

      put("Africa_Eastern", new TimeZoneNames("Africa_Eastern", 
        new TimeZoneNames.Name(null, "وقت شرق افریقا", null),
        null));

      put("Africa_Southern", new TimeZoneNames("Africa_Southern", 
        new TimeZoneNames.Name(null, "وقت عادی جنوب افریقا", null),
        null));

      put("Africa_Western", new TimeZoneNames("Africa_Western", 
        new TimeZoneNames.Name("وقت غرب افریقا", "وقت عادی غرب افریقا", "وقت تابستانی غرب افریقا"),
        null));

      put("Alaska", new TimeZoneNames("Alaska", 
        new TimeZoneNames.Name("وقت آلاسکا", "وقت عادی آلاسکا", "وقت تابستانی آلاسکا"),
        null));

      put("Almaty", new TimeZoneNames("Almaty", 
        new TimeZoneNames.Name("وقت آلماآتا", "وقت عادی آلماآتا", "وقت تابستانی آلماآتا"),
        null));

      put("Amazon", new TimeZoneNames("Amazon", 
        new TimeZoneNames.Name("وقت آمازون", "وقت عادی آمازون", "وقت تابستانی آمازون"),
        null));

      put("America_Central", new TimeZoneNames("America_Central", 
        new TimeZoneNames.Name("وقت مرکز امریکا", "وقت عادی مرکز امریکا", "وقت تابستانی مرکز امریکا"),
        null));

      put("America_Eastern", new TimeZoneNames("America_Eastern", 
        new TimeZoneNames.Name("وقت شرق امریکا", "وقت عادی شرق امریکا", "وقت تابستانی شرق امریکا"),
        null));

      put("America_Mountain", new TimeZoneNames("America_Mountain", 
        new TimeZoneNames.Name("وقت کوهستانی امریکا", "وقت عادی کوهستانی امریکا", "وقت تابستانی کوهستانی امریکا"),
        null));

      put("America_Pacific", new TimeZoneNames("America_Pacific", 
        new TimeZoneNames.Name("وقت غرب امریکا", "وقت عادی غرب امریکا", "وقت تابستانی غرب امریکا"),
        null));

      put("Anadyr", new TimeZoneNames("Anadyr", 
        new TimeZoneNames.Name("وقت آنادیر", "وقت عادی آنادیر", "وقت تابستانی آنادیر"),
        null));

      put("Apia", new TimeZoneNames("Apia", 
        new TimeZoneNames.Name("وقت آپیا", "وقت عادی آپیا", "وقت تابستانی آپیا"),
        null));

      put("Arabian", new TimeZoneNames("Arabian", 
        new TimeZoneNames.Name("وقت عربستان", "وقت عادی عربستان", "وقت تابستانی عربستان"),
        null));

      put("Argentina", new TimeZoneNames("Argentina", 
        new TimeZoneNames.Name("وقت آرژانتین", "وقت عادی آرژانتین", "وقت تابستانی آرژانتین"),
        null));

      put("Argentina_Western", new TimeZoneNames("Argentina_Western", 
        new TimeZoneNames.Name("وقت غرب آرژانتین", "وقت عادی غرب آرژانتین", "وقت تابستانی غرب آرژانتین"),
        null));

      put("Armenia", new TimeZoneNames("Armenia", 
        new TimeZoneNames.Name("وقت ارمنستان", "وقت عادی ارمنستان", "وقت تابستانی ارمنستان"),
        null));

      put("Atlantic", new TimeZoneNames("Atlantic", 
        new TimeZoneNames.Name("وقت آتلانتیک", "وقت عادی آتلانتیک", "وقت تابستانی آتلانتیک"),
        null));

      put("Australia_Central", new TimeZoneNames("Australia_Central", 
        new TimeZoneNames.Name("وقت مرکز استرالیا", "وقت عادی مرکز استرالیا", "وقت تابستانی مرکز استرالیا"),
        null));

      put("Australia_CentralWestern", new TimeZoneNames("Australia_CentralWestern", 
        new TimeZoneNames.Name("وقت مرکز-غرب استرالیا", "وقت عادی مرکز-غرب استرالیا", "وقت تابستانی مرکز-غرب استرالیا"),
        null));

      put("Australia_Eastern", new TimeZoneNames("Australia_Eastern", 
        new TimeZoneNames.Name("وقت شرق استرالیا", "وقت عادی شرق استرالیا", "وقت تابستانی شرق استرالیا"),
        null));

      put("Australia_Western", new TimeZoneNames("Australia_Western", 
        new TimeZoneNames.Name("وقت غرب استرالیا", "وقت عادی غرب استرالیا", "وقت تابستانی غرب استرالیا"),
        null));

      put("Azerbaijan", new TimeZoneNames("Azerbaijan", 
        new TimeZoneNames.Name("وقت جمهوری آذربایجان", "وقت عادی جمهوری آذربایجان", "وقت تابستانی جمهوری آذربایجان"),
        null));

      put("Azores", new TimeZoneNames("Azores", 
        new TimeZoneNames.Name("وقت آزور", "وقت عادی آزور", "وقت تابستانی آزور"),
        null));

      put("Bangladesh", new TimeZoneNames("Bangladesh", 
        new TimeZoneNames.Name("وقت بنگلادش", "وقت عادی بنگلادش", "وقت تابستانی بنگلادش"),
        null));

      put("Bhutan", new TimeZoneNames("Bhutan", 
        new TimeZoneNames.Name(null, "وقت بوتان", null),
        null));

      put("Bolivia", new TimeZoneNames("Bolivia", 
        new TimeZoneNames.Name(null, "وقت بولیوی", null),
        null));

      put("Brasilia", new TimeZoneNames("Brasilia", 
        new TimeZoneNames.Name("وقت برازیلیا", "وقت عادی برازیلیا", "وقت تابستانی برازیلیا"),
        null));

      put("Brunei", new TimeZoneNames("Brunei", 
        new TimeZoneNames.Name(null, "وقت برونئی دارالسلام", null),
        null));

      put("Cape_Verde", new TimeZoneNames("Cape_Verde", 
        new TimeZoneNames.Name("وقت کیپ‌ورد", "وقت عادی کیپ‌ورد", "وقت تابستانی کیپ‌ورد"),
        null));

      put("Chamorro", new TimeZoneNames("Chamorro", 
        new TimeZoneNames.Name(null, "وقت عادی چامورو", null),
        null));

      put("Chatham", new TimeZoneNames("Chatham", 
        new TimeZoneNames.Name("وقت چت‌هام", "وقت عادی چت‌هام", "وقت تابستانی چت‌هام"),
        null));

      put("Chile", new TimeZoneNames("Chile", 
        new TimeZoneNames.Name("وقت شیلی", "وقت عادی شیلی", "وقت تابستانی شیلی"),
        null));

      put("China", new TimeZoneNames("China", 
        new TimeZoneNames.Name("وقت چین", "وقت عادی چین", "وقت تابستانی چین"),
        null));

      put("Choibalsan", new TimeZoneNames("Choibalsan", 
        new TimeZoneNames.Name("وقت چویبالسان", "وقت عادی چویبالسان", "وقت تابستانی چویبالسان"),
        null));

      put("Christmas", new TimeZoneNames("Christmas", 
        new TimeZoneNames.Name(null, "وقت جزیرهٔ کریسمس", null),
        null));

      put("Cocos", new TimeZoneNames("Cocos", 
        new TimeZoneNames.Name(null, "وقت جزایر کوکوس", null),
        null));

      put("Colombia", new TimeZoneNames("Colombia", 
        new TimeZoneNames.Name("وقت کلمبیا", "وقت عادی کلمبیا", "وقت تابستانی کلمبیا"),
        null));

      put("Cook", new TimeZoneNames("Cook", 
        new TimeZoneNames.Name("وقت جزایر کوک", "وقت عادی جزایر کوک", "وقت تابستانی جزایر کوک"),
        null));

      put("Cuba", new TimeZoneNames("Cuba", 
        new TimeZoneNames.Name("وقت کوبا", "وقت عادی کوبا", "وقت تابستانی کوبا"),
        null));

      put("Davis", new TimeZoneNames("Davis", 
        new TimeZoneNames.Name(null, "وقت دیویس", null),
        null));

      put("DumontDUrville", new TimeZoneNames("DumontDUrville", 
        new TimeZoneNames.Name(null, "وقت دومون دورویل", null),
        null));

      put("East_Timor", new TimeZoneNames("East_Timor", 
        new TimeZoneNames.Name(null, "وقت تیمور شرقی", null),
        null));

      put("Easter", new TimeZoneNames("Easter", 
        new TimeZoneNames.Name("وقت جزیرهٔ ایستر", "وقت عادی جزیرهٔ ایستر", "وقت تابستانی جزیرهٔ ایستر"),
        null));

      put("Ecuador", new TimeZoneNames("Ecuador", 
        new TimeZoneNames.Name(null, "وقت اکوادور", null),
        null));

      put("Europe_Central", new TimeZoneNames("Europe_Central", 
        new TimeZoneNames.Name("وقت مرکز اروپا", "وقت عادی مرکز اروپا", "وقت تابستانی مرکز اروپا"),
        null));

      put("Europe_Eastern", new TimeZoneNames("Europe_Eastern", 
        new TimeZoneNames.Name("وقت شرق اروپا", "وقت عادی شرق اروپا", "وقت تابستانی شرق اروپا"),
        null));

      put("Europe_Further_Eastern", new TimeZoneNames("Europe_Further_Eastern", 
        new TimeZoneNames.Name(null, "وقت تابستانی مکان‌های دیگر شرق اروپا", null),
        null));

      put("Europe_Western", new TimeZoneNames("Europe_Western", 
        new TimeZoneNames.Name("وقت غرب اروپا", "وقت عادی غرب اروپا", "وقت تابستانی غرب اروپا"),
        null));

      put("Falkland", new TimeZoneNames("Falkland", 
        new TimeZoneNames.Name("وقت جزایر فالکلند", "وقت عادی جزایر فالکلند", "وقت تابستانی جزایر فالکلند"),
        null));

      put("Fiji", new TimeZoneNames("Fiji", 
        new TimeZoneNames.Name("وقت فیجی", "وقت عادی فیجی", "وقت تابستانی فیجی"),
        null));

      put("French_Guiana", new TimeZoneNames("French_Guiana", 
        new TimeZoneNames.Name(null, "وقت گویان فرانسه", null),
        null));

      put("French_Southern", new TimeZoneNames("French_Southern", 
        new TimeZoneNames.Name(null, "وقت سرزمین‌های جنوبی و جنوبگان فرانسه", null),
        null));

      put("Galapagos", new TimeZoneNames("Galapagos", 
        new TimeZoneNames.Name(null, "وقت گالاپاگوس", null),
        null));

      put("Gambier", new TimeZoneNames("Gambier", 
        new TimeZoneNames.Name(null, "وقت گامبیه", null),
        null));

      put("Georgia", new TimeZoneNames("Georgia", 
        new TimeZoneNames.Name("وقت گرجستان", "وقت عادی گرجستان", "وقت تابستانی گرجستان"),
        null));

      put("Gilbert_Islands", new TimeZoneNames("Gilbert_Islands", 
        new TimeZoneNames.Name(null, "وقت جزایر گیلبرت", null),
        null));

      put("GMT", new TimeZoneNames("GMT", 
        new TimeZoneNames.Name(null, "وقت گرینویچ", null),
        null));

      put("Greenland_Eastern", new TimeZoneNames("Greenland_Eastern", 
        new TimeZoneNames.Name("وقت شرق گرینلند", "وقت عادی شرق گرینلند", "وقت تابستانی شرق گرینلند"),
        null));

      put("Greenland_Western", new TimeZoneNames("Greenland_Western", 
        new TimeZoneNames.Name("وقت غرب گرینلند", "وقت عادی غرب گرینلند", "وقت تابستانی غرب گرینلند"),
        null));

      put("Guam", new TimeZoneNames("Guam", 
        new TimeZoneNames.Name(null, "وقت عادی گوام", null),
        null));

      put("Gulf", new TimeZoneNames("Gulf", 
        new TimeZoneNames.Name(null, "وقت عادی خلیج فارس", null),
        null));

      put("Guyana", new TimeZoneNames("Guyana", 
        new TimeZoneNames.Name(null, "وقت گویان", null),
        null));

      put("Hawaii_Aleutian", new TimeZoneNames("Hawaii_Aleutian", 
        new TimeZoneNames.Name("وقت هاوایی‐الوشن", "وقت عادی هاوایی‐الوشن", "وقت تابستانی هاوایی‐الوشن"),
        null));

      put("Hong_Kong", new TimeZoneNames("Hong_Kong", 
        new TimeZoneNames.Name("وقت هنگ‌کنگ", "وقت عادی هنگ‌کنگ", "وقت تابستانی هنگ‌کنگ"),
        null));

      put("Hovd", new TimeZoneNames("Hovd", 
        new TimeZoneNames.Name("وقت خوود", "وقت عادی خوود", "وقت تابستانی خوود"),
        null));

      put("India", new TimeZoneNames("India", 
        new TimeZoneNames.Name(null, "وقت هند", null),
        null));

      put("Indian_Ocean", new TimeZoneNames("Indian_Ocean", 
        new TimeZoneNames.Name(null, "وقت اقیانوس هند", null),
        null));

      put("Indochina", new TimeZoneNames("Indochina", 
        new TimeZoneNames.Name(null, "وقت هندوچین", null),
        null));

      put("Indonesia_Central", new TimeZoneNames("Indonesia_Central", 
        new TimeZoneNames.Name(null, "وقت مرکز اندونزی", null),
        null));

      put("Indonesia_Eastern", new TimeZoneNames("Indonesia_Eastern", 
        new TimeZoneNames.Name(null, "وقت شرق اندونزی", null),
        null));

      put("Indonesia_Western", new TimeZoneNames("Indonesia_Western", 
        new TimeZoneNames.Name(null, "وقت غرب اندونزی", null),
        null));

      put("Iran", new TimeZoneNames("Iran", 
        new TimeZoneNames.Name("وقت ایران", "وقت عادی ایران", "وقت تابستانی ایران"),
        null));

      put("Irkutsk", new TimeZoneNames("Irkutsk", 
        new TimeZoneNames.Name("وقت ایرکوتسک", "وقت عادی ایرکوتسک", "وقت تابستانی ایرکوتسک"),
        null));

      put("Israel", new TimeZoneNames("Israel", 
        new TimeZoneNames.Name("وقت اسرائیل", "وقت عادی اسرائیل", "وقت تابستانی اسرائیل"),
        null));

      put("Japan", new TimeZoneNames("Japan", 
        new TimeZoneNames.Name("وقت ژاپن", "وقت عادی ژاپن", "وقت تابستانی ژاپن"),
        null));

      put("Kamchatka", new TimeZoneNames("Kamchatka", 
        new TimeZoneNames.Name("وقت پتروپاولوسک‐کامچاتسکی", "وقت عادی پتروپاولوسک‐کامچاتسکی", "وقت تابستانی پتروپاولوسک‐کامچاتسکی"),
        null));

      put("Kazakhstan_Eastern", new TimeZoneNames("Kazakhstan_Eastern", 
        new TimeZoneNames.Name(null, "وقت شرق قزاقستان", null),
        null));

      put("Kazakhstan_Western", new TimeZoneNames("Kazakhstan_Western", 
        new TimeZoneNames.Name(null, "وقت غرب قزاقستان", null),
        null));

      put("Korea", new TimeZoneNames("Korea", 
        new TimeZoneNames.Name("وقت کره", "وقت عادی کره", "وقت تابستانی کره"),
        null));

      put("Kosrae", new TimeZoneNames("Kosrae", 
        new TimeZoneNames.Name(null, "وقت کوسرای", null),
        null));

      put("Krasnoyarsk", new TimeZoneNames("Krasnoyarsk", 
        new TimeZoneNames.Name("وقت کراسنویارسک", "وقت عادی کراسنویارسک", "وقت تابستانی کراسنویارسک"),
        null));

      put("Kyrgystan", new TimeZoneNames("Kyrgystan", 
        new TimeZoneNames.Name(null, "وقت قرقیزستان", null),
        null));

      put("Lanka", new TimeZoneNames("Lanka", 
        new TimeZoneNames.Name(null, "وقت لانکا", null),
        null));

      put("Line_Islands", new TimeZoneNames("Line_Islands", 
        new TimeZoneNames.Name(null, "وقت جزایر لاین", null),
        null));

      put("Lord_Howe", new TimeZoneNames("Lord_Howe", 
        new TimeZoneNames.Name("وقت لردهو", "وقت عادی لردهو", "وقت تابستانی لردهو"),
        null));

      put("Macau", new TimeZoneNames("Macau", 
        new TimeZoneNames.Name("وقت ماکائو", "وقت عادی ماکائو", "وقت تابستانی ماکائو"),
        null));

      put("Macquarie", new TimeZoneNames("Macquarie", 
        new TimeZoneNames.Name(null, "وقت جزیرهٔ مکواری", null),
        null));

      put("Magadan", new TimeZoneNames("Magadan", 
        new TimeZoneNames.Name("وقت ماگادان", "وقت عادی ماگادان", "وقت تابستانی ماگادان"),
        null));

      put("Malaysia", new TimeZoneNames("Malaysia", 
        new TimeZoneNames.Name(null, "وقت مالزی", null),
        null));

      put("Maldives", new TimeZoneNames("Maldives", 
        new TimeZoneNames.Name(null, "وقت مالدیو", null),
        null));

      put("Marquesas", new TimeZoneNames("Marquesas", 
        new TimeZoneNames.Name(null, "وقت مارکوئز", null),
        null));

      put("Marshall_Islands", new TimeZoneNames("Marshall_Islands", 
        new TimeZoneNames.Name(null, "وقت جزایر مارشال", null),
        null));

      put("Mauritius", new TimeZoneNames("Mauritius", 
        new TimeZoneNames.Name("وقت موریس", "وقت عادی موریس", "وقت تابستانی موریس"),
        null));

      put("Mawson", new TimeZoneNames("Mawson", 
        new TimeZoneNames.Name(null, "وقت ماوسون", null),
        null));

      put("Mexico_Northwest", new TimeZoneNames("Mexico_Northwest", 
        new TimeZoneNames.Name("وقت شمال غرب مکزیک", "وقت عادی شمال غرب مکزیک", "وقت تابستانی شمال غرب مکزیک"),
        null));

      put("Mexico_Pacific", new TimeZoneNames("Mexico_Pacific", 
        new TimeZoneNames.Name("وقت شرق مکزیک", "وقت عادی شرق مکزیک", "وقت تابستانی شرق مکزیک"),
        null));

      put("Mongolia", new TimeZoneNames("Mongolia", 
        new TimeZoneNames.Name("وقت اولان‌باتور", "وقت عادی اولان‌باتور", "وقت تابستانی اولان‌باتور"),
        null));

      put("Moscow", new TimeZoneNames("Moscow", 
        new TimeZoneNames.Name("وقت مسکو", "وقت عادی مسکو", "وقت تابستانی مسکو"),
        null));

      put("Myanmar", new TimeZoneNames("Myanmar", 
        new TimeZoneNames.Name(null, "وقت میانمار", null),
        null));

      put("Nauru", new TimeZoneNames("Nauru", 
        new TimeZoneNames.Name(null, "وقت نائورو", null),
        null));

      put("Nepal", new TimeZoneNames("Nepal", 
        new TimeZoneNames.Name(null, "وقت نپال", null),
        null));

      put("New_Caledonia", new TimeZoneNames("New_Caledonia", 
        new TimeZoneNames.Name("وقت کالدونیای جدید", "وقت عادی کالدونیای جدید", "وقت تابستانی کالدونیای جدید"),
        null));

      put("New_Zealand", new TimeZoneNames("New_Zealand", 
        new TimeZoneNames.Name("وقت زلاند نو", "وقت عادی زلاند نو", "وقت تابستانی زلاند نو"),
        null));

      put("Newfoundland", new TimeZoneNames("Newfoundland", 
        new TimeZoneNames.Name("وقت نیوفاندلند", "وقت عادی نیوفاندلند", "وقت تابستانی نیوفاندلند"),
        null));

      put("Niue", new TimeZoneNames("Niue", 
        new TimeZoneNames.Name(null, "وقت نیوئه", null),
        null));

      put("Norfolk", new TimeZoneNames("Norfolk", 
        new TimeZoneNames.Name(null, "وقت جزایر نورفولک", null),
        null));

      put("Noronha", new TimeZoneNames("Noronha", 
        new TimeZoneNames.Name("وقت فرناندو دی نورونیا", "وقت عادی فرناندو دی نورونیا", "وقت تابستانی فرناندو دی نورونیا"),
        null));

      put("North_Mariana", new TimeZoneNames("North_Mariana", 
        new TimeZoneNames.Name(null, "وقت جزایر ماریانای شمالی", null),
        null));

      put("Novosibirsk", new TimeZoneNames("Novosibirsk", 
        new TimeZoneNames.Name("وقت نووسیبیرسک", "وقت عادی نووسیبیرسک", "وقت تابستانی نووسیبیرسک"),
        null));

      put("Omsk", new TimeZoneNames("Omsk", 
        new TimeZoneNames.Name("وقت اومسک", "وقت عادی اومسک", "وقت تابستانی اومسک"),
        null));

      put("Pakistan", new TimeZoneNames("Pakistan", 
        new TimeZoneNames.Name("وقت پاکستان", "وقت عادی پاکستان", "وقت تابستانی پاکستان"),
        null));

      put("Palau", new TimeZoneNames("Palau", 
        new TimeZoneNames.Name(null, "وقت پالائو", null),
        null));

      put("Papua_New_Guinea", new TimeZoneNames("Papua_New_Guinea", 
        new TimeZoneNames.Name(null, "وقت پاپوا گینهٔ نو", null),
        null));

      put("Paraguay", new TimeZoneNames("Paraguay", 
        new TimeZoneNames.Name("وقت پاراگوئه", "وقت عادی پاراگوئه", "وقت تابستانی پاراگوئه"),
        null));

      put("Peru", new TimeZoneNames("Peru", 
        new TimeZoneNames.Name("وقت پرو", "وقت عادی پرو", "وقت تابستانی پرو"),
        null));

      put("Philippines", new TimeZoneNames("Philippines", 
        new TimeZoneNames.Name("وقت فیلیپین", "وقت عادی فیلیپین", "وقت تابستانی فیلیپین"),
        null));

      put("Phoenix_Islands", new TimeZoneNames("Phoenix_Islands", 
        new TimeZoneNames.Name(null, "وقت جزایر فونیکس", null),
        null));

      put("Pierre_Miquelon", new TimeZoneNames("Pierre_Miquelon", 
        new TimeZoneNames.Name("وقت سنت‌پیر و میکلون", "وقت عادی سنت‌پیر و میکلون", "وقت تابستانی سنت‌پیر و میکلون"),
        null));

      put("Pitcairn", new TimeZoneNames("Pitcairn", 
        new TimeZoneNames.Name(null, "وقت پیتکایرن", null),
        null));

      put("Ponape", new TimeZoneNames("Ponape", 
        new TimeZoneNames.Name(null, "وقت پوناپه", null),
        null));

      put("Pyongyang", new TimeZoneNames("Pyongyang", 
        new TimeZoneNames.Name(null, "وقت پیونگ‌یانگ", null),
        null));

      put("Qyzylorda", new TimeZoneNames("Qyzylorda", 
        new TimeZoneNames.Name("وقت قیزیل‌اوردا", "وقت عادی قیزیل‌اوردا", "وقت تابستانی قیزیل‌اوردا"),
        null));

      put("Reunion", new TimeZoneNames("Reunion", 
        new TimeZoneNames.Name(null, "وقت ریونیون", null),
        null));

      put("Rothera", new TimeZoneNames("Rothera", 
        new TimeZoneNames.Name(null, "وقت روترا", null),
        null));

      put("Sakhalin", new TimeZoneNames("Sakhalin", 
        new TimeZoneNames.Name("وقت ساخالین", "وقت عادی ساخالین", "وقت تابستانی ساخالین"),
        null));

      put("Samara", new TimeZoneNames("Samara", 
        new TimeZoneNames.Name("وقت سامارا", "وقت عادی سامارا", "وقت تابستانی سامارا"),
        null));

      put("Samoa", new TimeZoneNames("Samoa", 
        new TimeZoneNames.Name("وقت ساموا", "وقت عادی ساموا", "وقت تابستانی ساموا"),
        null));

      put("Seychelles", new TimeZoneNames("Seychelles", 
        new TimeZoneNames.Name(null, "وقت سیشل", null),
        null));

      put("Singapore", new TimeZoneNames("Singapore", 
        new TimeZoneNames.Name(null, "وقت سنگاپور", null),
        null));

      put("Solomon", new TimeZoneNames("Solomon", 
        new TimeZoneNames.Name(null, "وقت جزایر سلیمان", null),
        null));

      put("South_Georgia", new TimeZoneNames("South_Georgia", 
        new TimeZoneNames.Name(null, "وقت جورجیای جنوبی", null),
        null));

      put("Suriname", new TimeZoneNames("Suriname", 
        new TimeZoneNames.Name(null, "وقت سورینام", null),
        null));

      put("Syowa", new TimeZoneNames("Syowa", 
        new TimeZoneNames.Name(null, "وقت شووا", null),
        null));

      put("Tahiti", new TimeZoneNames("Tahiti", 
        new TimeZoneNames.Name(null, "وقت تاهیتی", null),
        null));

      put("Taipei", new TimeZoneNames("Taipei", 
        new TimeZoneNames.Name("وقت تایپه", "وقت عادی تایپه", "وقت تابستانی تایپه"),
        null));

      put("Tajikistan", new TimeZoneNames("Tajikistan", 
        new TimeZoneNames.Name(null, "وقت تاجیکستان", null),
        null));

      put("Tokelau", new TimeZoneNames("Tokelau", 
        new TimeZoneNames.Name(null, "وقت توکلائو", null),
        null));

      put("Tonga", new TimeZoneNames("Tonga", 
        new TimeZoneNames.Name("وقت تونگا", "وقت عادی تونگا", "وقت تابستانی تونگا"),
        null));

      put("Truk", new TimeZoneNames("Truk", 
        new TimeZoneNames.Name(null, "وقت چوئوک", null),
        null));

      put("Turkmenistan", new TimeZoneNames("Turkmenistan", 
        new TimeZoneNames.Name("وقت ترکمنستان", "وقت عادی ترکمنستان", "وقت تابستانی ترکمنستان"),
        null));

      put("Tuvalu", new TimeZoneNames("Tuvalu", 
        new TimeZoneNames.Name(null, "وقت تووالو", null),
        null));

      put("Uruguay", new TimeZoneNames("Uruguay", 
        new TimeZoneNames.Name("وقت اروگوئه", "وقت عادی اروگوئه", "وقت تابستانی اروگوئه"),
        null));

      put("Uzbekistan", new TimeZoneNames("Uzbekistan", 
        new TimeZoneNames.Name("وقت ازبکستان", "وقت عادی ازبکستان", "وقت تابستانی ازبکستان"),
        null));

      put("Vanuatu", new TimeZoneNames("Vanuatu", 
        new TimeZoneNames.Name("وقت واناتو", "وقت عادی واناتو", "وقت تابستانی واناتو"),
        null));

      put("Venezuela", new TimeZoneNames("Venezuela", 
        new TimeZoneNames.Name(null, "وقت ونزوئلا", null),
        null));

      put("Vladivostok", new TimeZoneNames("Vladivostok", 
        new TimeZoneNames.Name("وقت ولادی‌وستوک", "وقت عادی ولادی‌وستوک", "وقت تابستانی ولادی‌وستوک"),
        null));

      put("Volgograd", new TimeZoneNames("Volgograd", 
        new TimeZoneNames.Name("وقت ولگاگراد", "وقت عادی ولگاگراد", "وقت تابستانی ولگاگراد"),
        null));

      put("Vostok", new TimeZoneNames("Vostok", 
        new TimeZoneNames.Name(null, "وقت وستوک", null),
        null));

      put("Wake", new TimeZoneNames("Wake", 
        new TimeZoneNames.Name(null, "وقت جزیرهٔ ویک", null),
        null));

      put("Wallis", new TimeZoneNames("Wallis", 
        new TimeZoneNames.Name(null, "وقت والیس و فوتونا", null),
        null));

      put("Yakutsk", new TimeZoneNames("Yakutsk", 
        new TimeZoneNames.Name("وقت یاکوتسک", "وقت عادی یاکوتسک", "وقت تابستانی یاکوتسک"),
        null));

      put("Yekaterinburg", new TimeZoneNames("Yekaterinburg", 
        new TimeZoneNames.Name("وقت یکاترینبورگ", "وقت عادی یکاترینبورگ", "وقت تابستانی یکاترینبورگ"),
        null));
    } };
  }

  @Override
  public void formatDate(CalendarFormat type, ZonedDateTime d, StringBuilder b) {
    if (type == null) {
      return;
    }
    switch (type) {
      case SHORT: {
        // "y/M/d"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case MEDIUM: {
        // "d MMM y"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case LONG: {
        // "d MMMM y"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case FULL: {
        // "EEEE d MMMM y"
        formatField(d, 'E', 4, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
    }
  }

  @Override
  public void formatTime(CalendarFormat type, ZonedDateTime d, StringBuilder b) {
    if (type == null) {
      return;
    }
    switch (type) {
      case SHORT: {
        // "H:mm"
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case MEDIUM: {
        // "H:mm:ss"
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case LONG: {
        // "H:mm:ss (z)"
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" (");
        formatField(d, 'z', 1, b);
        b.append(")");
        break;
      }
      case FULL: {
        // "H:mm:ss (zzzz)"
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" (");
        formatField(d, 'z', 4, b);
        b.append(")");
        break;
      }
    }
  }

  @Override
  public void formatWrapped(CalendarFormat wrapperType, CalendarFormat dateType,
      CalendarFormat timeType, String dateSkel, String timeSkel, ZonedDateTime d, StringBuilder b) {
    switch (wrapperType) {
      case SHORT:
      case MEDIUM:
       {
        // "{1}،‏ {0}"
        if (dateType != null) {
          formatDate(dateType, d, b);
        } else {
          formatSkeleton(dateSkel, d, b);
        }
        b.append("،‏ ");
        if (timeType != null) {
          formatTime(timeType, d, b);
        } else {
          formatSkeleton(timeSkel, d, b);
        }
        break;
      }
      case LONG:
      case FULL:
       {
        // "{1}، ساعت {0}"
        if (dateType != null) {
          formatDate(dateType, d, b);
        } else {
          formatSkeleton(dateSkel, d, b);
        }
        b.append("، ساعت ");
        if (timeType != null) {
          formatTime(timeType, d, b);
        } else {
          formatSkeleton(timeSkel, d, b);
        }
        break;
      }
    }
  }

  @Override
  public boolean formatSkeleton(String skeleton, ZonedDateTime d, StringBuilder b) {
    if (skeleton == null) {
      return false;
    }
    switch (skeleton) {
      case "d": {
        // Pattern: "d"
        formatField(d, 'd', 1, b);
        break;
      }
      case "E": {
        // Pattern: "ccc"
        formatField(d, 'c', 3, b);
        break;
      }
      case "Ed": {
        // Pattern: "E d"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        break;
      }
      case "Ehm": {
        // Pattern: "E h:mm a"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "EHm": {
        // Pattern: "E H:mm"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "Ehms": {
        // Pattern: "E h:mm:ss a"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "EHms": {
        // Pattern: "E H:mm:ss"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "Gy": {
        // Pattern: "y G"
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "GyMMM": {
        // Pattern: "MMM y G"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "GyMMMd": {
        // Pattern: "d MMM y G"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "GyMMMEd": {
        // Pattern: "E d MMM y G"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "h": {
        // Pattern: "h a"
        formatField(d, 'h', 1, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "H": {
        // Pattern: "H"
        formatField(d, 'H', 1, b);
        break;
      }
      case "HHmmZ": {
        // Pattern: "HH:mm (Z)"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" (");
        formatField(d, 'Z', 1, b);
        b.append(")");
        break;
      }
      case "hm": {
        // Pattern: "h:mm a"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "Hm": {
        // Pattern: "H:mm"
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "hms": {
        // Pattern: "h:mm:ss a"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "Hms": {
        // Pattern: "H:mm:ss"
        formatField(d, 'H', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "hmsv": {
        // Pattern: "h:mm:ss a v"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "Hmsv": {
        // Pattern: "HH:mm:ss v"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "hmv": {
        // Pattern: "h:mm a v"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "Hmv": {
        // Pattern: "HH:mm v"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "M": {
        // Pattern: "L"
        formatField(d, 'L', 1, b);
        break;
      }
      case "Md": {
        // Pattern: "M/d"
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MEd": {
        // Pattern: "E M/d"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MMM": {
        // Pattern: "LLL"
        formatField(d, 'L', 3, b);
        break;
      }
      case "MMMd": {
        // Pattern: "d LLL"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'L', 3, b);
        break;
      }
      case "MMMEd": {
        // Pattern: "E d LLL"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'L', 3, b);
        break;
      }
      case "MMMMd": {
        // Pattern: "d LLLL"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'L', 4, b);
        break;
      }
      case "MMMMEd": {
        // Pattern: "E d LLLL"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'L', 4, b);
        break;
      }
      case "MMMMW-count-one": {
        // Pattern: "هفته W از MMM"
        b.append("هفته ");
        formatField(d, 'W', 1, b);
        b.append(" از ");
        formatField(d, 'M', 3, b);
        break;
      }
      case "MMMMW-count-other": {
        // Pattern: "هفته W از MMM"
        b.append("هفته ");
        formatField(d, 'W', 1, b);
        b.append(" از ");
        formatField(d, 'M', 3, b);
        break;
      }
      case "mmss": {
        // Pattern: "mm:ss"
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "ms": {
        // Pattern: "mm:ss"
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "y": {
        // Pattern: "y"
        formatField(d, 'y', 1, b);
        break;
      }
      case "yM": {
        // Pattern: "y/M"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        break;
      }
      case "yMd": {
        // Pattern: "y/M/d"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "yMEd": {
        // Pattern: "E y/M/d"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "yMMM": {
        // Pattern: "MMM y"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMd": {
        // Pattern: "d MMM y"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMEd": {
        // Pattern: "E d MMM y"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMM": {
        // Pattern: "MMMM y"
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMMEEEEd": {
        // Pattern: "EEEE d MMMM y"
        formatField(d, 'E', 4, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yQQQ": {
        // Pattern: "QQQQ y"
        formatField(d, 'Q', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yQQQQ": {
        // Pattern: "QQQQ y"
        formatField(d, 'Q', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yw-count-one": {
        // Pattern: "هفته w از y"
        b.append("هفته ");
        formatField(d, 'w', 1, b);
        b.append(" از ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yw-count-other": {
        // Pattern: "هفته w از y"
        b.append("هفته ");
        formatField(d, 'w', 1, b);
        b.append(" از ");
        formatField(d, 'y', 1, b);
        break;
      }
      default: {
        return false;
      }
    }
    return true;
  }

  @Override
  public void formatInterval(ZonedDateTime s, ZonedDateTime e, String k, DateTimeField f,
      StringBuilder b) {
    if (k != null && f != null) {
      switch (k) {
        case "d": {
          switch (f) {
            case DAY: {
              // "d تا "
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "d"
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hm": {
          switch (f) {
            case AM_PM: {
              // "h:mm a تا "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" تا ");
              // "h:mm a"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            case HOUR: {
              // "h:mm تا "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "h:mm a"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            case MINUTE: {
              // "h:mm تا "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "h:mm a"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Hm": {
          switch (f) {
            case HOUR: {
              // "H:mm تا "
              formatField(s, 'H', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "H:mm"
              formatField(e, 'H', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            case MINUTE: {
              // "H:mm تا "
              formatField(s, 'H', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "H:mm"
              formatField(e, 'H', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "h": {
          switch (f) {
            case AM_PM: {
              // "h a تا "
              formatField(s, 'h', 1, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" تا ");
              // "h a"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            case HOUR: {
              // "h تا "
              formatField(s, 'h', 1, b);
              b.append(" تا ");
              // "h a"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "H": {
          switch (f) {
            case HOUR: {
              // "H تا "
              formatField(s, 'H', 1, b);
              b.append(" تا ");
              // "H"
              formatField(e, 'H', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMEd": {
          switch (f) {
            case DAY: {
              // "E d LLL تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "E d MMM y"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case YEAR: {
              // "E d MMM y تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append(" تا ");
              // "E d MMM y"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "E d LLL تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "E d MMM y"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMEd": {
          switch (f) {
            case DAY: {
              // "E y/M/d تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "E y/M/d"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case YEAR: {
              // "E y/M/d تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "E y/M/d"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "E y/M/d تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "E y/M/d"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMM": {
          switch (f) {
            case MONTH: {
              // "LLL تا "
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "LLL"
              formatField(e, 'L', 3, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMM": {
          switch (f) {
            case YEAR: {
              // "MMM y تا "
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append(" تا ");
              // "MMM y"
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "LLL تا MMM y"
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              // ""
              return;
            }
            default: break;
          }
          break;
        }
        case "M": {
          switch (f) {
            case MONTH: {
              // "M تا "
              formatField(s, 'M', 1, b);
              b.append(" تا ");
              // "M"
              formatField(e, 'M', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MEd": {
          switch (f) {
            case DAY: {
              // "E M/d تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "E M/d"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "E M/d تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "E M/d"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMEd": {
          switch (f) {
            case DAY: {
              // "E d LLL تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "E d LLL"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'L', 3, b);
              return;
            }
            case MONTH: {
              // "E d LLL تا "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "E d LLL"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'L', 3, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hv": {
          switch (f) {
            case AM_PM: {
              // "h a تا "
              formatField(s, 'h', 1, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" تا ");
              // "h a v"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case HOUR: {
              // "h تا "
              formatField(s, 'h', 1, b);
              b.append(" تا ");
              // "h a v"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Hv": {
          switch (f) {
            case HOUR: {
              // "H تا "
              formatField(s, 'H', 1, b);
              b.append(" تا ");
              // "H v"
              formatField(e, 'H', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hmv": {
          switch (f) {
            case AM_PM: {
              // "h:mm a تا "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" تا ");
              // "h:mm a v"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case HOUR: {
              // "h:mm تا "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "h:mm a v"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case MINUTE: {
              // "h:mm تا "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "h:mm a v"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Hmv": {
          switch (f) {
            case HOUR: {
              // "H:mm تا "
              formatField(s, 'H', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "H:mm v"
              formatField(e, 'H', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case MINUTE: {
              // "H:mm تا "
              formatField(s, 'H', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" تا ");
              // "H:mm v"
              formatField(e, 'H', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMd": {
          switch (f) {
            case DAY: {
              // "y/M/d تا "
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "y/M/d"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case YEAR: {
              // "y/M/d تا "
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "y/M/d"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "y/M/d تا "
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "y/M/d"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMd": {
          switch (f) {
            case DAY: {
              // "d تا "
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "d LLL"
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'L', 3, b);
              return;
            }
            case MONTH: {
              // "d LLL تا "
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "d LLL"
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'L', 3, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yM": {
          switch (f) {
            case YEAR: {
              // "y/M تا "
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" تا ");
              // "y/M"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            case MONTH: {
              // "y/M تا "
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" تا ");
              // "y/M"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMM": {
          switch (f) {
            case YEAR: {
              // "MMMM y تا "
              formatField(s, 'M', 4, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append(" تا ");
              // "MMMM y"
              formatField(e, 'M', 4, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "LLLL تا MMMM y"
              formatField(s, 'L', 4, b);
              b.append(" تا ");
              formatField(s, 'M', 4, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              // ""
              return;
            }
            default: break;
          }
          break;
        }
        case "Md": {
          switch (f) {
            case DAY: {
              // "M/d تا "
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "M/d"
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "M/d تا "
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "M/d"
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "y": {
          switch (f) {
            case YEAR: {
              // "y تا "
              formatField(s, 'y', 1, b);
              b.append(" تا ");
              // "y"
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMd": {
          switch (f) {
            case DAY: {
              // "d تا "
              formatField(s, 'd', 1, b);
              b.append(" تا ");
              // "d MMM y"
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case YEAR: {
              // "d MMM y تا "
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append(" تا ");
              // "d MMM y"
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "d LLL تا "
              formatField(s, 'd', 1, b);
              b.append(" ");
              formatField(s, 'L', 3, b);
              b.append(" تا ");
              // "d MMM y"
              formatField(e, 'd', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        default: break;
      }
      // "{0} تا {1}"
      formatSkeleton(k, s, b);
      b.append(" تا ");
      formatSkeleton(k, e, b);
    }
  }

  protected void wrapTimeZoneGMT(StringBuilder b, boolean neg, int hours, int mins,
      boolean _short) {
    if (hours == 0 && mins == 0) {
      b.append("گرینویچ");
      return;
    }
    boolean emitMins = !_short || mins > 0;
    if (neg) {
      b.append("−");
      zeroPad2(b, hours, _short ? 1 : 2);
      if (emitMins) {
        b.append(":");
      }
      if (emitMins) {
        zeroPad2(b, mins, 2);
      }
    }
    else {
      b.append("+");
      zeroPad2(b, hours, _short ? 1 : 2);
      if (emitMins) {
        b.append(":");
      }
      if (emitMins) {
        zeroPad2(b, mins, 2);
      }
    }
    b.append(" گرینویچ");
  }

  protected void wrapTimeZoneRegion(StringBuilder b, String region) {
    b.append("وقت ");
    b.append(region);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy