# 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 = MK, NK
eraNames = Mbere ya Kristũ, Nyuma ya Kristũ
narrowMonths = J, F, M, Ĩ, M, N, N, A, S, O, N, D
months = Januarĩ, Feburuarĩ, Machi, Ĩpurũ, Mĩĩ, Njuni, Njuraĩ, Agasti, Septemba, Oktũba, Novemba, Dicemba
shortMonths = JAN, FEB, MAC, ĨPU, MĨĨ, NJU, NJR, AGA, SPT, OKT, NOV, DEC
standaloneNarrowMonths = J, F, M, Ĩ, M, N, N, A, S, O, N, D
standaloneMonths = Januarĩ, Feburuarĩ, Machi, Ĩpurũ, Mĩĩ, Njuni, Njuraĩ, Agasti, Septemba, Oktũba, Novemba, Dicemba
standaloneShortMonths = JAN, FEB, MAC, ĨPU, MĨĨ, NJU, NJR, AGA, SPT, OKT, NOV, DEC
weekdays = Kiumia, Muramuko, Wairi, Wethatu, Wena, Wetano, Jumamosi
shortWeekdays = KIU, MRA, WAI, WET, WEN, WTN, JUM
narrowWeekdays = K, M, W, W, W, W, J
standaloneWeekdays = Kiumia, Muramuko, Wairi, Wethatu, Wena, Wetano, Jumamosi
standaloneShortWeekdays = KIU, MRA, WAI, WET, WEN, WTN, JUM
standaloneNarrowWeekdays = K, M, W, W, W, W, J
shortQuarters = Ĩmwe kĩrĩ inya, Ijĩrĩ kĩrĩ inya, Ithatũ kĩrĩ inya, Inya kĩrĩ inya
quarters = Ĩmwe kĩrĩ inya, Ijĩrĩ kĩrĩ inya, Ithatũ kĩrĩ inya, Inya kĩrĩ inya
ampms = RŨ, ŨG
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
