# 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 = BC, AD
eraNames = BC, AD
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Januwari, Februwari, Mashi, Apreli, Meyi, Juni, Julayi, Agasti, Septhemba, Okthoba, Novemba, Disemba
shortMonths = Jan, Feb, Mas, Apr, Mey, Jun, Jul, Aga, Sep, Okt, Nov, Dis
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = uJanuwari, uFebruwari, uMashi, u-Apreli, uMeyi, uJuni, uJulayi, uAgasti, uSepthemba, u-Okthoba, uNovemba, uDisemba
standaloneShortMonths = Jan, Feb, Mas, Apr, Mey, Jun, Jul, Aga, Sep, Okt, Nov, Dis
weekdays = Sonto, Msombuluko, Lwesibili, Lwesithathu, uLwesine, Lwesihlanu, Mgqibelo
shortWeekdays = Son, Mso, Bil, Tha, Sin, Hla, Mgq
narrowWeekdays = S, M, B, T, S, H, M
standaloneWeekdays = Sonto, Msombuluko, Lwesibili, Lwesithathu, uLwesine, Lwesihlanu, Mgqibelo
standaloneShortWeekdays = Son, Mso, Bil, Tha, Sin, Hla, Mgq
standaloneNarrowWeekdays = S, M, B, T, S, H, M
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = AM, PM
dateFormats = EEEE dd MMMM y, d MMMM y, d MMM y, yyyy-MM-dd
timeFormats = h:mm:ss a zzzz, h:mm:ss a z, h:mm:ss a, h:mm a
firstDayOfTheWeek = 2
weekendRange = 7, 1
