# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Synth 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.
#
# @author Steve Wilson


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

FileChooser.lookInLabelText=Buscar en:
FileChooser.saveInLabelText=Guardar en:
FileChooser.fileNameLabelText=Nombre de archivo:
FileChooser.folderNameLabelText=Folder name:
FileChooser.filesOfTypeLabelText=Archivos de tipo:
FileChooser.upFolderToolTipText=Subir un nivel
FileChooser.upFolderAccessibleName=Arriba
FileChooser.homeFolderToolTipText=Principal
FileChooser.homeFolderAccessibleName=Principal
FileChooser.newFolderToolTipText=Crear carpeta nueva
FileChooser.newFolderAccessibleName=Carpeta nueva
FileChooser.listViewButtonToolTipText=Lista
FileChooser.listViewButtonAccessibleName=Lista
FileChooser.detailsViewButtonToolTipText=Detalles
FileChooser.detailsViewButtonAccessibleName=Detalles
FileChooser.fileNameHeaderText=Nombre
FileChooser.fileSizeHeaderText=Tama\u00f1o
FileChooser.fileTypeHeaderText=Tipo
FileChooser.fileDateHeaderText=Modificado
FileChooser.fileAttrHeaderText=Atributos
