# 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 = MÖ, MS
eraNames = Milattan Önce, Milattan Sonra
narrowMonths = O, Ş, M, N, M, H, T, A, E, E, K, A
months = Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık
shortMonths = Oca, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara
standaloneNarrowMonths = O, Ş, M, N, M, H, T, A, E, E, K, A
standaloneMonths = Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık
standaloneShortMonths = Oca, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara
weekdays = Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi
shortWeekdays = Paz, Pzt, Sal, Çar, Per, Cum, Cmt
narrowWeekdays = P, P, S, Ç, P, C, C
standaloneWeekdays = Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi
standaloneShortWeekdays = Paz, Pzt, Sal, Çar, Per, Cum, Cmt
standaloneNarrowWeekdays = P, P, S, Ç, P, C, C
shortQuarters = Ç1, Ç2, Ç3, Ç4
quarters = 1. çeyrek, 2. çeyrek, 3. çeyrek, 4. çeyrek
ampms = ÖÖ, ÖS
dateFormats = d MMMM y EEEE, d MMMM y, d MMM y, d 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 = 2
weekendRange = 7, 1
