# 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.

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 = 1분기, 2분기, 3분기, 4분기
quarters = 제 1/4분기, 제 2/4분기, 제 3/4분기, 제 4/4분기
ampms = 오전, 오후
dateFormats = yyyy년 M월 d일 EEEE, yyyy년 M월 d일, yyyy. M. d., yy. M. d.
timeFormats = a hh시 mm분 ss초 v, a hh시 mm분 ss초 z, a h:mm:ss, a h:mm
firstDayOfTheWeek = 1
weekendRange = 7, 1
