# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Windows Look and Feel.
# Currently, the following components need this for support:
#
#    FileChooser
#
# 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.
#
# Refer to the note in basic.properties for a description as to what
# the mnemonics correspond to and how to calculate them.
#
# @author Steve Wilson


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

FileChooser.lookInLabel.textAndMnemonic=\u67E5\u8A62(&I):
FileChooser.saveInLabel.textAndMnemonic=\u5132\u5B58\u65BC: 
FileChooser.fileNameLabel.textAndMnemonic=\u6A94\u6848\u540D\u7A31(&N):
FileChooser.folderNameLabel.textAndMnemonic=\u8CC7\u6599\u593E\u540D\u7A31(&N):
FileChooser.filesOfTypeLabel.textAndMnemonic=\u6A94\u6848\u985E\u578B(&T):
FileChooser.upFolderToolTip.textAndMnemonic=\u5F80\u4E0A\u4E00\u5C64
FileChooser.upFolderAccessibleName=\u5F80\u4E0A
FileChooser.homeFolderToolTip.textAndMnemonic=\u4E3B\u76EE\u9304
FileChooser.homeFolderAccessibleName=\u4E3B\u76EE\u9304
FileChooser.newFolderToolTip.textAndMnemonic=\u5EFA\u7ACB\u65B0\u8CC7\u6599\u593E
FileChooser.newFolderAccessibleName=\u65B0\u8CC7\u6599\u593E
FileChooser.newFolderActionLabel.textAndMnemonic=\u65B0\u8CC7\u6599\u593E
FileChooser.listViewButtonToolTip.textAndMnemonic=\u6E05\u55AE
FileChooser.listViewButtonAccessibleName=\u6E05\u55AE
FileChooser.listViewActionLabel.textAndMnemonic=\u6E05\u55AE
FileChooser.detailsViewButtonToolTip.textAndMnemonic=\u8A73\u7D30\u8CC7\u8A0A
FileChooser.detailsViewButtonAccessibleName=\u8A73\u7D30\u8CC7\u8A0A
FileChooser.viewMenuButtonToolTipText = \u6AA2\u8996\u529F\u80FD\u8868
FileChooser.viewMenuButtonAccessibleName = \u6AA2\u8996\u529F\u80FD\u8868
FileChooser.detailsViewActionLabel.textAndMnemonic=\u8A73\u7D30\u8CC7\u8A0A
FileChooser.refreshActionLabel.textAndMnemonic=\u91CD\u65B0\u6574\u7406
FileChooser.viewMenuLabel.textAndMnemonic=\u6AA2\u8996
FileChooser.fileNameHeader.textAndMnemonic=\u540D\u7A31
FileChooser.fileSizeHeader.textAndMnemonic=\u5927\u5C0F
FileChooser.fileTypeHeader.textAndMnemonic=\u985E\u578B
FileChooser.fileDateHeader.textAndMnemonic=\u4FEE\u6539\u65E5\u671F
FileChooser.fileAttrHeader.textAndMnemonic=\u5C6C\u6027
