# 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 = Voor Christus, Anno Domini
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = januari, februari, maart, april, mei, juni, juli, augustus, september, oktober, november, december
shortMonths = jan., feb., mrt., apr., mei, jun., jul., aug., sep., okt., nov., dec.
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = januari, februari, maart, april, mei, juni, juli, augustus, september, oktober, november, december
standaloneShortMonths = jan., feb., mrt., apr., mei, jun., jul., aug., sep., okt., nov., dec.
weekdays = zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag
shortWeekdays = zo, ma, di, wo, do, vr, za
narrowWeekdays = Z, M, D, W, D, V, Z
standaloneWeekdays = zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag
standaloneShortWeekdays = zo, ma, di, wo, do, vr, za
standaloneNarrowWeekdays = Z, M, D, W, D, V, Z
shortQuarters = K1, K2, K3, K4
quarters = 1e kwartaal, 2e kwartaal, 3e kwartaal, 4e kwartaal
ampms = AM, PM
dateFormats = EEEE d MMMM y, d MMMM y, d-MMM-y, d/MM/yy
timeFormats = HH:mm:ss zzzz, HH:mm:ss z, HH:mm:ss, HH:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
