# 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.rgbNameText=RGB
#   ColorChooser.rgbMnemonic=71
#   ColorChooser.rgbDisplayedMnemonicIndex=1
# 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
#              -
# 71 corresponds to the decimal value of the VK constant defined
# in java/awt/KeyEvent.java. VK_G is defined as:
#
#    public static final int VK_G              = 0x47;
#
# 0x47 is a hex number and needs to be converted to decimal.
# A simple way to calculate this for a-z is to add 64 to the index of
# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
# for 'a' is 65, 'b' is 66...
#
# The xxDisplayedMnemonicIndex is used to indicate the index of the
# character that should be underlined in the String, with 0
# corresponding to the first character in the String.
#
# 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.fileDescriptionText=\u666e\u901a\u7684\u6587\u4ef6
FileChooser.directoryDescriptionText=\u76ee\u5f55
FileChooser.newFolderErrorText=\u521b\u5efa\u65b0\u7684\u6587\u4ef6\u5939\u65f6\u53d1\u751f\u9519\u8bef
FileChooser.newFolderErrorSeparator= : 
FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
FileChooser.renameErrorTitleText=Error Renaming File or Folder
FileChooser.renameErrorText=Cannot rename {0}
FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
  Specify a different file name.
FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4ef6
FileChooser.cancelButtonText=\u53d6\u6d88
FileChooser.cancelButtonMnemonic=67
FileChooser.saveButtonText=\u4fdd\u5b58
FileChooser.saveButtonMnemonic=83
FileChooser.openButtonText=\u6253\u5f00
FileChooser.openButtonMnemonic=79
FileChooser.saveDialogTitleText=\u4fdd\u5b58
FileChooser.openDialogTitleText=\u6253\u5f00
FileChooser.updateButtonText=\u66f4\u65b0(U)
FileChooser.updateButtonMnemonic=85
FileChooser.helpButtonText=\u5e2e\u52a9(H)
FileChooser.helpButtonMnemonic=72
FileChooser.directoryOpenButtonText=\u6253\u5f00(O)
FileChooser.directoryOpenButtonMnemonic=79

# 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=\u65b0\u5efa\u6587\u4ef6\u5939
FileChooser.win32.newFolder.subsequent=\u65b0\u5efa\u6587\u4ef6\u5939 ({0})
FileChooser.other.newFolder=\u65b0\u5efa\u6587\u4ef6\u5939
FileChooser.other.newFolder.subsequent=\u65b0\u5efa\u6587\u4ef6\u5939.{0}


## file chooser tooltips ###
FileChooser.cancelButtonToolTipText=\u4e2d\u6b62\u6587\u4ef6\u9009\u62e9\u5668\u5bf9\u8bdd\u6846
FileChooser.saveButtonToolTipText=\u4fdd\u5b58\u9009\u62e9\u7684\u6587\u4ef6
FileChooser.openButtonToolTipText=\u6253\u5f00\u9009\u62e9\u7684\u6587\u4ef6
FileChooser.updateButtonToolTipText=\u66f4\u65b0\u76ee\u5f55\u5217\u8868
FileChooser.helpButtonToolTipText=\u6587\u4ef6\u9009\u62e9\u5668\u5e2e\u52a9
FileChooser.directoryOpenButtonToolTipText=\u6253\u5f00\u9009\u62e9\u7684\u76ee\u5f55

############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=\u9884\u89c8
ColorChooser.okText=\u786e\u5b9a
ColorChooser.cancelText=\u53d6\u6d88
ColorChooser.resetText=\u91cd\u8bbe(R)
# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
ColorChooser.resetMnemonic=82
ColorChooser.sampleText=\u6837\u54c1\u6587\u672c  \u6837\u54c1\u6587\u672c
ColorChooser.swatchesNameText=\u6837\u54c1(S)
ColorChooser.swatchesMnemonic=83
ColorChooser.swatchesDisplayedMnemonicIndex=3
ColorChooser.swatchesRecentText=\u6700\u8fd1:
ColorChooser.hsbNameText=HSB
# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
# constant, and an index into the text to render the mnemonic as. The
# mnemonic is xxxMnemonic and the index of the character to underline is
# xxxDisplayedMnemonicIndex.
ColorChooser.hsbMnemonic=72
ColorChooser.hsbDisplayedMnemonicIndex=0
ColorChooser.hsbHueText=H
ColorChooser.hsbSaturationText=S
ColorChooser.hsbBrightnessText=B
ColorChooser.hsbRedText=R
ColorChooser.hsbGreenText=G
ColorChooser.hsbBlueText=B
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbDisplayedMnemonicIndex=1
ColorChooser.rgbRedText=\u7ea2
ColorChooser.rgbRedMnemonic=68
ColorChooser.rgbGreenText=\u7eff
ColorChooser.rgbGreenMnemonic=78
ColorChooser.rgbBlueText=\u84dd
ColorChooser.rgbBlueMnemonic=66

############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
# We only define mnemonics for YES/NO, but for completeness you can
# define mnemonics for any of the buttons.
OptionPane.yesButtonText=\u662f(Y)
OptionPane.yesButtonMnemonic=89
OptionPane.noButtonText=\u5426(N)
OptionPane.noButtonMnemonic=78
OptionPane.okButtonText=\u786e\u5b9a
OptionPane.okButtonMnemonic=0
OptionPane.cancelButtonText=\u53d6\u6d88
OptionPane.cancelButtonMnemonic=0
OptionPane.titleText=\u9009\u62e9\u4e00\u4e2a\u9009\u9879
# 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.inputDialogTitle=\u8f93\u5165
# 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.messageDialogTitle=\u6d88\u606f

############ Printing Dialog Strings ############
PrintingDialog.titleProgressText=\u6253\u5370
PrintingDialog.titleAbortingText=\u6253\u5370 (\u6b63\u5728\u7ec8\u6b62)

PrintingDialog.contentInitialText=\u6b63\u5728\u8fdb\u884c\u6253\u5370...

# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
PrintingDialog.contentProgressText=\u5df2\u6253\u5370\u9875 {0}...

PrintingDialog.contentAbortingText=\u6b63\u5728\u7ec8\u6b62\u6253\u5370...

PrintingDialog.abortButtonText=\u7ec8\u6b62(A)
PrintingDialog.abortButtonMnemonic=65
PrintingDialog.abortButtonDisplayedMnemonicIndex=3
PrintingDialog.abortButtonToolTipText=\u7ec8\u6b62\u6253\u5370

############ Internal Frame Strings ############
InternalFrame.iconButtonToolTip=\u6700\u5c0f\u5316
InternalFrame.maxButtonToolTip=\u6700\u5927\u5316
InternalFrame.restoreButtonToolTip=\u6062\u590d
InternalFrame.closeButtonToolTip=\u5173\u95ed

############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButtonText=\u6062\u590d
InternalFrameTitlePane.moveButtonText=\u79fb\u52a8
InternalFrameTitlePane.sizeButtonText=\u5927\u5c0f
InternalFrameTitlePane.minimizeButtonText=\u6700\u5c0f\u5316
InternalFrameTitlePane.maximizeButtonText=\u6700\u5927\u5316
InternalFrameTitlePane.closeButtonText=\u5173\u95ed

############ Text strings #############
# Used for html forms
FormView.submitButtonText=\u63d0\u4ea4\u67e5\u8be2
FormView.resetButtonText=\u91cd\u8bbe
FormView.browseFileButtonText=\u6d4f\u89c8...

############ Abstract Document Strings ############
AbstractDocument.styleChangeText=\u98ce\u683c\u53d8\u5316
AbstractDocument.additionText=\u589e\u52a0
AbstractDocument.deletionText=\u5220\u9664
AbstractDocument.undoText=\u64a4\u6d88
AbstractDocument.redoText=\u91cd\u505a

############ Abstract Button Strings ############
AbstractButton.clickText=\u5355\u51fb

############ Abstract Undoable Edit Strings ############
AbstractUndoableEdit.undoText=\u64a4\u6d88
AbstractUndoableEdit.redoText=\u91cd\u505a

############ Combo Box Strings ############
ComboBox.togglePopupText=\u5207\u6362\u952e\u5f39\u51fa

############ Progress Monitor Strings ############
ProgressMonitor.progressText=\u8fdb\u5ea6...

############ Split Pane Strings ############
SplitPane.leftButtonText=\u5de6\u952e
SplitPane.rightButtonText=\u53f3\u952e
# Used for Isindex
IsindexView.prompt=\u8fd9\u662f\u53ef\u641c\u7d22\u7d22\u5f15\u3002\u8bf7\u952e\u5165\u5173\u952e\u8bcd\uff1a

############ InternalFrameTitlePane Strings ############
InternalFrameTitlePane.iconifyButtonAccessibleName=\u56fe\u6807\u5316
InternalFrameTitlePane.maximizeButtonAccessibleName=\u6700\u5927\u5316
InternalFrameTitlePane.closeButtonAccessibleName=\u5173\u95ed
