# 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=Normale
fontStyle_sectionHeading=Intestazione di sezione
fontStyle_subsectionHeading=Intestazione di sottosezione
fontStyle_subSubsectionHeading=Intestazione di sottosezione secondaria
fontStyle_quote=Citazione
fontStyle_codeSample=Esempio di codice

# HTML Block Tags
blockTag_paragraph=Paragrafo
blockTag_heading1=Intestazione 1
blockTag_heading2=Intestazione 2
blockTag_heading3=Intestazione 3
blockTag_heading4=Intestazione 4
blockTag_heading5=Intestazione 5
blockTag_heading6=Intestazione 6
blockTag_address=Indirizzo
blockTag_preformattedText=Testo preformattato

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

# Rich Text Editor Tool Buttons
addHorizontalBarAction_toolTipText=Aggiungi barra orizzontale
addImageAction_toolTipText=Aggiungi immagine
addLineAction_toolTipText=Aggiungi riga
addLinkAction_toolTipText=Aggiungi collegamento
addOrderedListAction_toolTipText=Aggiungi elenco ordinato
addTableAction_toolTipText=Aggiungi tabella
addUnorderedListAction_toolTipText=Aggiungi elenco non ordinato
boldAction_toolTipText=Grassetto
clearContentAction_toolTipText=Cancella il contenuto
copyAction_toolTipText=Copia
cutAction_toolTipText=Taglia
findReplaceAction_toolTipText=Trova/Sostituisci
indentAction_toolTipText=Imposta rientro
italicAction_toolTipText=Corsivo
justifyCenterAction_toolTipText=Centra
justifyFullAction_toolTipText=Giustificato
justifyLeftAction_toolTipText=Allinea a sinistra
justifyRightAction_toolTipText=Allinea a destra
outdentAction_toolTipText=Annulla rientro
pasteAction_toolTipText=Incolla
pastePlainTextAction_toolTipText=Incolla come testo semplice
subscriptAction_toolTipText=Pedice
superscriptAction_toolTipText=Apice
underlineAction_toolTipText=Sottolineato
tidy_clean_text=Eliminazione predefinita
tidy_cleaner_text=Elimina MS HTML
tidy_cleanest_text=Elimina Word 2000 HTML
tidy_clean_toolTipText=Elimina con JTidy utilizzando le opzioni predefinite
tidy_cleaner_toolTipText=Elimina HTML di MS HTML
tidy_cleanest_toolTipText=Elimina Word 2000 HTML
addCodeAction_toolTipText=Inserisci HTML personalizzato (javascript o video)

# Rich Text Editor Comboboxes
fontStyleAction_toolTipText=Imposta stile carattere
blockTagAction_toolTipText=Imposta tag di blocco
fontNameAction_toolTipText=Imposta font
fontNameAction_DefaultFontName=Font predefinito
fontSizeAction_toolTipText=Impostazioni dimensioni carattere

# Rich Text Editor Context Menu Items
cutAction_text=&Taglia
copyAction_text=C&opia
pasteAction_text=&Incolla
pastePlainTextAction_text=Incolla &come testo semplice

# Rich Text Editor Tabs
richTextTab_text=Rich Text
richTextTab_toolTipText=Modifica contenuto in rich text
htmlTab_text=HTML
htmlTab_toolTipText=Modifica contenuto in HTML

# Add Dialogs
addImageDialog_title=Aggiungi immagine
addLinkDialog_title=Aggiungi collegamento
addTableDialog_title=Aggiungi tabella
findReplaceDialog_title=Trova/Sostituisci
urlLabel_text=URL:
summaryLabel_text=Riepilogo:
captionLabel_text=Didascalia:
rowsLabel_text=Righe:
columnsLabel_text=Colonne:
widthLabel_text=Larghezza:
tableStyleLabel_text=Stile:
tableHeaderNone_text=Tabella senza intestazioni
tableHeaderCols_text=Tabella con intestazioni di colonna
tableHeaderRows_text=Tabella con intestazioni di riga
tableHeaderBoth_text=Tabella con intestazioni di colonna e di riga
browseButton_text=Sfoglia...
addCodeDialog_title=Inserisci HTML personalizzato
addCodeDialog_Msg=Inserire l'HTML per il javascript o il video:

# Clear Editor Content Dialog
clearContentDialog_title=Conferma cancellazione contenuto editor
clearContentDialog_text=Cancellare il contenuto di questo editor rich text?

# Find/Replace Dialog
findLabel_text=Trova:
replaceLabel_text=Sostituisci con:
optionsGroup_text=Opzioni
caseSensitiveCheckbox_text=Maiuscole/Minuscole
wholeWordCheckbox_text=Parola intera
directionGroup_text=Direzione
forwardRadioButton_text=In avanti
backwardRadioButton_text=Indietro
findButton_text=Trova
replaceButton_text=Sostituisci
replaceFindButton_text=Sostituisci/Trova
replaceallButton_text=Sostituisci tutto
# taken from org.eclipse.ui.workbench.texteditor
FindReplace_Status_noMatch_label=Stringa non trovata

# Preference Page
maxCharsPerLineLabel_text=Numero massimo di caratteri per riga:
indentHTMLCheckbox_text=Tag HTML indent
indentSizeLabel_text=Dimensioni rientro:
urlDisplayNameLabel_text=Nome visualizzazione URL:


