# 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 = ZƐ, ḌƐ
eraNames = Zdat Ɛisa (TAƔ), Ḍeffir Ɛisa (TAƔ)
narrowMonths = Y, Y, M, I, M, Y, Y, Ɣ, C, K, N, D
months = Yennayer, Yebrayer, Mars, Ibrir, Mayyu, Yunyu, Yulyuz, Ɣuct, Cutanbir, Kṭuber, Nwanbir, Dujanbir
shortMonths = Yen, Yeb, Mar, Ibr, May, Yun, Yul, Ɣuc, Cut, Kṭu, Nwa, Duj
standaloneNarrowMonths = Y, Y, M, I, M, Y, Y, Ɣ, C, K, N, D
standaloneMonths = Yennayer, Yebrayer, Mars, Ibrir, Mayyu, Yunyu, Yulyuz, Ɣuct, Cutanbir, Kṭuber, Nwanbir, Dujanbir
standaloneShortMonths = Yen, Yeb, Mar, Ibr, May, Yun, Yul, Ɣuc, Cut, Kṭu, Nwa, Duj
weekdays = Asamas, Aynas, Asinas, Akras, Akwas, Asimwas, Asiḍyas
shortWeekdays = Asa, Ayn, Asn, Akr, Akw, Asm, Asḍ
narrowWeekdays = A, A, A, A, A, A, A
standaloneWeekdays = Asamas, Aynas, Asinas, Akras, Akwas, Asimwas, Asiḍyas
standaloneShortWeekdays = Asa, Ayn, Asn, Akr, Akw, Asm, Asḍ
standaloneNarrowWeekdays = A, A, A, A, A, A, A
shortQuarters = IA1, IA2, IA3, IA4
quarters = Imir adamsan 1, Imir adamsan 2, Imir adamsan 3, Imir adamsan 4
ampms = Zdat azal, Ḍeffir aza
dateFormats = EEEE\\, d MMMM y, d MMMM y, d MMM y, dd/MM/y
timeFormats = h:mm:ss a zzzz, h:mm:ss a z, h:mm:ss a, h:mm a
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 7
weekendRange = 6, 7
