# 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 = Before Yesu, After Yesu
narrowMonths = J, F, M, E, M, J, J, O, S, O, N, D
months = Januari, Februari, Machi, Epreo, Mei, Juni, Julai, Ogasti, Septemba, Oktoba, Novemba, Disemba
shortMonths = Jan, Feb, Mac, Epr, Mei, Jun, Jul, Oga, Sep, Okt, Nov, Dis
standaloneNarrowMonths = J, F, M, E, M, J, J, O, S, O, N, D
standaloneMonths = Januari, Februari, Machi, Epreo, Mei, Juni, Julai, Ogasti, Septemba, Oktoba, Novemba, Disemba
standaloneShortMonths = Jan, Feb, Mac, Epr, Mei, Jun, Jul, Oga, Sep, Okt, Nov, Dis
weekdays = Pa Mulungu, Palichimo, Palichibuli, Palichitatu, Palichine, Palichisano, Pachibelushi
shortWeekdays = Pa Mulungu, Palichimo, Palichibuli, Palichitatu, Palichine, Palichisano, Pachibelushi
narrowWeekdays = S, M, T, W, T, F, S
standaloneWeekdays = Pa Mulungu, Palichimo, Palichibuli, Palichitatu, Palichine, Palichisano, Pachibelushi
standaloneShortWeekdays = Pa Mulungu, Palichimo, Palichibuli, Palichitatu, Palichine, Palichisano, Pachibelushi
standaloneNarrowWeekdays = S, M, T, W, T, F, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = uluchelo, akasuba
dateFormats = EEEE\\, d MMMM y, d MMMM y, d MMM y, dd/MM/y
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 = 2
weekendRange = 7, 1
