# 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

# Method Element Names (Singular)
activity_text=Attivit\u00e0
artifact_text=Artefatto
capabilityPattern_text=Modello di capacit\u00e0
checklist_text=Elenco di controllo
checkItem_text=Voce elenco di controllo
compositeRole_text=Ruolo composito
concept_text=Concetto
contentPackage_text=Pacchetto del contenuto
customCategory_text=Categoria personalizzata
deliverable_text=Componente distribuibile
deliveryProcess_text=Processo di consegna
descriptor_text=Descrittore
discipline_text=Disciplina
disciplineGrouping_text=Raggruppamento discipline
domain_text=Dominio
estimate_text=Valutazione
estimatingMetric_text=Metrica di valutazione
estimationConsiderations_text=Considerazioni sulla valutazione
example_text=Esempio
guidance_text=Guida
guideline_text=Linea guida
iteration_text=Iterazione
methodConfiguration_text=Configurazione di metodo
methodContent_text=Contenuto di metodo
methodLibrary_text=Libreria dei metodi
methodPackage_text=Pacchetto di metodo
methodPlugin_text=Plug-in di metodo
milestone_text=Punto cardine
outcome_text=Risultato
phase_text=Fase
practice_text=Procedura
process_text=Processo
processContribution_text=Processo differenziale
processFamily_text=Famiglia processo
processPackage_text=Pacchetto processo
report_text=Report
reusableAsset_text=Risorsa riutilizzabile
roadmap_text=Roadmap
roleDescriptor_text=Descrittore di ruoli
role_text=Ruolo
roleSet_text=Serie di ruoli
roleSetGrouping_text=Raggruppamento serie di ruoli
standardCategory_text=Categoria standard
step_text=Passo
supportingMaterial_text=Materiale di supporto
task_text=Operazione
taskDescriptor_text=Descrittore di operazioni
teamProfile_text=Profilo team
template_text=Modello
termDefinition_text=Definizione termine
tool_text=Strumento
toolMentor_text=Guida al tool
whitepaper_text=Whitepaper
workProduct_text=Prodotto di lavoro
workProductDescriptor_text=Descrittore di prodotti di lavoro
workProductElement_text=Elemento prodotto di lavoro
workProductType_text=Tipo di prodotto di lavoro

# Method Element Names (Plural)
activity_text_plural=Attivit\u00e0
artifact_text_plural=Artefatti
capabilityPattern_text_plural=Modelli di capacit\u00e0
checklist_text_plural=Elenchi di controllo
checkItem_text_plural=Elementi di controllo
compositeRole_text_plural=Ruoli compositi
concept_text_plural=Concetti
contentPackage_text_plural=Pacchetti del contenuto
customCategory_text_plural=Categorie personalizzate
deliverable_text_plural=Componenti distribuibili
deliveryProcess_text_plural=Processi di consegna
descriptor_text_plural=Descrittori
discipline_text_plural=Discipline
disciplineGrouping_text_plural=Raggruppamenti discipline
domain_text_plural=Domini
estimate_text_plural=Valutazioni
estimatingMetric_text_plural=Metriche di valutazione
estimationConsiderations_text_plural=Considerazioni sulla valutazione
example_text_plural=Esempi
guidance_text_plural=Guide
guideline_text_plural=Linee guida
iteration_text_plural=Iterazioni
methodConfiguration_text_plural=Configurazioni di metodo
methodContent_text_plural=Contenuti di metodo
methodLibrary_text_plural=Librerie dei metodi
methodPackage_text_plural=Pacchetti metodo
methodPlugin_text_plural=Plug-in del metodo
milestone_text_plural=Punto cardine
outcome_text_plural=Risultati
phase_text_plural=Fasi
practice_text_plural=Pratiche
process_text_plural=Processi
processContribution_text_plural=Processi differenziali
processFamily_text_plural=Famiglie processi
processPackage_text_plural=Pacchetti processo
report_text_plural=Report
reusableAsset_text_plural=Risorse riutilizzabili
roadmap_text_plural=Roadmap
roleDescriptor_text_plural=Descrittori di ruoli
role_text_plural=Ruoli
roleSet_text_plural=Serie di ruoli
roleSetGrouping_text_plural=Raggruppamenti serie di ruoli
standardCategory_text_plural=Categorie standard
step_text_plural=Passi
supportingMaterial_text_plural=Materiale di supporto
task_text_plural=Operazioni
taskDescriptor_text_plural=Descrittori di operazioni
teamProfile_text_plural=Profili team
template_text_plural=Modelli
termDefinition_text_plural=Definizioni termini
tool_text_plural=Strumenti
toolMentor_text_plural=Guide dei tool
whitepaper_text_plural=Whitepaper
workProduct_text_plural=Prodotti di lavoro
workProductDescriptor_text_plural=Descrittori di prodotti di lavoro
workProductElement_text_plural=Elementi prodotto di lavoro
workProductType_text_plural=Tipi di prodotto di lavoro

# Application title.
application_title={0} - {1}

# Open Method Library Wizard
openLibraryWizard_title=Apri libreria dei metodi
openLibraryMainWizardPage_title=Specifica un percorso che contiene una libreria del metodo
openLibraryMainWizardPage_title_2=Seleziona libreria dei metodi
openLibraryMainWizardPage_text={0} memorizza metodi e processi in una cartella chiamata \nlibreria dei metodi. Selezionare una cartella libreria dei metodi per questa sessione.
pathLabel_text=Percorso:
nameLabel_text=Nome:
uriLabel_text=URI:
openUnlistedLibraryCheckbox_text=Aprire una libreria del metodo non elencata precedentemente
libraryTypeLabel_text=Tipo:
libraryLabel_text=Libreria:
browseButton_text=Sfoglia...
promptForLibraryCheckbox_text=Utilizza questa come predefinita e non visualizzare pi\u00f9 questo messaggio.
openLibraryDialog_newLibrary_text=Non esiste alcuna libreria di metodi in ''{0}''.\nUna nuova libreria dei metodi verr\u00e0 creata e aperta nella directory specificata.\n\nFare clic su OK per procedere oppure Annulla per specificare un altro percorso della libreria dei metodi.

# Select Method Library Folder Dialog
selectLibraryFolderDialog_title=Seleziona libreria dei metodi
selectLibraryFolderDialog_text=Selezionare una cartella libreria dei metodi.

# Open Library Progress Message
openingLibraryTask_name=Apertura della libreria dei metodi in corso...

# Open Method Library Error Dialog
openLibraryError_msg=IUPL0301E: Impossibile creare la libreria del metodo.
openLibraryInternlError_reason=Si \u00e8 verificato un errore interno.
openLibraryError_reason1=Il percorso della libreria dei metodi specificata ''{0}'' non \u00e8 valido.
openLibraryError_reason2=Una libreria dei metodi esiste gi\u00e0 in ''{0}''.
openLibraryError_reason3=Impossibile creare la cartella della libreria dei metodi specificata ''{0}''.
openLibraryError_reason4=La cartella della libreria del metodo specificata \u00e8 un plug-in o una cartella di esportazione della specifica di configurazione.
openLibraryError_advice=Selezionare OK per specificare un altro percorso della libreria del metodo.

# Open Method Library Error Messages
invalidLibraryPath_msg=IUPL0302E: Impossibile aprire la libreria del metodo specificata.
invalidLibraryPath_reason=La cartella della libreria dei metodi selezionata non \u00e8 valida, non esiste oppure non si dispone delle autorizzazioni appropriate per accedervi.\n\nFare clic su OK per selezionare un'altra cartella di libreria dei metodi.

# Read-only Project File Error Dialog
readOnlyProjectFile_text=IUPL0304E: ''{0}'' \u00e8 in sola lettura. Per continuare, \u00e8 necessario renderlo scrivibile.
retryButton_text=Riprova
cancelButton_text=Annulla

# Version Mismatch Dialog
versionMismatchDialog_text=IUPL305E: impossibile aprire la libreria selezionata. \u00c8 necessario aggiornare {0} alla versione {1} o superiore per aprire questa libreria.
versionMismatchDialog_text_unknown=IUPL306E: Impossibile aprire la libreria selezionata. \u00c8 necessario aggiornare {0} a una versione superiore per aprire questa libreria.

# Upgrade Method Library Dialog
upgradeLibraryDialog_title=Aggiorna libreria dei metodi
upgradeLibraryDialog_text=La libreria selezionata deve essere aggiornata alla nuova struttura di libreria.\n\nContinuare l'aggiornamento?
upgradingLibraryTask_name=Aggiornamento della libreria dei metodi in corso...

# Upgrade Library Error Dialog
upgradeLibraryError_msg=IUPL0306E: Impossibile aggiornare la libreria del metodo. Controllare il file di log per ulteriori dettagli.

# Switch Configuration Dialog
switchConfigDialog_title=Cambia configurazione
switchConfigDialog_text=Passare dalla configurazione corrente a quella predefinita, ''{0}'', associata al processo selezionato?
	
# Configuration Combo
currentConfigLabel_text=Configurazione corrente:
selectConfigLabel_text=Seleziona configurazione

# Delete Files Confirmation Message
deleteFilesConfirmation_msg=Il percorso specificato ''{0}'' esiste gi\u00e0. Tutti i file nella cartella verranno eliminati. Procedere?

# Paths/Files Error Messages
deleteFilesError_reason=Il percorso ''{0}'' contiene uno o pi\u00f9 file che non possono essere eliminati.\n\nSelezionare un altro percorso e provare di nuovo.
createPathError_reason=Impossibile creare il percorso ''{0}''.\n\nSelezionare un altro percorso e provare di nuovo.
invalidPath_msg=Il percorso specificato non \u00e8 valido.
overrideCurrentLibraryError_msg0=Non \u00e8 possibile esportare in un percorso contenente una libreria del metodo corrente, selezionare un altro percorso e riprovare.

# Backup Library Dialog
backupLibraryDialog_title=Esegui backup libreria
backupLibraryDialog_text=Si consiglia di eseguire il backup della libreria corrente prima di procedere con l'aggiornamento.\n\nFare clic su OK per creare una copia di backup della libreria nella directory specificata. Fare clic su Ignora per continuare senza creare il backup.
backingUpLibraryTask_name=Backup dei file della libreria in corso...

# Copy Library Dialog
copyLibraryDialog_title=Copia libreria
copyLibraryDialog_text_readOnlyLib=La libreria che si sta aprendo \u00e8 la libreria predefinita fornita con ilcomposer.  Se si desidera modificarla, si consiglia di creare una copia di lavoro di questa libreria.\n\nImmettere un percorso e un nome per la nuova libreria e fare clic su "Copia" per creare una copia di lavoro.\n\nFare clic su "Ignora" per continuare a modificare la libreria predefinita nel percorso corrente. La funzione di modifica per la libreria predefinita \u00e8 limitata dalle autorizzazioni di accesso applicate dalla propria piattaforma.
copyLibraryTask_name=Esecuzione di una copia dei file di libreria in corso ...
copyLibraryDialog_copyButton_text=Copia

# Path Selection Dialog
pathSelectionError_msg=Impossibile creare la directory
okButton_text=OK
skipButton_text=Ignora

# Process Editor preferences
alwaysButton_text=Sempre
neverButton_text=Mai
promptButton_text=Richiedi

# Add Link Dialog
linkToURL_name=URL
linkToFile_name=Il file
elementLink_name=Elemento del metodo
elementLinkWithType_name=Elemento del metodo con prefisso del tipo
elementLinkWithUserText_name=Elemento del metodo con testo personalizzato

# Convert Activity Type Dialog
convertActivityDialog_title=Converti tipo di attivit\u00e0
convertActivityDialog_text=Selezionare il tipo di attivit\u00e0 di destinazione.
unsupportedActivityType_msg=IUPL0307E: Questa attivit\u00e0 non pu\u00f2 essere convertita in un altro tipo.
unsupportedActivityType_reason=Non c''\u00e8 un tipo di attivit\u00e0 compatibile per {0}.

# Select Process Wizard Page
selectProcessWizardPage_title=Seleziona un processo
selectProcessWizardPage_text=Selezionare un modello di capacit\u00e0 oppure un processo di distribuzione da esportare.
processesLabel_text=Processi:
briefDescriptionLabel_text=Breve descrizione:

# Export Process Wizard Error Message.
noOpenLibraryWarning_msg=IUPL0308E: Nessuna libreria del metodo \u00e8 al momento aperta. Fare clic su Annulla, aprire una libreria del metodo o crearne una nuova ed eseguire di nuovo questa procedura guidata. 

# Moved from Authoring UI plug-in to avoid Authoring UI dependency
errorDialog_title=Errore
MethodElementDeleteAction_deleteconfirm_text=Eliminare ''{0}''?
confirmDeleteDialog_title=Conferma eliminazione
confirmDeleteDialog_msg=Eliminare ''{0}''?
confirmDeleteDialog_msgWithReference=Eliminare ''{0}''?\n\nI seguenti elementi contengono riferimenti ad elementi che devono essere eliminati: {1}
ProcessDeleteAction_deletecofirm_text=In tal modo, l''editor corrente verr\u00e0 salvato e la modifica sar\u00e0 permanente. Eliminare ''{0}''?

# Save Method Library Dialog
saveLibraryDialog_title=Salva libreria dei metodi
saveLibraryDialog_text=La libreria dei metodi corrente \u00e8 stata modificata. Salvare le modifiche?

# Save Method Library Error Messages
saveLibraryError_msg=IUPL0308E: Impossibile salvare la libreria del metodo.
error_reason=Si \u00e8 verificato un errore.\n\nFare clic su Dettagli per ulteriori informazioni.

# ElementTreeContentProvider Strings
elementTCProvider_methodContent=Contenuto di metodo
elementTCProvider_contentPackages=Pacchetti del contenuto
elementTCProvider_standardCategories=Categorie standard
elementTCProvider_disciplines=Discipline
elementTCProvider_domains=Domini
elementTCProvider_workProductTypes=Tipi di prodotto di lavoro
elementTCProvider_roleSets=Serie di ruoli
elementTCProvider_tools=Strumenti
elementTCProvider_customCategories=Categorie personalizzate
elementTCProvider_processes=Processi
elementTCProvider_capabilityPatterns=Modelli di capacit\u00e0
elementTCProvider_deliveryProcesses=Processi di consegna

