# 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 = av. J.-C., ap. J.-C.
eraNames = avant Jésus-Christ, après Jésus-Christ
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre
shortMonths = janv., févr., mars, avr., mai, juin, juil., août, sept., oct., nov., déc.
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre
standaloneShortMonths = janv., févr., mars, avr., mai, juin, juil., août, sept., oct., nov., déc.
weekdays = dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi
shortWeekdays = dim., lun., mar., mer., jeu., ven., sam.
narrowWeekdays = D, L, M, M, J, V, S
standaloneWeekdays = dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi
standaloneShortWeekdays = dim., lun., mar., mer., jeu., ven., sam.
standaloneNarrowWeekdays = D, L, M, M, J, V, S
shortQuarters = T1, T2, T3, T4
quarters = 1er trimestre, 2e trimestre, 3e trimestre, 4e trimestre
ampms = AM, PM
dateFormats = EEEE d MMMM yyyy, d MMMM yyyy, d MMM yyyy, dd/MM/yy
timeFormats = HH:mm:ss v, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
