# 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 = GM, M
eraNames = Gabanin Miladi, Miladi
narrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
months = Zwat Juwung, Zwat Swiyang, Zwat Tsat, Zwat Nyai, Zwat Tswon, Zwat Ataah, Zwat Anatat, Zwat Arinai, Zwat Akubunyung, Zwat Swag, Zwat Mangjuwang, Zwat Swag-Ma-Suyang
shortMonths = Juw, Swi, Tsa, Nya, Tsw, Ata, Ana, Ari, Aku, Swa, Man, Mas
standaloneNarrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
standaloneMonths = Zwat Juwung, Zwat Swiyang, Zwat Tsat, Zwat Nyai, Zwat Tswon, Zwat Ataah, Zwat Anatat, Zwat Arinai, Zwat Akubunyung, Zwat Swag, Zwat Mangjuwang, Zwat Swag-Ma-Suyang
standaloneShortMonths = Juw, Swi, Tsa, Nya, Tsw, Ata, Ana, Ari, Aku, Swa, Man, Mas
weekdays = Ladi, Tanii, Talata, Larba, Lamit, Juma, Asabat
shortWeekdays = Lad, Tan, Tal, Lar, Lam, Jum, Asa
narrowWeekdays = 1, 2, 3, 4, 5, 6, 7
standaloneWeekdays = Ladi, Tanii, Talata, Larba, Lamit, Juma, Asabat
standaloneShortWeekdays = Lad, Tan, Tal, Lar, Lam, Jum, Asa
standaloneNarrowWeekdays = 1, 2, 3, 4, 5, 6, 7
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = AM, PM
dateFormats = EEEE\\, y MMMM dd, y MMMM d, y MMM d, yy/MM/dd
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
