# 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 = QK, WK
eraNames = Qabel Kristu, Wara Kristu
narrowMonths = J, F, M, A, M, Ġ, L, A, S, O, N, D
months = Jannar, Frar, Marzu, April, Mejju, Ġunju, Lulju, Awwissu, Settembru, Ottubru, Novembru, Diċembru
shortMonths = Jan, Fra, Mar, Apr, Mej, Ġun, Lul, Aww, Set, Ott, Nov, Diċ
standaloneNarrowMonths = J, F, M, A, M, Ġ, L, A, S, O, N, D
standaloneMonths = Jannar, Frar, Marzu, April, Mejju, Ġunju, Lulju, Awwissu, Settembru, Ottubru, Novembru, Diċembru
standaloneShortMonths = Jan, Fra, Mar, Apr, Mej, Ġun, Lul, Aww, Set, Ott, Nov, Diċ
weekdays = Il-Ħadd, It-Tnejn, It-Tlieta, L-Erbgħa, Il-Ħamis, Il-Ġimgħa, Is-Sibt
shortWeekdays = Ħad, Tne, Tli, Erb, Ħam, Ġim, Sib
narrowWeekdays = Ħ, T, T, E, Ħ, Ġ, S
standaloneWeekdays = Il-Ħadd, It-Tnejn, It-Tlieta, L-Erbgħa, Il-Ħamis, Il-Ġimgħa, Is-Sibt
standaloneShortWeekdays = Ħad, Tne, Tli, Erb, Ħam, Ġim, Sib
standaloneNarrowWeekdays = Ħ, T, T, E, Ħ, Ġ, S
shortQuarters = K1, K2, K3, K4
quarters = K1, K2, K3, K4
ampms = QN, WN
dateFormats = EEEE\\, d 'ta'’ MMMM y, d 'ta'’ MMMM y, dd 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 = 1
weekendRange = 7, 1
