# 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 = BCE, CE
eraNames = BCE, CE
narrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
months = luukao kemã, ɓandaɓu, vɔɔ, fulu, goo, 6, 7, kɔnde, saah, galo, kenpkato ɓololɔ, luukao lɔma
shortMonths = luukao kemã, ɓandaɓu, vɔɔ, fulu, goo, 6, 7, kɔnde, saah, galo, kenpkato ɓololɔ, luukao lɔma
standaloneNarrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
standaloneMonths = luukao kemã, ɓandaɓu, vɔɔ, fulu, goo, 6, 7, kɔnde, saah, galo, kenpkato ɓololɔ, luukao lɔma
standaloneShortMonths = luukao kemã, ɓandaɓu, vɔɔ, fulu, goo, 6, 7, kɔnde, saah, galo, kenpkato ɓololɔ, luukao lɔma
weekdays = lahadi, tɛɛnɛɛ, talata, alaba, aimisa, aijima, siɓiti
shortWeekdays = lahadi, tɛɛnɛɛ, talata, alaba, aimisa, aijima, siɓiti
narrowWeekdays = S, M, T, W, T, F, S
standaloneWeekdays = lahadi, tɛɛnɛɛ, talata, alaba, aimisa, aijima, siɓiti
standaloneShortWeekdays = lahadi, tɛɛnɛɛ, talata, alaba, aimisa, aijima, siɓiti
standaloneNarrowWeekdays = S, M, T, W, T, F, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
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
