# 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 = 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 y, d MMMM y, d MMM y, dd/MM/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 = 7
weekendRange = 6, 7
