# 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 = AC, AD
eraNames = Antes de Cristo, Anno Domini
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Janeiro, Fevreiro, Marco, Abril, Maio, Junho, Julho, Augusto, Setembro, Otubro, Novembro, Decembro
shortMonths = Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Set, Otu, Nov, Dec
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Janeiro, Fevreiro, Marco, Abril, Maio, Junho, Julho, Augusto, Setembro, Otubro, Novembro, Decembro
standaloneShortMonths = Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Set, Otu, Nov, Dec
weekdays = Dimingu, Chiposi, Chipiri, Chitatu, Chinai, Chishanu, Sabudu
shortWeekdays = Dim, Pos, Pir, Tat, Nai, Sha, Sab
narrowWeekdays = D, P, C, T, N, S, S
standaloneWeekdays = Dimingu, Chiposi, Chipiri, Chitatu, Chinai, Chishanu, Sabudu
standaloneShortWeekdays = Dim, Pos, Pir, Tat, Nai, Sha, Sab
standaloneNarrowWeekdays = D, P, C, T, N, S, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = Q1, Q2, Q3, Q4
ampms = AM, PM
dateFormats = EEEE\\, d 'de' MMMM 'de' y, d 'de' MMMM 'de' y, d 'de' MMM 'de' 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
