# 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 = p.m.ē., m.ē.
eraNames = pirms mūsu ēras, mūsu ērā
narrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
months = janvāris, februāris, marts, aprīlis, maijs, jūnijs, jūlijs, augusts, septembris, oktobris, novembris, decembris
shortMonths = janv., febr., marts, apr., maijs, jūn., jūl., aug., sept., okt., nov., dec.
standaloneNarrowMonths = J, F, M, A, M, J, J, A, S, O, N, D
standaloneMonths = Janvāris, Februāris, Marts, Aprīlis, Maijs, Jūnijs, Jūlijs, Augusts, Septembris, Oktobris, Novembris, Decembris
standaloneShortMonths = Janv., Febr., Marts, Apr., Maijs, Jūn., Jūl., Aug., Sept., Okt., Nov., Dec.
weekdays = svētdiena, pirmdiena, otrdiena, trešdiena, ceturtdiena, piektdiena, sestdiena
shortWeekdays = Sv, Pr, Ot, Tr, Ce, Pk, Se
narrowWeekdays = S, P, O, T, C, P, S
standaloneWeekdays = Svētdiena, Pirmdiena, Otrdiena, Trešdiena, Ceturtdiena, Piektdiena, Sestdiena
standaloneShortWeekdays = Sv, Pr, Ot, Tr, Ce, Pk, Se
standaloneNarrowWeekdays = S, P, O, T, C, P, S
shortQuarters = C1, C2, C3, C4
quarters = 1. ceturksnis, 2. ceturksnis, 3. ceturksnis, 4. ceturksnis
ampms = priekšpusdienā, pēcpusdienā
dateFormats = EEEE\\, y. 'gada' d. MMMM, y. 'gada' d. MMMM, y. 'gada' d. MMM, dd.MM.yy
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
