# 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.

# CLDR version 1.7.1 is used in this generation.

eras = HY, YŊ
eraNames = Hafi Yesu Va Do ŋgɔ na Yesu, Yesu Ŋɔli
narrowMonths = D, D, T, A, D, M, S, D, A, K, A, D
months = Dzove, Dzodze, Tedoxe, Afɔfiɛ, Dama, Masa, Siamlɔm, Deasiamime, Anyɔnyɔ, Kele, Adeɛmekpɔxe, Dzome
shortMonths = Dzv, Dzd, Ted, Afɔ, Dam, Mas, Sia, Dea, Any, Kel, Ade, Dzm
standaloneNarrowMonths = D, D, T, A, D, M, S, D, A, K, A, D
standaloneMonths = Dzove, Dzodze, Tedoxe, Afɔfiɛ, Dama, Masa, Siamlɔm, Deasiamime, Anyɔnyɔ, Kele, Adeɛmekpɔxe, Dzome
standaloneShortMonths = Dzv, Dzd, Ted, Afɔ, Dam, Mas, Sia, Dea, Any, Kel, Ade, Dzm
weekdays = Kɔsiɖa, Dzoɖa, Braɖa, Kuɖa, Yawoɖa, Fiɖa, Memleɖa
shortWeekdays = Kɔs Kwe, Dzo, Bra, Kuɖ, Yaw, Fiɖ, Mem
narrowWeekdays = K, D, B, K, Y, F, M
standaloneWeekdays = Kɔsiɖa, Dzoɖa, Braɖa, Kuɖa, Yawoɖa, Fiɖa, Memleɖa
standaloneShortWeekdays = Kɔs Kwe, Dzo, Bra, Kuɖ, Yaw, Fiɖ, Mem
standaloneNarrowWeekdays = K, D, B, K, Y, F, M
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = AN, EW
dateFormats = EEEE\\, y MMMM dd, y MMMM d, y MMM d, yy/MM/dd
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
