# 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, Auguscht, Septämber, Oktoober, Novämber, Dezämber
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, Auguscht, Septämber, Oktoober, Novämber, Dezämber
standaloneShortMonths = Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez
weekdays = Sunntig, Määntig, Ziischtig, Mittwuch, Dunschtig, Friitig, Samschtig
shortWeekdays = Su., Mä., Zi., Mi., Du., Fr., Sa.
narrowWeekdays = S, M, D, M, D, F, S
standaloneWeekdays = Sunntig, Määntig, Ziischtig, Mittwuch, Dunschtig, Friitig, Samschtig
standaloneShortWeekdays = Su., Mä., Zi., Mi., Du., Fr., Sa.
standaloneNarrowWeekdays = S, M, D, M, D, F, S
shortQuarters = Q1, Q2, Q3, Q4
quarters = 1. Quartal, 2. Quartal, 3. Quartal, 4. Quartal
ampms = vorm., nam.
dateFormats = EEEE\\, d. MMMM y, d. MMMM y, dd.MM.yyyy, dd.MM.yy
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
