# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
#
# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
# Other names may be trademarks of their respective owners.
#
# The contents of this file are subject to the terms of either the GNU
# General Public License Version 2 only ("GPL") or the Common
# Development and Distribution License("CDDL") (collectively, the
# "License"). You may not use this file except in compliance with the
# License. You can obtain a copy of the License at
# http://www.netbeans.org/cddl-gplv2.html
# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
# specific language governing permissions and limitations under the
# License.  When distributing the software, include this License Header
# Notice in each file and include the License file at
# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the GPL Version 2 section of the License file that
# accompanied this code. If applicable, add the following below the
# License Header, with the fields enclosed by brackets [] replaced by
# your own identifying information:
# "Portions Copyrighted [year] [name of copyright owner]"
#
# Contributor(s):
#
# The Original Software is NetBeans. The Initial Developer of the Original
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
# Microsystems, Inc. All Rights Reserved.
#
# If you wish your version of this file to be governed by only the CDDL
# or only the GPL Version 2, indicate your decision by adding
# "[Contributor] elects to include this software in this distribution
# under the [CDDL or GPL Version 2] license." If you do not indicate a
# single choice of license, a recipient has the option to distribute
# your version of this file under either the CDDL, the GPL Version 2 or
# to extend the choice of license to its licensees as provided above.
# However, if you add GPL Version 2 code and therefore, elected the GPL
# Version 2 license, then the option applies only if the new code is
# made subject to such option by the copyright holder.

#PropertyDisplayer
PS_ExcIn=\uc608\uc678 \uc704\uce58
PS_Editor=\ub4f1\ub85d \uc815\ubcf4 \ud3b8\uc9d1\uae30
# {0} - name of the property
# {1} - type (class) of the property (currently unused)
PS_EditorTitle={0}
PS_ArrayOf=\ubc30\uc5f4
FMT_ErrorSettingProperty=\ub4f1\ub85d \uc815\ubcf4\ub97c \uc124\uc815\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. {0}\uc740(\ub294) {1}\uc5d0 \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.
FMT_CannotUpdateProperty={0}\uc740(\ub294) {1}\uc5d0 \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.

#PropertySheet
CTL_NoPropertyEditor=(\ub4f1\ub85d \uc815\ubcf4 \ud3b8\uc9d1\uae30 \uc5c6\uc74c)
CTL_NoProperties=<\ub4f1\ub85d \uc815\ubcf4 \uc5c6\uc74c>
CTL_Property_Read_Yes=(r/
CTL_Property_Read_No=(-/
CTL_PropertiesNoMnemonic=\ub4f1\ub85d \uc815\ubcf4
CTL_Property_Write_Yes=w)
CTL_Property_Write_No=-)

# tooltips and accessible names on buttons in the PropertySheet
CTL_NoSort=\ubc94\uc8fc\ubcc4 \uc815\ub82c
ACS_CTL_NoSort=\ubc94\uc8fc\ubcc4 \uc815\ub82c
CTL_AlphaSort=\uc774\ub984\ubcc4 \uc815\ub82c
ACS_CTL_AlphaSort=\uc774\ub984\ubcc4 \uc815\ub82c
CTL_TypeSort=\uc720\ud615\ubcc4 \uc815\ub82c
ACS_CTL_TypeSort=\uc720\ud615\ubcc4 \uc815\ub82c
CTL_VisibleWritableOnly=\ud3b8\uc9d1 \uac00\ub2a5\ud55c \ub4f1\ub85d \uc815\ubcf4\ub9cc \ud45c\uc2dc
ACS_CTL_VisibleWritableOnly=\ud3b8\uc9d1 \uac00\ub2a5\ud55c \ub4f1\ub85d \uc815\ubcf4\ub9cc \ud45c\uc2dc
CTL_Customize=\uc0ac\uc6a9\uc790 \uc815\uc758\uc790
ACS_CTL_Customize=\uc0ac\uc6a9\uc790 \uc815\uc758\uc790
CTL_Help=\ub3c4\uc6c0\ub9d0
ACS_CTL_Help=\ub3c4\uc6c0\ub9d0
ACSD_CTL_Help=\ub4f1\ub85d \uc815\ubcf4\uac00 \ub4f1\ub85d \uc815\ubcf4 \uc2dc\ud2b8\uc5d0 \ud45c\uc2dc\ub418\ub294 \uac1d\uccb4 \uad00\ub828 \ub3c4\uc6c0\ub9d0\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.

# PropertyPanel
# This message is printed to ide.log if user is customizing an object as bean 
# with property which getter/setter throws an exception at design time.
EXC_DesignTimeUse=[PropertyPanel:UserInfo]\ub514\uc790\uc778 \ud0c0\uc784\uc5d0 >>{0}<< \ub4f1\ub85d \uc815\ubcf4\ub97c \uc0ac\uc6a9\ud558\uba74 \uc608\uc678\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.

#PropertySheet
CTL_Property_sheet_option=\ub4f1\ub85d \uc815\ubcf4 \uc2dc\ud2b8


#IndexedPropertyEditor
CTL_NoItem=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud56d\ubaa9 \uc5c6\uc74c
CTL_Index=\ub4f1\ub85d \uc815\ubcf4 \uc0c9\uc778:
CTL_Unknown=\uc54c \uc218 \uc5c6\uc74c

#PropertyDialogManager
CTL_OK=\ud655\uc778
ACSD_CTL_OK=\ud574\ub2f9 \uc5c6\uc74c
CTL_Cancel=\ucde8\uc18c
ACSD_CTL_Cancel=\ud574\ub2f9 \uc5c6\uc74c
CTL_Close=\ub2eb\uae30
ACSD_CTL_Close=\ud574\ub2f9 \uc5c6\uc74c
CTL_Default=\uae30\ubcf8\uac12\uc73c\ub85c \ucd08\uae30\ud654(&D)
ACSD_CTL_Default=\ud574\ub2f9 \uc5c6\uc74c
CTL_Paste=\ubd99\uc5ec\ub123\uae30

#PropertyDetails
EXC_Setter=\ub4f1\ub85d \uc815\ubcf4\uc758 setter \uba54\uc18c\ub4dc\uc5d0 \uc608\uc678\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. {0}
EXC_Setter_localized=\ub4f1\ub85d \uc815\ubcf4 {0}\uc758 setter \uba54\uc18c\ub4dc\uc5d0 \uc608\uc678\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.\n{1}

#PropertyPanel
CTL_No_custom_editor=<\uc0ac\uc6a9\uc790 \uc815\uc758 \ud3b8\uc9d1\uae30 \uc5c6\uc74c>
CTL_No_property_editor=<\ub4f1\ub85d \uc815\ubcf4 \ud3b8\uc9d1\uae30 \uc5c6\uc74c>
CTL_Different_Values=<\ub2e4\ub978 \uac12>
CTL_Desc_Different_Values=\uc120\ud0dd\ud55c \ub178\ub4dc\uc5d0\uc11c \uc774 \ub4f1\ub85d \uc815\ubcf4 \uac12\uc774 \ub2e4\ub985\ub2c8\ub2e4.
CTL_No_properties=<\ub4f1\ub85d \uc815\ubcf4 \uc5c6\uc74c>
CTL_No_value=<\uac12 \uc5c6\uc74c>
CTL_No_type=<\uc720\ud615 \uc5c6\uc74c>
CTL_ElipsisHint=\uc0ac\uc6a9\uc790 \uc815\uc758\uc790\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4.
CTL_InvalidValue=\uc798\ubabb\ub41c \uac12: {0}
# {0} = 0 if invalid mark is shown, 1 - invalid mark is not shown
# {1} value shown in a sheet button
ACS_SheetButton={0,choice,0#\uc798\ubabb\ub41c \uac12 {1}|1#{1}}
# {0} property name
ACS_PropertyPanel={0}:
# {0} property panel tooltip
ACSD_PropertyPanel={0}
# {0} property panel acessible name
# {1} sheet button accessible name
ACS_PropertyPanelReadComponent={0} {1}
# {0} property panel acessible description
# {1} sheet button accessible description
# {2} number of items in beans list
# {3} beans list
ACSD_PropertyPanelReadComponent={0} \uc720\ud615: {1}{2,choice,0#|1# Bean: {3}|2# Bean: {3}}
# {0} property panel accessible name
ACS_PropertyPanelWriteComponent={0}
# {0} property panel accessible name
ACSD_PropertyPanelWriteComponent={0}
# WARNING: trailing space intentional here:
ACSD_BeanListDelimiter=, 

#IndexedEditorPanel
CTL_Properties=\ub4f1\ub85d \uc815\ubcf4(&P)
CTL_New=\uc0c8\ub85c \ub9cc\ub4e4\uae30(&N)
CTL_Delete=\uc0ad\uc81c(&D)
CTL_MoveUp=\uc704\ub85c \uc774\ub3d9(&U)
CTL_MoveDown=\uc544\ub798\ub85c \uc774\ub3d9(&W)
CTL_HideDetails=\uc790\uc138\ud55c \ub0b4\uc6a9 \uc228\uae30\uae30(&H)
CTL_ShowDetails=\uc790\uc138\ud55c \ub0b4\uc6a9 \ud45c\uc2dc(&S)
EXC_ErrorInIndexedSetter=\uc0c9\uc778 \ub4f1\ub85d \uc815\ubcf4 \uac12\uc744 \uc124\uc815\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.

ACSD_Properties=\ud574\ub2f9 \uc5c6\uc74c
ACSD_New=\ud574\ub2f9 \uc5c6\uc74c
ACSD_Delete=\ud574\ub2f9 \uc5c6\uc74c
ACSD_MoveUp=\ud574\ub2f9 \uc5c6\uc74c
ACSD_MoveDown=\ud574\ub2f9 \uc5c6\uc74c
ACSD_HideDetails=\ud574\ub2f9 \uc5c6\uc74c
ACSD_ShowDetails=\ud574\ub2f9 \uc5c6\uc74c
ACSD_IndexedEditorPanel=\ud574\ub2f9 \uc5c6\uc74c


#Properties defined in rewrite begin here
#Text for the property sheet popup menu

#Column names - not used by default L&F but others could
COLUMN_NAMES=\uc774\ub984
COLUMN_VALUES=\uac12

#Unreadable value text (for write-only properties, fwiw)
UNREADABLE=<\uc77d\uc744 \uc218 \uc5c6\uc74c>
#Text for null values
NULL=null

#Title for error dialog when a property is set to a bad value
ERRDLG_TITLE=\uac12 \uc124\uc815 \uc624\ub958
#Localized msg for property veto exception on unknown sorting mode, if
#property sheet used at design-time
EXC_Unknown_sorting_mode=\uc54c \uc218 \uc5c6\ub294 \uc815\ub82c \ubaa8\ub4dc

#Button labels for property dialogs
ok=\ud655\uc778
default=\uae30\ubcf8\uac12 \ubcf5\uc6d0
cancel=\ucde8\uc18c
close=\ub2eb\uae30

#Text to prepend and append to boolean values to dissociate the 
#text value of the checkbox.
BOOLEAN_PREPEND=(
BOOLEAN_APPEND=)
FMT_BOOLEAN={0}{1}{2}

#Property sheet controls
ACS_Description=\uc124\uba85
ACSD_Description=\ud604\uc7ac \uc120\ud0dd\ud55c \ub4f1\ub85d \uc815\ubcf4\uc758 \uc124\uba85\uc785\ub2c8\ub2e4.
ACS_DescriptionTitle=\ub4f1\ub85d \uc815\ubcf4 \uc774\ub984
ACSD_DescriptionTitle=\ud604\uc7ac \ud3b8\uc9d1 \uc911\uc778 \ub4f1\ub85d \uc815\ubcf4\uc758 \uc774\ub984\uc785\ub2c8\ub2e4.
CTL_NO_DESCRIPTION=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc124\uba85\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
CTL_NO_SELECTION=\uc120\ud0dd\ud55c \ud56d\ubaa9\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
ACS_Splitter=\ubd84\ub9ac\uc790
ACSD_Splitter=\ub4f1\ub85d \uc815\ubcf4 \ud14c\uc774\ube14 \ubc0f \uc124\uba85 \uc601\uc5ed \uac04\uc758 \uc2dc\uac01\uc801 \uad6c\ubd84\uc120\uc785\ub2c8\ub2e4.

#text to use in invalid property when the actual property name is unknown
CTL_Unnamed_Property=\ub4f1\ub85d \uc815\ubcf4

#Accessible text format for the property sheet table - the selected property
#name and value are given
FMT_ACST_SheetProperty={0}\uc774(\uac00) {1}\uacfc(\uc640) \uac19\uc2b5\ub2c8\ub2e4.
FMT_ACST_SheetSet=\ub4f1\ub85d \uc815\ubcf4 \uadf8\ub8f9 {0}
ACST_No_Selection=\uc120\ud0dd\ud55c \ud56d\ubaa9\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
CTL_Multiple_Selection=\uc5ec\ub7ec \uac1d\uccb4\ub97c \uc120\ud0dd\ud588\uc2b5\ub2c8\ub2e4.
#Custom editor button tooltip
CTL_EDBUTTON_TIP=\ud074\ub9ad\ud558\uac70\ub098 \uc120\ud0dd\ud55c \ub2e4\uc74c Ctrl-Space\ub97c \ub20c\ub7ec \uc0ac\uc6a9\uc790 \uc815\uc758 \ud3b8\uc9d1\uae30\ub97c \uc5fd\ub2c8\ub2e4. \uba54\ub274\ub97c \ubcf4\ub824\uba74 \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.
#Delimiter for lists of node names when multiple nodes are selected
CTL_List_Delimiter=, 
CTL_ShowDescription=\uc124\uba85 \uc601\uc5ed \ud45c\uc2dc
CTL_HideDescription=\uc124\uba85 \uc601\uc5ed \uc228\uae30\uae30
CTL_RestoreDefaultValue=\uae30\ubcf8\uac12 \ubcf5\uc6d0
#Label for the tab which lists properties that do not supply their own tab name
#in the case that the property sheet is displaying tabs
LBL_BasicTab=\ub4f1\ub85d \uc815\ubcf4
#Stand-in text for the property name in error dialogs when the user is
#editing a property of a JavaBean and the name is unknown
MSG_unknown_property_name=\uc774 \ub4f1\ub85d \uc815\ubcf4
#Text when a badly formatted number is entered
FMT_BAD_NUMBER_FORMAT=\uc798\ubabb\ub41c \ubc88\ud638 \ud615\uc2dd: "{0}"

#Format for combining the edited node name with the edited property
#name in custom dialog titles
FMT_CUSTOM_DLG_TITLE={0} - {1}
#Format for custom editor dlg title sans node name
FMT_CUSTOM_DLG_NOPROPNAME_TITLE=\uc0ac\uc6a9\uc790 \uc815\uc758 \ud3b8\uc9d1\uae30: {0}
#Something to append to ridiculously long tooltips that can't be fully
#displayed without taking up most of the screen
MSG_ELLIPSIS=...
ACSN_SHEET_TABLE=\ub4f1\ub85d \uc815\ubcf4 \ud14c\uc774\ube14
ACSN_SHEET_TABBED_PANE=\ub4f1\ub85d \uc815\ubcf4 \ubc94\uc8fc
ACSD_SHEET_TABLE=\ud604\uc7ac \uac1d\uccb4\ub97c \ud45c\uc2dc\ud558\ub294 \ud3b8\uc9d1 \uac00\ub2a5\ud55c \ub4f1\ub85d \uc815\ubcf4 \ud14c\uc774\ube14
ACSD_SHEET_TABBED_PANE=\ud604\uc7ac \uac1d\uccb4\uc758 \uc5ec\ub7ec \ub4f1\ub85d \uc815\ubcf4 \uc9d1\ud569\uc744 \uc120\ud0dd\ud558\uc5ec \ub4f1\ub85d \uc815\ubcf4 \uc2dc\ud2b8\uc5d0 \ud45c\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.

LBL_QUICKSEARCH=\ube60\ub978 \uac80\uc0c9:

MSG_SetAsText_InvalidValue=\uc798\ubabb\ub41c \uac12: {0}

