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

eras = a.C., d.C.
eraNames = Antes de Cristo, Ano do Senhor
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = janeiro, fevereiro, março, abril, maio, junho, julho, agosto, setembro, outubro, novembro, dezembro
shortMonths = jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = janeiro, fevereiro, março, abril, maio, junho, julho, agosto, setembro, outubro, novembro, dezembro
standaloneShortMonths = jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez
weekdays = domingo, segunda-feira, terça-feira, quarta-feira, quinta-feira, sexta-feira, sábado
shortWeekdays = dom, seg, ter, qua, qui, sex, sáb
narrowWeekdays = D, S, T, Q, Q, S, S
standaloneWeekdays = domingo, segunda-feira, terça-feira, quarta-feira, quinta-feira, sexta-feira, sábado
standaloneShortWeekdays = dom, seg, ter, qua, qui, sex, sáb
standaloneNarrowWeekdays = D, S, T, Q, Q, S, S
shortQuarters = T1, T2, T3, T4
quarters = 1º trimestre, 2º trimestre, 3º trimestre, 4º trimestre
ampms = AM, PM
dateFormats = EEEE\\, d 'de' MMMM 'de' yyyy, d 'de' MMMM 'de' yyyy, dd/MM/yyyy, dd/MM/yy
timeFormats = HH'h'mm'min'ss's' v, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
