# 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 = AK, DK
eraNames = Antis di Kristu, Dispos di Kristu
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = Janeru, Fevereru, Marsu, Abril, Maiu, Junhu, Julhu, Agostu, Setenbru, Otubru, Nuvenbru, Dizenbru
shortMonths = Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Otu, Nuv, Diz
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Janeru, Fevereru, Marsu, Abril, Maiu, Junhu, Julhu, Agostu, Setenbru, Otubru, Nuvenbru, Dizenbru
standaloneShortMonths = Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Otu, Nuv, Diz
weekdays = dumingu, sigunda-fera, tersa-fera, kuarta-fera, kinta-fera, sesta-fera, sabadu
shortWeekdays = dum, sig, ter, kua, kin, ses, sab
narrowWeekdays = d, s, t, k, k, s, s
standaloneWeekdays = dumingu, sigunda-fera, tersa-fera, kuarta-fera, kinta-fera, sesta-fera, sabadu
standaloneShortWeekdays = dum, sig, ter, kua, kin, ses, sab
standaloneNarrowWeekdays = d, s, t, k, k, s, s
shortQuarters = T1, T2, T3, T4
quarters = Primeru Trimestri, Sigundu Trimestri, Terseru Trimestri, Kuartu Trimestri
ampms = am, pm
dateFormats = EEEE\\, d 'di' MMMM 'di' y, d 'di' MMMM 'di' y, d 'di' MMM 'di' y, d/M/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 = 2
weekendRange = 7, 1
