# 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 = J.-C. ɲɛ, ni J.-C.
eraNames = jezu krisiti ɲɛ, jezu krisiti minkɛ
narrowMonths = Z, F, M, A, M, Z, Z, U, S, Ɔ, N, D
months = zanwuye, feburuye, marisi, awirili, mɛ, zuwɛn, zuluye, uti, sɛtanburu, ɔkutɔburu, nowanburu, desanburu
shortMonths = zan, feb, mar, awi, mɛ, zuw, zul, uti, sɛt, ɔku, now, des
standaloneNarrowMonths = Z, F, M, A, M, Z, Z, U, S, Ɔ, N, D
standaloneMonths = zanwuye, feburuye, marisi, awirili, mɛ, zuwɛn, zuluye, uti, sɛtanburu, ɔkutɔburu, nowanburu, desanburu
standaloneShortMonths = zan, feb, mar, awi, mɛ, zuw, zul, uti, sɛt, ɔku, now, des
weekdays = kari, ntɛnɛ, tarata, araba, alamisa, juma, sibiri
shortWeekdays = kar, ntɛ, tar, ara, ala, jum, sib
narrowWeekdays = K, N, T, A, A, J, S
standaloneWeekdays = kari, ntɛnɛ, tarata, araba, alamisa, juma, sibiri
standaloneShortWeekdays = kar, ntɛ, tar, ara, ala, jum, sib
standaloneNarrowWeekdays = K, N, T, A, A, J, S
shortQuarters = KS1, KS2, KS3, KS4
quarters = kalo saba fɔlɔ, kalo saba filanan, kalo saba sabanan, kalo saba naaninan
ampms = AM, PM
dateFormats = EEEE d MMMM y, d MMMM y, d MMM\\, y, d/M/y
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 2
weekendRange = 7, 1
