# 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 = Kulisito nga tannaza, Bukya Kulisito Azaal
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Janwaliyo, Febwaliyo, Marisi, Apuli, Maayi, Juuni, Julaayi, Agusito, Sebuttemba, Okitobba, Novemba, Desemba
shortMonths = Jan, Feb, Mar, Apu, Maa, Juu, Jul, Agu, Seb, Oki, Nov, Des
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Janwaliyo, Febwaliyo, Marisi, Apuli, Maayi, Juuni, Julaayi, Agusito, Sebuttemba, Okitobba, Novemba, Desemba
standaloneShortMonths = Jan, Feb, Mar, Apu, Maa, Juu, Jul, Agu, Seb, Oki, Nov, Des
weekdays = Sabbiiti, Balaza, Lwakubiri, Lwakusatu, Lwakuna, Lwakutaano, Lwamukaaga
shortWeekdays = Sab, Bal, Lw2, Lw3, Lw4, Lw5, Lw6
narrowWeekdays = S, B, L, L, L, L, L
standaloneWeekdays = Sabbiiti, Balaza, Lwakubiri, Lwakusatu, Lwakuna, Lwakutaano, Lwamukaaga
standaloneShortWeekdays = Sab, Bal, Lw2, Lw3, Lw4, Lw5, Lw6
standaloneNarrowWeekdays = S, B, L, L, L, L, L
shortQuarters = Kya1, Kya2, Kya3, Kya4
quarters = Kyakuna 1, Kyakuna 2, Kyakuna 3, Kyakuna 4
ampms = AM, PM
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
