# Refer to the note in basic.properties for a description as to what
# the mnemonics correspond to and how to calculate them.



# GTK specific properties

# GTK color chooser properties:
GTKColorChooserPanel.nameText=GTK \uc0c9 \uc120\ud0dd
# mnemonic as a VK_ constant
GTKColorChooserPanel.mnemonic=71
# Can also define GTKColorChooserPanel.dispalyedMnemonicIndex if you
# want an index other than would normally be underlined by
# GTKColorChooserPanel.mnemonic to be underlined. This is only useful
# if GTKColorChooserPanel.nameText defines the mnemonic character more
# than once and you want a character other than the first underlined.

# Text and mnemonics for the spinner. You can also defined a different
# index for the mnemonic via xxxMnemonicIndex, for example
# GTKColorChooserPanel.hueMnemonicIndex=1 would indicate the second
# character of GTKColorChooserPanel.hueText should be underlined to
# represent the mnemonic.
GTKColorChooserPanel.hueText=\uc0c9\uc0c1(H):
GTKColorChooserPanel.hueMnemonic=72

GTKColorChooserPanel.redText=\ube68\uac15(E):
GTKColorChooserPanel.redMnemonic=69

GTKColorChooserPanel.saturationText=\ucc44\ub3c4(S):
GTKColorChooserPanel.saturationMnemonic=83

GTKColorChooserPanel.greenText=\ub179\uc0c9(G):
GTKColorChooserPanel.greenMnemonic=71

GTKColorChooserPanel.valueText=\uac12(V):
GTKColorChooserPanel.valueMnemonic=86

GTKColorChooserPanel.blueText=\ud30c\ub791(B):
GTKColorChooserPanel.blueMnemonic=66

GTKColorChooserPanel.colorNameText=\uc0c9 \uc774\ub984(N):
GTKColorChooserPanel.colorNameMnemonic=78



############ FILE CHOOSER STRINGS #############

FileChooser.acceptAllFileFilterText=\ubaa8\ub4e0 \ud30c\uc77c
FileChooser.newFolderButtonText=\uc0c8 \ud3f4\ub354
FileChooser.newFolderButtonMnemonic=78
FileChooser.newFolderDialogText=\ud3f4\ub354 \uc774\ub984:
FileChooser.newFolderNoDirectoryErrorTitleText=Error
FileChooser.newFolderNoDirectoryErrorText=Error creating directory "{0}": No such file or directory
FileChooser.deleteFileButtonText=\ud30c\uc77c \uc0ad\uc81c
FileChooser.deleteFileButtonMnemonic=76
FileChooser.renameFileButtonText=\ud30c\uc77c \uc774\ub984 \ubc14\uafb8\uae30
FileChooser.renameFileButtonMnemonic=82
FileChooser.cancelButtonText=\ucde8\uc18c
FileChooser.cancelButtonMnemonic=67
FileChooser.saveButtonText=\uc800\uc7a5
FileChooser.saveButtonMnemonic=79
FileChooser.openButtonText=\ud655\uc778
FileChooser.openButtonMnemonic=79
FileChooser.saveDialogTitleText=\uc800\uc7a5
FileChooser.openDialogTitleText=\uc5f4\uae30
FileChooser.pathLabelText=\uc120\ud0dd:
FileChooser.filterLabelText=\ud544\ud130:
FileChooser.pathLabelMnemonic=83
FileChooser.foldersLabelText=\ud3f4\ub354
FileChooser.foldersLabelMnemonic=68
FileChooser.filesLabelText=\ud30c\uc77c
FileChooser.filesLabelMnemonic=70

FileChooser.cancelButtonToolTipText=\ud30c\uc77c \uc120\ud0dd \ub300\ud654 \uc0c1\uc790\ub97c \uc911\ub2e8\ud569\ub2c8\ub2e4.
FileChooser.saveButtonToolTipText=\uc120\ud0dd\ud55c \ud30c\uc77c\uc744 \uc800\uc7a5\ud569\ub2c8\ub2e4.
FileChooser.openButtonToolTipText=\uc120\ud0dd\ud55c \ud30c\uc77c\uc744 \uc5fd\ub2c8\ub2e4.

FileChooser.renameFileDialogText=\ud30c\uc77c "{0}"\uc744 \ub2e4\uc74c\uc73c\ub85c \uc774\ub984 \ubc14\uafb8\uae30
FileChooser.renameFileErrorTitle=\uc624\ub958 
FileChooser.renameFileErrorText="{0}"\uc5d0\uc11c "{1}"\ub85c \uc774\ub984 \ubc14\uafb8\uae30 \uc624\ub958

OptionPane.okButtonMnemonic=79
OptionPane.cancelButtonMnemonic=67
