# 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 = aC, dC
eraNames = aC, dC
narrowMonths = g, f, m, a, m, j, j, a, s, o, n, d
months = de gener, de febrer, de març, d’abril, de maig, de juny, de juliol, d’agost, de setembre, d’octubre, de novembre, de desembre
shortMonths = gen., febr., març, abr., maig, juny, jul., ag., set., oct., nov., des.
standaloneNarrowMonths = g, f, m, a, m, j, j, a, s, o, n, d
standaloneMonths = gener, febrer, març, abril, maig, juny, juliol, agost, setembre, octubre, novembre, desembre
standaloneShortMonths = gen., febr., març, abr., maig, juny, jul., ag., set., oct., nov., des.
weekdays = diumenge, dilluns, dimarts, dimecres, dijous, divendres, dissabte
shortWeekdays = dg., dl., dt., dc., dj., dv., ds.
narrowWeekdays = g, l, t, c, j, v, s
standaloneWeekdays = diumenge, dilluns, dimarts, dimecres, dijous, divendres, dissabte
standaloneShortWeekdays = dg, dl, dt, dc, dj, dv, ds
standaloneNarrowWeekdays = g, l, t, c, j, v, s
shortQuarters = 1T, 2T, 3T, 4T
quarters = 1r trimestre, 2n trimestre, 3r trimestre, 4t trimestre
ampms = a.m., p.m.
dateFormats = EEEE d MMMM 'de' y, d MMMM 'de' y, dd/MM/yyyy, dd/MM/yy
timeFormats = H:mm:ss zzzz, H:mm:ss z, H:mm:ss, H:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
