# 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 = a.C., d.C.
eraNames = antes de Cristo, despois de Cristo
narrowMonths = X, F, M, A, M, X, X, A, S, O, N, D
months = Xaneiro, Febreiro, Marzo, Abril, Maio, Xuño, Xullo, Agosto, Setembro, Outubro, Novembro, Decembro
shortMonths = Xan, Feb, Mar, Abr, Mai, Xuñ, Xul, Ago, Set, Out, Nov, Dec
standaloneNarrowMonths = X, F, M, A, M, X, X, A, S, O, N, D
standaloneMonths = Xaneiro, Febreiro, Marzo, Abril, Maio, Xuño, Xullo, Agosto, Setembro, Outubro, Novembro, Decembro
standaloneShortMonths = Xan, Feb, Mar, Abr, Mai, Xuñ, Xul, Ago, Set, Out, Nov, Dec
weekdays = Domingo, Luns, Martes, Mércores, Xoves, Venres, Sábado
shortWeekdays = Dom, Lun, Mar, Mér, Xov, Ven, Sáb
narrowWeekdays = D, L, M, M, X, V, S
standaloneWeekdays = Domingo, Luns, Martes, Mércores, Xoves, Venres, Sábado
standaloneShortWeekdays = Dom, Lun, Mar, Mér, Xov, Ven, Sáb
standaloneNarrowWeekdays = D, L, M, M, X, V, S
shortQuarters = T1, T2, T3, T4
quarters = 1o trimestre, 2o trimestre, 3o trimestre, 4o trimestre
ampms = AM, PM
dateFormats = EEEE dd MMMM y, dd MMMM y, d MMM\\, y, dd/MM/yy
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
