# 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 = 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, Lwesine, Lwesihlanu, Mgqibelo
shortWeekdays = Son, Mso, Bil, Tha, Sin, Hla, Mgq
narrowWeekdays = S, M, T, T, S, H, M
standaloneWeekdays = Sonto, Msombuluko, Lwesibili, Lwesithathu, Lwesine, Lwesihlanu, Mgqibelo
standaloneShortWeekdays = Son, Mso, Bil, Tha, Sin, Hla, Mgq
standaloneNarrowWeekdays = S, M, B, T, S, H, M
shortQuarters = Q1, Q2, Q3, Q4
quarters = ikota engu-1, ikota engu-2, ikota engu-3, ikota engu-4
ampms = Ekuseni, Ntambama
dateFormats = EEEE dd MMMM y, d MMMM y, d MMM y, y-MM-dd
timeFormats = h:mm:ss a zzzz, h:mm:ss a z, h:mm:ss a, h:mm a
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 1
weekendRange = 7, 1
