# 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.

# CLDR version 1.7.1 is used in this generation.

eras = ق.م., م.
eraNames = ق.م., م.
narrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
months = جنوري, فبروري, مارچ, اپریل, می, جون, جولای, اګست, سپتمبر, اکتوبر, نومبر, دسمبر
shortMonths = 1, 2, 3, 4, مـی, جون, 7, 8, 9, 10, 11, 12
standaloneNarrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
standaloneMonths = جنوري, فبروري, مارچ, اپریل, می, جون, جولای, اګست, سپتمبر, اکتوبر, نومبر, دسمبر
standaloneShortMonths = 1, 2, 3, 4, مـی, جون, 7, 8, 9, 10, 11, 12
weekdays = یکشنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنجشنبه, جمعه, شنبه
shortWeekdays = 1, 2, 3, 4, 5, 6, 7
narrowWeekdays = 1, 2, 3, 4, 5, 6, 7
standaloneWeekdays = یکشنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنجشنبه, جمعه, شنبه
standaloneShortWeekdays = 1, 2, 3, 4, 5, 6, 7
standaloneNarrowWeekdays = 1, 2, 3, 4, 5, 6, 7
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = غ.م., غ.و.
dateFormats = EEEE د y د MMMM d, د y د MMMM d, d MMM y, yyyy/M/d
timeFormats = H:mm:ss (zzzz), H:mm:ss (z), H:mm:ss, H:mm
firstDayOfTheWeek = 7
weekendRange = 5, 6
