# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used in Swing
# Currently, the following components need this for support:
#
#    ColorChooser
#    FileChooser
#    OptionPane
#
# When this file is read in, the strings are put into the
# defaults table.  This is an implementation detail of the current
# workings of Swing.  DO NOT DEPEND ON THIS.
# This may change in future versions of Swing as we improve localization
# support.
#
#                        MNEMONIC NOTE:
# Many of strings in this file are used by widgets that have a
# mnemonic, for example:
#   ColorChooser.rgbNameTextAndMnemonic=R&GB
#
# Indicates that the tab in the ColorChooser for RGB colors will have
# the text 'RGB', further the mnemonic character will be 'g' and that
# a decoration will be provided under the 'G'. This will typically
# look like:  RGB
#              -
#
# One important thing to remember is that the mnemonic MUST exist in
# the String, if it does not exist you should add text that makes it
# exist. This will typically take the form 'XXXX (M)' where M is the
# character for the mnemonic.
#
# @author Steve Wilson

############ FILE CHOOSER STRINGS #############
FileChooser.fileDescription.textAndMnemonic=\uC77C\uBC18 \uD30C\uC77C
FileChooser.directoryDescription.textAndMnemonic=\uB514\uB809\uD1A0\uB9AC
FileChooser.newFolderError.textAndMnemonic=\uC0C8 \uD3F4\uB354\uB97C \uC0DD\uC131\uD558\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
FileChooser.newFolderErrorSeparator= :
FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=\uD3F4\uB354\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC74C
FileChooser.newFolderParentDoesntExist.textAndMnemonic=\uD3F4\uB354\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\n\uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC9C0\uC815\uB41C \uACBD\uB85C\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
FileChooser.renameErrorTitle.textAndMnemonic=\uD30C\uC77C \uB610\uB294 \uD3F4\uB354 \uC774\uB984 \uBC14\uAFB8\uB294 \uC911 \uC624\uB958 \uBC1C\uC0DD
FileChooser.renameError.textAndMnemonic={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
FileChooser.renameErrorFileExists.textAndMnemonic={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC74C: \uC9C0\uC815\uD55C \uC774\uB984\uC744 \uC0AC\uC6A9\uD558\uB294 \uD30C\uC77C\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uB2E4\uB978 \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624.
FileChooser.acceptAllFileFilter.textAndMnemonic=\uBAA8\uB4E0 \uD30C\uC77C
FileChooser.cancelButton.textAndMnemonic=\uCDE8\uC18C
FileChooser.saveButton.textAndMnemonic=\uC800\uC7A5(&S)
FileChooser.openButton.textAndMnemonic=\uC5F4\uAE30(&O)
FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
FileChooser.openDialogTitle.textAndMnemonic=\uC5F4\uAE30
FileChooser.updateButton.textAndMnemonic=\uAC31\uC2E0(&U)
FileChooser.helpButton.textAndMnemonic=\uB3C4\uC6C0\uB9D0(&H)
FileChooser.directoryOpenButton.textAndMnemonic=\uC5F4\uAE30(&O)

# File Size Units
FileChooser.fileSizeKiloBytes={0} KB
FileChooser.fileSizeMegaBytes={0} MB
FileChooser.fileSizeGigaBytes={0} GB

# These strings are platform dependent not look and feel dependent.
FileChooser.win32.newFolder=\uC0C8 \uD3F4\uB354
FileChooser.win32.newFolder.subsequent=\uC0C8 \uD3F4\uB354({0})
FileChooser.other.newFolder=NewFolder
FileChooser.other.newFolder.subsequent=NewFolder.{0}


## file chooser tooltips ###
FileChooser.cancelButtonToolTip.textAndMnemonic=\uD30C\uC77C \uC120\uD0DD\uAE30 \uB300\uD654\uC0C1\uC790 \uC911\uB2E8
FileChooser.saveButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uD30C\uC77C \uC800\uC7A5
FileChooser.openButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uD30C\uC77C \uC5F4\uAE30
FileChooser.updateButtonToolTip.textAndMnemonic=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D \uAC31\uC2E0
FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser \uB3C4\uC6C0\uB9D0
FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30

FileChooser.filesListAccessibleName=\uD30C\uC77C \uBAA9\uB85D
FileChooser.filesDetailsAccessibleName=\uD30C\uC77C \uC138\uBD80 \uC815\uBCF4

############ COLOR CHOOSER STRINGS #############
ColorChooser.preview.textAndMnemonic=\uBBF8\uB9AC\uBCF4\uAE30
ColorChooser.ok.textAndMnemonic=\uD655\uC778
ColorChooser.cancel.textAndMnemonic=\uCDE8\uC18C
ColorChooser.reset.textAndMnemonic=\uC7AC\uC124\uC815(&R)
ColorChooser.sample.textAndMnemonic=\uC0D8\uD50C \uD14D\uC2A4\uD2B8  \uC0D8\uD50C \uD14D\uC2A4\uD2B8
ColorChooser.swatches.textAndMnemonic=\uACAC\uBCF8(&S)
ColorChooser.swatchesRecent.textAndMnemonic=\uCD5C\uADFC \uBAA9\uB85D:
ColorChooser.hsv.textAndMnemonic=HSV(&H)
ColorChooser.hsvHue.textAndMnemonic=\uC0C9\uC870
ColorChooser.hsvSaturation.textAndMnemonic=\uCC44\uB3C4
ColorChooser.hsvValue.textAndMnemonic=\uAC12
ColorChooser.hsvTransparency.textAndMnemonic=\uD22C\uBA85
ColorChooser.hsl.textAndMnemonic=HSL(&L)
ColorChooser.hslHue.textAndMnemonic=\uC0C9\uC870
ColorChooser.hslSaturation.textAndMnemonic=\uCC44\uB3C4
ColorChooser.hslLightness.textAndMnemonic=\uBC1D\uAE30
ColorChooser.hslTransparency.textAndMnemonic=\uD22C\uBA85
ColorChooser.rgb.textAndMnemonic=RGB(&G)
ColorChooser.rgbRed.textAndMnemonic=\uBE68\uAC04\uC0C9(&D)
ColorChooser.rgbGreen.textAndMnemonic=\uB179\uC0C9(&N)
ColorChooser.rgbBlue.textAndMnemonic=\uD30C\uB780\uC0C9(&B)
ColorChooser.rgbAlpha.textAndMnemonic=\uC54C\uD30C
ColorChooser.rgbHexCode.textAndMnemonic=\uC0C9\uC0C1 \uCF54\uB4DC(&C)
ColorChooser.cmyk.textAndMnemonic=C&MYK
ColorChooser.cmykCyan.textAndMnemonic=\uCCAD\uB85D\uC0C9
ColorChooser.cmykMagenta.textAndMnemonic=\uC9C4\uD64D\uC0C9
ColorChooser.cmykYellow.textAndMnemonic=\uB178\uB780\uC0C9
ColorChooser.cmykBlack.textAndMnemonic=\uAC80\uC815\uC0C9
ColorChooser.cmykAlpha.textAndMnemonic=\uC54C\uD30C

############ OPTION PANE STRINGS #############
# We only define mnemonics for YES/NO, but for completeness you can
# define mnemonics for any of the buttons.
OptionPane.yesButton.textAndMnemonic=\uC608(&Y)
OptionPane.noButton.textAndMnemonic=\uC544\uB2C8\uC624(&N)
OptionPane.okButton.textAndMnemonic=\uD655\uC778
#OptionPane.okButtonMnemonic=0
OptionPane.cancelButton.textAndMnemonic=\uCDE8\uC18C
#OptionPane.cancelButtonMnemonic=0
OptionPane.title.textAndMnemonic=\uC635\uC158 \uC120\uD0DD
# Title for the dialog for the showInputDialog methods. Only used if
# the developer uses one of the variants that doesn't take a title.
OptionPane.inputDialog.titleAndMnemonic=\uC785\uB825
# Title for the dialog for the showMessageDialog methods. Only used if
# the developer uses one of the variants that doesn't take a title.
OptionPane.messageDialog.titleAndMnemonic=\uBA54\uC2DC\uC9C0

############ Printing Dialog Strings ############
PrintingDialog.titleProgress.textAndMnemonic=\uC778\uC1C4
PrintingDialog.titleAborting.textAndMnemonic=\uC778\uC1C4(\uC911\uB2E8 \uC911)

PrintingDialog.contentInitial.textAndMnemonic=\uC778\uC1C4 \uC9C4\uD589 \uC911...

# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
PrintingDialog.contentProgress.textAndMnemonic=\uC778\uC1C4\uB41C \uD398\uC774\uC9C0 {0}...

PrintingDialog.contentAborting.textAndMnemonic=\uC778\uC1C4 \uC911\uB2E8 \uC911...

PrintingDialog.abortButton.textAndMnemonic=\uC911\uB2E8(&A)
PrintingDialog.abortButtonToolTip.textAndMnemonic=\uC778\uC1C4 \uC911\uB2E8

############ Internal Frame Strings ############
InternalFrame.iconButtonToolTip=\uCD5C\uC18C\uD654
InternalFrame.maxButtonToolTip=\uCD5C\uB300\uD654
InternalFrame.restoreButtonToolTip=\uBCF5\uC6D0
InternalFrame.closeButtonToolTip=\uB2EB\uAE30

############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButton.textAndMnemonic=\uBCF5\uC6D0
InternalFrameTitlePane.moveButton.textAndMnemonic=\uC774\uB3D9
InternalFrameTitlePane.sizeButton.textAndMnemonic=\uD06C\uAE30
InternalFrameTitlePane.minimizeButton.textAndMnemonic=\uCD5C\uC18C\uD654
InternalFrameTitlePane.maximizeButton.textAndMnemonic=\uCD5C\uB300\uD654
InternalFrameTitlePane.closeButton.textAndMnemonic=\uB2EB\uAE30

############ Text strings #############
# Used for html forms
FormView.submitButton.textAndMnemonic=\uC9C8\uC758 \uC81C\uCD9C
FormView.resetButton.textAndMnemonic=\uC7AC\uC124\uC815
FormView.browseFileButton.textAndMnemonic=\uCC3E\uC544\uBCF4\uAE30...

############ Abstract Document Strings ############
AbstractDocument.styleChange.textAndMnemonic=\uC2A4\uD0C0\uC77C \uBCC0\uACBD
AbstractDocument.addition.textAndMnemonic=\uCD94\uAC00
AbstractDocument.deletion.textAndMnemonic=\uC0AD\uC81C
AbstractDocument.undo.textAndMnemonic=\uC2E4\uD589 \uCDE8\uC18C
AbstractDocument.redo.textAndMnemonic=\uC7AC\uC2E4\uD589

############ Abstract Button Strings ############
AbstractButton.click.textAndMnemonic=\uB204\uB974\uAE30

############ Abstract Undoable Edit Strings ############
AbstractUndoableEdit.undo.textAndMnemonic=\uC2E4\uD589 \uCDE8\uC18C
AbstractUndoableEdit.redo.textAndMnemonic=\uC7AC\uC2E4\uD589

############ Combo Box Strings ############
ComboBox.togglePopup.textAndMnemonic=togglePopup

############ Progress Monitor Strings ############
ProgressMonitor.progress.textAndMnemonic=\uC9C4\uD589...

############ Split Pane Strings ############
SplitPane.leftButton.textAndMnemonic=\uC67C\uCABD \uB2E8\uCD94
SplitPane.rightButton.textAndMnemonic=\uC624\uB978\uCABD \uB2E8\uCD94
# Used for Isindex
IsindexView.prompt=\uB2E4\uC74C\uC740 \uAC80\uC0C9 \uAC00\uB2A5\uD55C \uC778\uB371\uC2A4\uC785\uB2C8\uB2E4. \uAC80\uC0C9 \uD0A4\uC6CC\uB4DC \uC785\uB825:

############ InternalFrameTitlePane Strings ############
InternalFrameTitlePane.iconifyButtonAccessibleName=\uC544\uC774\uCF58\uD654
InternalFrameTitlePane.maximizeButtonAccessibleName=\uCD5C\uB300\uD654
InternalFrameTitlePane.closeButtonAccessibleName=\uB2EB\uAE30
