# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Metal 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.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.newFolderActionLabelText=Carpeta nueva
FileChooser.listViewButtonToolTipText=Lista
FileChooser.listViewButtonAccessibleName=Lista
FileChooser.listViewActionLabelText=Lista
FileChooser.detailsViewButtonToolTipText=Detalles
FileChooser.detailsViewButtonAccessibleName=Detalles
FileChooser.detailsViewActionLabelText=Detalles
FileChooser.refreshActionLabelText=Renovar
FileChooser.viewMenuLabelText=Ver
FileChooser.fileNameHeaderText=Nombre
FileChooser.fileSizeHeaderText=Tama\u00f1o
FileChooser.fileTypeHeaderText=Tipo
FileChooser.fileDateHeaderText=Modificado
FileChooser.fileAttrHeaderText=Atributos

############ Used by MetalTitlePane if rendering window decorations############
# All mnemonics are KeyEvent.VK_XXX as integers
MetalTitlePane.restoreTitle=Restaurar
MetalTitlePane.restoreMnemonic=82
MetalTitlePane.iconifyTitle=Minimizar
MetalTitlePane.iconifyMnemonic=77
MetalTitlePane.maximizeTitle=Maximizar
MetalTitlePane.maximizeMnemonic=88
MetalTitlePane.closeTitle=Cerrar
MetalTitlePane.closeMnemonic=67
