# Following code is generated from CLDR data by script. You can do
# emergency fix here, but you fix will be lost unless it is also
# fixed in CLDR. The data generation scripts exists outside GWT and
# will be run manually after each major CLDR updates. Each update
# will be manually checked before check in to make sure undesired
# changes in CLDR will not break existing applications as possible.
# File generated from CLDR ver. 25

eras = ق.م., م.
eraNames = ق.م., م.
narrowMonths = Y, F, M, A, M, I, I, A, S, O, N, D
months = جنوری, فبروری, مارچ, اپریل, می, جون, جولای, اگست, سپتمبر, اکتوبر, نومبر, دسمبر
shortMonths = جنو, فبر, مار, اپر, مـی, جون, جول, اگس, سپت, اکت, نوم, دسم
standaloneNarrowMonths = Y, F, M, A, M, I, I, A, S, O, N, D
standaloneMonths = Yanvar, Fevral, Mart, Aprel, May, Iyun, Iyul, Avgust, Sentyabr, Oktyabr, Noyabr, Dekabr
standaloneShortMonths = Yanv, Fev, Mar, Apr, May, Iyun, Iyul, Avg, Sen, Okt, Noya, Dek
weekdays = یکشنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنجشنبه, جمعه, شنبه
shortWeekdays = ی., د., س., چ., پ., ج., ش.
narrowWeekdays = Y, D, S, C, P, J, S
standaloneWeekdays = yakshanba, dushanba, seshanba, chorshanba, payshanba, juma, shanba
standaloneShortWeekdays = Yaksh, Dush, Sesh, Chor, Pay, Jum, Shan
standaloneNarrowWeekdays = Y, D, S, C, P, J, S
shortQuarters = 1-ch, 2-ch, 3-ch, 4-ch
quarters = 1-chorak, 2-chorak, 3-chorak, 4-chorak
ampms = AM, PM
dateFormats = y نچی ییل d نچی MMMM EEEE کونی, d نچی MMMM y, d MMM y, y/M/d
timeFormats = H:mm:ss (zzzz), H:mm:ss (z), H:mm:ss, H:mm
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 7
weekendRange = 5, 6
