/*
	Copyright (c) 2004-2006, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/community/licensing.shtml
*/

dojo.provide("nls.dojo_ko-kr");dojo.provide("dojo.i18n.calendar.nls.gregorian");dojo.i18n.calendar.nls.gregorian._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorian.ko_kr");dojo.i18n.calendar.nls.gregorian.ko_kr={"months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormat-long":"yyyy'년' M'월' d'일'","timeFormat-full":"a hh'시' mm'분' ss'초' z","eras":["기원전","서기"],"timeFormat-medium":"a hh'시' mm'분'","dateFormat-medium":"yyyy. MM. dd","am":"오전","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormat-full":"yyyy'년' M'월' d'일' EEEE","days-format-abbr":["일","월","화","수","목","금","토"],"timeFormat-long":"a hh'시' mm'분' ss'초'","timeFormat-short":"a hh'시' mm'분'","dateFormat-short":"yy. MM. dd","pm":"오후","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"days-standAlone-narrow":["일","월","화","수","목","금","토"],"days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-weekday":"Day of the Week","field-second":"Second","field-week":"Week","field-year":"Year","field-minute":"Minute","field-hour":"Hour","field-day":"Day","field-dayperiod":"Dayperiod","field-month":"Month","field-era":"Era","field-zone":"Zone"};dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");dojo.i18n.calendar.nls.gregorianExtras._built=true;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.ko_kr");dojo.i18n.calendar.nls.gregorianExtras.ko_kr={"dateFormat-yearOnly":"yyyy"};dojo.provide("dojo.widget.nls.TimePicker");dojo.widget.nls.TimePicker._built=true;dojo.provide("dojo.widget.nls.TimePicker.ko_kr");dojo.widget.nls.TimePicker.ko_kr={"any":"any"};dojo.provide("dojo.widget.nls.DropdownDatePicker");dojo.widget.nls.DropdownDatePicker._built=true;dojo.provide("dojo.widget.nls.DropdownDatePicker.ko_kr");dojo.widget.nls.DropdownDatePicker.ko_kr={"selectDate":"Select a date"};dojo.provide("dojo.widget.nls.DropdownTimePicker");dojo.widget.nls.DropdownTimePicker._built=true;dojo.provide("dojo.widget.nls.DropdownTimePicker.ko_kr");dojo.widget.nls.DropdownTimePicker.ko_kr={"selectTime":"Select time"};