# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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

# Publish Method Configuration Wizard
publishConfigWizard_title=Pubblica configurazione metodo

# Select Method Configuration Wizard Page
selectConfigWizardPage_title=Seleziona configurazione metodo
selectConfigWizardPage_text=Selezionare una configurazione del metodo che contiene il contenuto del metodo ed i processi che si desidera pubblicare.
configLabel_text=Configurazione del metodo:

# Select Method Configuration Content Wizard Page
selectContentWizardPage_title=Selezionare il contenuto di configurazione del metodo
selectContentWizardPage_text=Selezionare il contenuto di configurazione del metodo da pubblicare. \u00c8 possibile pubblicare l'intera configurazione o solo pochi processi selezionati nella configurazione.
publishConfigRadioButton_text=Pubblicare l'intera configurazione
publishProcessesRadioButton_text=Pubblicare i processi selezionati:
includeBaseProcessesCheckboxLabel_text=Pubblicare i processi di base di riferimento

# Select Publishing Options Wizard Page
selectPublishingOptionsWizardPage_title=Seleziona opzioni di pubblicazione
selectPublishingOptionsWizardPage_text=Selezionare le opzioni di pubblicazione. Queste opzioni verranno utilizzate per personalizzare l'aspetto del sito Web pubblicato.
titleAndLinksGroup_text=Titolo e collegamenti
titleLabel_text=Titolo:
aboutHTMLLabel_text=Informazioni sul contenuto:
feedbackURLLabel_text=URL feedback:
glossaryAndIndexGroup_text=Glossario e indice
publishGlossaryLabel_text=Pubblica glossario
publishIndexLabel_text=Pubblica indice
lookAndFeelGroup_text=Aspetto
bannerImageLabel_text=Immagine banner:
validationGroup_text=Convalida
checkExternalLinksLabel_text=Controlla collegamenti ipertestuali esterni
convertBrokenLinksLabel_text=Converti collegamenti ipertestuali danneggiati in testo semplice
diagramGroup_text=Diagrammi
publishActivityDetailDiagramsLabel_text=Pubblica diagrammi dettaglio attivit\u00e0 che non sono stati creati manualmente
publishExtendedActivityDiagramsLabel_text=Pubblicare i diagrammi di attivit\u00e0 per le estensioni attivit\u00e0 non modificate
layoutGroup_text=Layout
publishLightWeightTreeLabel_text=Mostra sottocartelle della relazione nelle strutture di navigazione
publishExtraDescriptorInfoLabel_text=Includi contenuto del metodo nelle pagine del descrittore
fulfillDescriptorSlotByContentCheckbox_text=Mostra tutti i prodotti di lavoro evasi nell'elemento dello slot del prodotto di lavoro corrispondente
publishEmptyCategoriesLabel_text=Pubblicare le categorie senza elementi categorizzati
publishWebSiteGroup_text=Sito Web pubblicato
browsingLayoutGroup_text=Selezione layout
wpSlotDpRuleGroup_text=Regole di evasione descrittore slot del prodotto di lavoro nel processo
showRelatedDescriptors_text=Pubblica utilizzo processo ai descrittori correlati nelle pagine dei ruoli, delle attivit\u00e0 e dei prodotti di lavoro
showRelatedLinks_text=Mostra elementi correlati per ruoli, attivit\u00e0 e prodotti di lavoro nelle strutture di navigazione
showRelatedDescriptors_option_text=Mostra tutte le ricorrenze indirette (verdi) nei modelli estesi
showDescriptorsInNavigationTree_text=Mostra i descrittori di operazioni nelle strutture di navigazione
selectDefaultActivityTab_text=Scheda predefinita per le pagine di attivit\u00e0:

# Select Destination Wizard Page
selectDestinationWizardPage_title=Seleziona directory di destinazione e formato sito Web
selectDestinationWizardPage_text=Selezionare la directory di destinazione e il formato del sito Web pubblicato.
dirLabel_text=Directory:
webAppGroup_text=Formato sito Web
staticWebSiteRadioButton_text=Sito Web statico
dynamicWebAppRadioButton_text=L'applicazione Web EE Java impacchettata in un file WAR (richiede il contenitore servlet di richiamo Java Servlet 2.3 o superiore)
includeSearchCheckbox_text=Includi funzione di ricerca
webApplicationNameLabel_text=Nome applicazione Web:

destinationDirectoryGroup_text=Directory di destinazione
pathLabel_text=Percorso:
useDefaultPathCheckbox_text=Utilizza percorso predefinito
useDefaultFeedbackLabel_text=Utilizza URL feedback predefinito

includeSearchesLabel_text=Includi funzione di ricerca
clientSideSearchRadioButton_text= Ricerca lato client (richiede supporto applet Java nel browser)
serverSideSearchRadioButton_text= Ricerca lato server (richiede contenitore per il servlet)
generateWARFileLabel_text=Genera file WAR (Web ARchive)

useAppletCheckbox_text=Supporta personalizzazione viste funzionalit\u00e0 di ricerca (necessario supporto applet Java nel browser)

siteCustomizationWizardPage_title=Personalizza sito Web
siteCustomizationWizardPage_text=Personalizza aspetto sito Web
themeAndSkinGroup_text=Tema e skin
showBannerCheckbox_text=Mostra banner
selectSkinLabel_text=Seleziona skin:

# FIXME! Should these be warning messages?
# Information Message
invalidViewsInfo_msg=Le seguenti viste nella configurazione ''{0}'' non verranno pubblicate:
invalidViewContributorInfo_msg={0}: La vista \u00e8 un contributor
invalidViewSameViewInfo_msg={0}: Questa vista \u00e8 un duplicato di un''altra vista

capabilityPatterns_text=Modelli di capacit\u00e0
deliveryProcesses_text=Processi di consegna

# Publishing Preference Page
preferencePage_defaultPath_text=Percorso predefinito:

# Role Diagram Preference Page
elementSpacingGroup_text=Spaziatura tra gli elementi dell'attivit\u00e0 e del prodotto di lavoro
tasksHorizonalSpacingLabel_text=Spaziatura orizzontale:
tasksVerticalSpacingLabel_text=Spaziatura verticale:
elementTextLabelGroup_text=Etichette elemento
maxLineOfTextLabel_text=Numero massimo di righe del testo:

# Role Diagram Preference Page Error Messages
invalidHorizonalSpacingError_msg=La spaziatura orizzontale deve essere un numero intero con un valore che va da {0} a {1}.
invalidVerticalSpacingError_msg=La spaziatura verticale deve essere un numero intero che va da {0} a {1}.
invalidTextLinesError_msg=Il numero delle righe di testo pu\u00f2 essere un numero intero che va da {0} a {1}.

# Confirmation Dialogs
publishConfigDialog_title=Pubblica configurazione metodo
confirmPathDialog_text=Il percorso di destinazione \u00e8 stato risolto in ''{0}''. Procedere?
overwriteDialog_text=Il percorso di destinazione ''{0}'' esiste gi\u00e0. Tutti i file nella cartella verranno eliminati. Procedere?
cancelPublishConfig_msg=L'operazione di pubblicazione \u00e8 stata annullata.

# Error Dialogs
previewConfigError_title=Anteprima configurazione metodo pubblicata
viewReportError_title=Visualizza report di pubblicazione

# Error Messages
missingViewError_msg=IUPP0100E: La configurazione selezionata non contiene un vista valida. Modificare la configurazione e aggiungere una vista oppure selezionare un'altra configurazione.
cannotPublishError_msg=IUPP0101E: Impossibile pubblicare la configurazione selezionata.
invalidPathError_msg=IUPP0102E: Il percorso di destinazione \u00e8 vuoto oppure non \u00e8 valido.
invalidPathCharsError_msg=IUPP0103E: Il percorso di destinazione non pu\u00f2 contenere i seguenti caratteri: \\ # * ? " < > | ! % /
publishConfigError_msg=IUPP0104E: La configurazione selezionata non \u00e8 stata pubblicata correttamente.
previewConfigError_msg=IUPP0105E: Impossibile aprire un browser HTML per visualizzare l'anteprima della configurazione pubblicata.
viewReportError_msg=IUPP0106E: Impossibile aprire un browser HTML per visualizzare il report di pubblicazione.
webAppNameError_msg=IUPP0107E: \u00c8 necessario specificare il nome dell'applicazione Web.
webAppNameCharsError_msg=IUPP0108E: Il nome dell'applicazione Web non pu\u00f2 contenere i seguenti caratteri: \\ # * ? " < > | ! % /
invalidAboutPathError_msg=IUPP0109E: Il percorso non \u00e8 valido.
invalidAboutPathCharsError_msg=IUPP0110E: Il percorso non pu\u00f2 contenere questi caratteri: # * ? " < > | ! % /
missingProcessError_msg=IUPP0111E: La configurazione selezionata non ha alcun processo selezionato per la pubblicazione tra le opzioni di pubblicazione memorizzate. Modificare la configurazione e aggiungere i processi da pubblicare oppure selezionare un'altra configurazione.

# Error Reasons & Recommended Actions
publishConfigError_reason=Fare clic su Dettagli per ulteriori informazioni.
deleteFilesError_reason=Il percorso di destinazione ''{0}'' contiene file che non possono essere eliminati.\n\nChiudere questa finestra di dialogo e specificare un altro percorso.
createDirError_reason=Impossibile creare il percorso di destinazione ''{0}''.\n\nChiudere questa finestra di dialogo e specificare un altro percorso.
openBrowserError_reason=Impossibile individuare o trovare il browser HTML predefinito su questo sistema.\n\nChiudere questa finestra di dialogo e aprire manualmente il file ''{0}'' con un browser HTML.
