# 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 = Kurisito Atakaijire, Kurisito Yaijire
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Okwokubanza, Okwakabiri, Okwakashatu, Okwakana, Okwakataana, Okwamukaaga, Okwamushanju, Okwamunaana, Okwamwenda, Okwaikumi, Okwaikumi na kumwe, Okwaikumi na ibiri
shortMonths = KBZ, KBR, KST, KKN, KTN, KMK, KMS, KMN, KMW, KKM, KNK, KNB
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Okwokubanza, Okwakabiri, Okwakashatu, Okwakana, Okwakataana, Okwamukaaga, Okwamushanju, Okwamunaana, Okwamwenda, Okwaikumi, Okwaikumi na kumwe, Okwaikumi na ibiri
standaloneShortMonths = KBZ, KBR, KST, KKN, KTN, KMK, KMS, KMN, KMW, KKM, KNK, KNB
weekdays = Sande, Orwokubanza, Orwakabiri, Orwakashatu, Orwakana, Orwakataano, Orwamukaaga
shortWeekdays = SAN, ORK, OKB, OKS, OKN, OKT, OMK
narrowWeekdays = S, K, R, S, N, T, M
standaloneWeekdays = Sande, Orwokubanza, Orwakabiri, Orwakashatu, Orwakana, Orwakataano, Orwamukaaga
standaloneShortWeekdays = SAN, ORK, OKB, OKS, OKN, OKT, OMK
standaloneNarrowWeekdays = S, K, R, S, N, T, M
shortQuarters = K1, K2, K3, K4
quarters = KWOTA 1, KWOTA 2, KWOTA 3, KWOTA 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
