# 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 = 紀元前, 西暦
eraNames = 紀元前, 西暦
narrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
months = 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月
shortMonths = 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月
standaloneNarrowMonths = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
standaloneMonths = 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月
standaloneShortMonths = 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月
weekdays = 日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日
shortWeekdays = 日, 月, 火, 水, 木, 金, 土
narrowWeekdays = 日, 月, 火, 水, 木, 金, 土
standaloneWeekdays = 日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日
standaloneShortWeekdays = 日, 月, 火, 水, 木, 金, 土
standaloneNarrowWeekdays = 日, 月, 火, 水, 木, 金, 土
shortQuarters = Q1, Q2, Q3, Q4
quarters = 第1四半期, 第2四半期, 第3四半期, 第4四半期
ampms = 午前, 午後
dateFormats = y年M月d日EEEE, y年M月d日, y/MM/dd, y/MM/dd
timeFormats = H時mm分ss秒 zzzz, H:mm:ss z, H:mm:ss, H:mm
dateTimeFormats = {1} {0}, {1} {0}, {1} {0}, {1} {0}
firstDayOfTheWeek = 1
weekendRange = 7, 1
