# NLS_ENCODING=UNICODE
###############################################################################
# Copyright (c) 2009 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# IBM Corporation - initial implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR

################################################################################
# BEGIN NO TRANSLATION
###############################################################################
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
fontNameAction_CSS_Default=arial, helvetica, sans-serif
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
fontNameAction_CSS_Default_Mozilla=arial,helvetica,sans-serif
################################################################################
# END NO TRANSLATION
################################################################################



# Font Style Names
fontStyle_normal=Normal
fontStyle_sectionHeading=Cabecera de la secci\u00f3n
fontStyle_subsectionHeading=Cabecera de la subsecci\u00f3n
fontStyle_subSubsectionHeading=Cabecera de la sub-subsecci\u00f3n
fontStyle_quote=Comilla
fontStyle_codeSample=Ejemplo de c\u00f3digo

# HTML Block Tags
blockTag_paragraph=P\u00e1rrafo
blockTag_heading1=Cabecera 1
blockTag_heading2=Cabecera 2
blockTag_heading3=Cabecera 3
blockTag_heading4=Cabecera 4
blockTag_heading5=Cabecera 5
blockTag_heading6=Cabecera 6
blockTag_address=Direcci\u00f3n
blockTag_preformattedText=Texto preformateado

# HTML Font Names
fontName_default=Predeterminado
fontName_arial=Arial
fontName_courierNew=Courier New
fontName_timesNewRoman=Times New Roman
fontName_verdana=Verdana

# Rich Text Editor Tool Buttons
addHorizontalBarAction_toolTipText=A\u00f1adir barra horizontal
addImageAction_toolTipText=A\u00f1adir imagen
addLineAction_toolTipText=A\u00f1adir l\u00ednea
addLinkAction_toolTipText=A\u00f1adir enlace
addOrderedListAction_toolTipText=A\u00f1adir lista ordenada
addTableAction_toolTipText=A\u00f1adir tabla
addUnorderedListAction_toolTipText=A\u00f1adir lista desordenada
boldAction_toolTipText=Negrita
clearContentAction_toolTipText=Borrar contenido
copyAction_toolTipText=Copiar
cutAction_toolTipText=Cortar
findReplaceAction_toolTipText=Buscar/Reemplazar
indentAction_toolTipText=Sangrar
italicAction_toolTipText=Cursiva
justifyCenterAction_toolTipText=Centrar
justifyFullAction_toolTipText=Justificar
justifyLeftAction_toolTipText=Alinear a la izquierda
justifyRightAction_toolTipText=Alinear a la derecha
outdentAction_toolTipText=Eliminar sangr\u00eda
pasteAction_toolTipText=Pegar
pastePlainTextAction_toolTipText=Pegar como texto sin formato
subscriptAction_toolTipText=Sub\u00edndice
superscriptAction_toolTipText=Super\u00edndice
underlineAction_toolTipText=Subrayado
tidy_clean_text=Limpieza predeterminada
tidy_cleaner_text=Limpiar HTML de MS
tidy_cleanest_text=Limpiar HTML de Word 2000
tidy_clean_toolTipText=Limpiar con JTidy utilizando opciones predeterminadas
tidy_cleaner_toolTipText=Limpiar HTML de MS HTML
tidy_cleanest_toolTipText=Limpiar HTML de Word 2000
addCodeAction_toolTipText=Insertar html personalizado (javascript o v\u00eddeo)

# Rich Text Editor Comboboxes
fontStyleAction_toolTipText=Establecer estilo de font
blockTagAction_toolTipText=Establecer etiqueta de bloque
fontNameAction_toolTipText=Establecer font
fontNameAction_DefaultFontName=Font predeterminado
fontSizeAction_toolTipText=Establecer tama\u00f1o de font

# Rich Text Editor Context Menu Items
cutAction_text=&Cortar
copyAction_text=C&opiar
pasteAction_text=&Pegar
pastePlainTextAction_text=Pegar &como texto sin formato

# Rich Text Editor Tabs
richTextTab_text=Texto enriquecido
richTextTab_toolTipText=Editar el contenido en texto enriquecido
htmlTab_text=HTML
htmlTab_toolTipText=Editar el contenido en HTML

# Add Dialogs
addImageDialog_title=A\u00f1adir imagen
addLinkDialog_title=A\u00f1adir enlace
addTableDialog_title=A\u00f1adir tabla
findReplaceDialog_title=Buscar/Reemplazar
urlLabel_text=URL:
summaryLabel_text=Resumen:
captionLabel_text=T\u00edtulo:
rowsLabel_text=Filas:
columnsLabel_text=Columnas:
widthLabel_text=Ancho:
tableStyleLabel_text=Estilo:
tableHeaderNone_text=Tabla sin cabeceras
tableHeaderCols_text=Tabla con cabeceras de columna
tableHeaderRows_text=Tabla con cabecera de fila
tableHeaderBoth_text=Tabla con cabeceras de columna y de fila
browseButton_text=Examinar...
addCodeDialog_title=Insertar Html personalizado
addCodeDialog_Msg=Entrar html para javascript o v\u00eddeo:

# Clear Editor Content Dialog
clearContentDialog_title=Confirmaci\u00f3n de Borrar contenido del editor
clearContentDialog_text=\u00bfEst\u00e1 seguro de que desea borrar el contenido de este editor de texto enriquecido?

# Find/Replace Dialog
findLabel_text=Buscar:
replaceLabel_text=Reemplazar por:
optionsGroup_text=Opciones
caseSensitiveCheckbox_text=Sensible a may\u00fasculas y min\u00fasculas
wholeWordCheckbox_text=Palabra completa
directionGroup_text=Direcci\u00f3n
forwardRadioButton_text=Hacia delante
backwardRadioButton_text=Hacia atr\u00e1s
findButton_text=Buscar
replaceButton_text=Reemplazar
replaceFindButton_text=Reemplazar/Buscar
replaceallButton_text=Reemplazar todos
# taken from org.eclipse.ui.workbench.texteditor
FindReplace_Status_noMatch_label=Serie no encontrada

# Preference Page
maxCharsPerLineLabel_text=M\u00e1ximo de caracteres por l\u00ednea:
indentHTMLCheckbox_text=Sangrar etiquetas HTML
indentSizeLabel_text=Tama\u00f1o de sangr\u00eda:
urlDisplayNameLabel_text=Nombre de visualizaci\u00f3n de URL:


