# 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 = YA, YK
eraNames = Yeso ataiborwa, Yeso kaiboirwe
narrowMonths = C, F, M, A, M, J, C, A, S, O, N, D
months = Chanuari, Feburari, Machi, Apiriri, Mei, Juni, Chulai, Agosti, Septemba, Okitoba, Nobemba, Disemba
shortMonths = Can, Feb, Mac, Apr, Mei, Jun, Cul, Agt, Sep, Okt, Nob, Dis
standaloneNarrowMonths = C, F, M, A, M, J, C, A, S, O, N, D
standaloneMonths = Chanuari, Feburari, Machi, Apiriri, Mei, Juni, Chulai, Agosti, Septemba, Okitoba, Nobemba, Disemba
standaloneShortMonths = Can, Feb, Mac, Apr, Mei, Jun, Cul, Agt, Sep, Okt, Nob, Dis
weekdays = Chumapiri, Chumatato, Chumaine, Chumatano, Aramisi, Ichuma, Esabato
shortWeekdays = Cpr, Ctt, Cmn, Cmt, Ars, Icm, Est
narrowWeekdays = C, C, C, C, A, I, E
standaloneWeekdays = Chumapiri, Chumatato, Chumaine, Chumatano, Aramisi, Ichuma, Esabato
standaloneShortWeekdays = Cpr, Ctt, Cmn, Cmt, Ars, Icm, Est
standaloneNarrowWeekdays = C, C, C, C, A, I, E
shortQuarters = E1, E2, E3, E4
quarters = Erobo entang'ani, Erobo yakabere, Erobo yagatato, Erobo yakane
ampms = Ma/Mo, Mambia/Mog
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
