# 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 = v. Chr., n. Chr.
eraNames = v. Chr., n. Chr.
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember
shortMonths = Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember
standaloneShortMonths = Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez
weekdays = Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag
shortWeekdays = Son, Mon, Die, Mit, Don, Fre, Sam
narrowWeekdays = S, M, D, M, D, F, S
standaloneWeekdays = Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag
standaloneShortWeekdays = Son, Mon, Die, Mit, Don, Fre, Sam
standaloneNarrowWeekdays = S, M, D, M, D, F, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = 1. Quartal, 2. Quartal, 3. Quartal, 4. Quartal
ampms = vorm., nachm.
dateFormats = EEEE d MMMM y, d MMMM y, dd.MM.yyyy, d/MM/yy
timeFormats = HH 'h' mm 'min' ss 's' zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
