# 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 = i. e., i. sz.
eraNames = időszámításunk előtt, időszámításunk szerint
narrowMonths = J, F, M, Á, M, J, J, A, Sz, O, N, D
months = január, február, március, április, május, június, július, augusztus, szeptember, október, november, december
shortMonths = jan., febr., márc., ápr., máj., jún., júl., aug., szept., okt., nov., dec.
standaloneNarrowMonths = J, F, M, Á, M, J, J, A, Sz, O, N, D
standaloneMonths = január, február, március, április, május, június, július, augusztus, szeptember, október, november, december
standaloneShortMonths = jan., febr., márc., ápr., máj., jún., júl., aug., szept., okt., nov., dec.
weekdays = vasárnap, hétfő, kedd, szerda, csütörtök, péntek, szombat
shortWeekdays = V, H, K, Sze, Cs, P, Szo
narrowWeekdays = V, H, K, Sz, Cs, P, Sz
standaloneWeekdays = vasárnap, hétfő, kedd, szerda, csütörtök, péntek, szombat
standaloneShortWeekdays = V, H, K, Sze, Cs, P, Szo
standaloneNarrowWeekdays = V, H, K, Sz, Cs, P, Sz
shortQuarters = N1, N2, N3, N4
quarters = I. negyedév, II. negyedév, III. negyedév, IV. negyedév
ampms = de., du.
dateFormats = y. MMMM d.\\, EEEE, y. MMMM d., yyyy.MM.dd., yyyy.MM.dd.
timeFormats = H:mm:ss zzzz, H:mm:ss z, H:mm:ss, H:mm
firstDayOfTheWeek = 2
weekendRange = 7, 1
