# 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 = KK, BK
eraNames = Kabla ya Kristu, Baada ya Kristu
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Januari, Februari, Machi, Aprilyi, Mei, Junyi, Julyai, Agusti, Septemba, Oktoba, Novemba, Desemba
shortMonths = Jan, Feb, Mac, Apr, Mei, Jun, Jul, Ago, Sep, Okt, Nov, Des
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Januari, Februari, Machi, Aprilyi, Mei, Junyi, Julyai, Agusti, Septemba, Oktoba, Novemba, Desemba
standaloneShortMonths = Jan, Feb, Mac, Apr, Mei, Jun, Jul, Ago, Sep, Okt, Nov, Des
weekdays = Jumapilyi, Jumatatuu, Jumanne, Jumatanu, Alhamisi, Ijumaa, Jumamosi
shortWeekdays = Jpi, Jtt, Jnn, Jtn, Alh, Iju, Jmo
narrowWeekdays = J, J, J, J, A, I, J
standaloneWeekdays = Jumapilyi, Jumatatuu, Jumanne, Jumatanu, Alhamisi, Ijumaa, Jumamosi
standaloneShortWeekdays = Jpi, Jtt, Jnn, Jtn, Alh, Iju, Jmo
standaloneNarrowWeekdays = J, J, J, J, A, I, J
shortQuarters = R1, R2, R3, R4
quarters = Robo 1, Robo 2, Robo 3, Robo 4
ampms = utuko, kyiukonyi
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
