#-------------------------------------------------------------------------------
# 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
#
# Message ID Range: IUPE0000E - IUPE0099E
#

# Export Library Configuration Wizard
exportConfigWizard_title=Esporta configurazione libreria
selectExportTypePage_title=Seleziona tipo di esportazione
selectExportTypePage_desc=Selezionare il tipo di configurazione di libreria da esportare.
selectExportTypePage_configLabel_text=Esportare una configurazione di metodo e tutti i relativi plug-in di metodo.
selectExportTypePage_configSpecsLabel_text=Esportare una o pi\u00f9 specifiche di configurazione di metodo.
selectConfigPage_title=Seleziona configurazione metodo
selectConfigPage_desc=Selezionare una configurazione di metodo da esportare. Tutti i plug-in di metodo a cui si fa riferimento nella configurazione selezionata verranno inclusi nell'esportazione.
selectConfigPage_configsLabel_text=Configurazioni di metodo:
selectConfigSpecsPage_title=Seleziona specifiche di configurazione
selectConfigSpecsPage_desc=Selezionare una o pi\u00f9 specifiche di configurazione di metodo da esportare.
selectConfigSpecsPage_configsLabel_text=Configurazioni di metodo:
checkConfigPage_title=Esamina errori di configurazione
checkConfigPage_desc=\u00c8 stata eseguita una verifica dell'integrit\u00e0 sulla configurazione di metodo selezionata. Esaminare il report degli errori ed eseguire le azioni correttive necessarie.
selectDestinationPage_title=Specifica directory di esportazione
selectDestinationPage_desc=Specificare una directory di destinazione in cui memorizzare la configurazione esportata.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Esporta plug-in di metodo
selectPluginsPage_title=Seleziona plug-in di metodo
selectPluginsPage_desc=Selezionare uno o pi\u00f9 plug-in di metodo da esportare.
selectPluginsPage_pluginsLabel_text=Plug-in di metodo:
reviewPluginsPage_title=Esamina dipendenze
reviewPluginsPage_desc=Selezionare ciascun plug-in di metodo per esaminarne le dipendenze. Fare clic su Indietro per selezionare i plug-in dipendenti nel caso in cui debbano essere inclusi nell'esportazione.
reviewPluginsPage_pluginsLabel_text=Plug-in di metodo:
reviewPluginsPage_dependentPluginsLabel_text=Plug-in di metodo dipendenti:
reviewPluginsPage_associatedConfigsLabel_text=Configurazioni di metodo associate:
exportPluginSummaryPage_title=Conferma esportazione
exportPluginSummaryPage_desc=Confermare i plug-in di metodo che verranno esportati.
exportPluginSummaryPage_noPlugin_text=Non \u00e8 stato selezionato alcun plug-in di metodo.
specifyPathPage_title=Specifica directory di esportazione
specifyPathPage_desc=Specificare una directory di esportazione in cui memorizzare i plug-in di metodo esportati.
SavePluginPage_desc=Esportare i plug-in e le configurazioni selezionate nella directory di destinazione specificata.
ExportPluginWizard_title=Errore procedura guidata Esporta plug-in di metodo
ExportPluginError_msg=IUPE0000E: Rilevato errore durante l'esportazione

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Esporta configurazione libreria
exportConfigErrorDialog_msg=IUPE0001E: Impossibile continuare l'esportazione.

# Progress Messages
analyzingConfigTask_name=Analisi della configurazione della libreria in corso...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Esportazione della configurazione in corso...
ConfigurationSpecsExportService_MSG1=Esportazione completata
ExportConfigCheckingPage_summary_1=Verifica dell'integrit\u00e0 della configurazione selezionata in corso...\n
ExportConfigCheckingPage_summary_2=Nessuna configurazione selezionata.\n
ExportConfigCheckingPage_summary_3=Non c'\u00e8 alcun problema nella configurazione selezionata.\n
ExportConfigCheckingPage_summary_4=Nella configurazione selezionata esistono {0} problemi ({1} errori, {2} avvisi, {3} informazioni). \n\u00c8 possibile aprire l''editor di configurazioni e risolvere questi problemi. \nOppure \u00e8 possibile scegliere di ignorare questi problemi e continuare.
ExportConfigCheckingPage_checking=\u00c8 in corso la verifica della configurazione, attendere...
ExportConfigSelectConfigPage_title=Scegli configurazione metodo
DestinationCommonPage_label_browse=Sfoglia...
DestinationCommonPage_label_default_dir=Utilizza directory predefinita
ConfigurationExportService_MSG0=Esportazione della configurazione in corso...
ConfigurationExportService_MSG2=IUPE0002E: Esportazione non riuscita: Errore durante il caricamento della libreria
ConfigurationExportService_MSG4=IUPE0003E: Esportazione non riuscita: Errore durante la copia della libreria
ConfigurationExportService_MSG1=IUPE0004E: Esportazione non riuscita: Errore durante la creazione della chiusura della configurazione della libreria
ConfigurationExportService_MSG9=IUPE0005E: Esportazione non riuscita: Errore durante il salvataggio della libreria
DestinationCommonPage_label_name=Nome:
DestinationCommonPage_label_dir=Directory:
ExportPluginWizard_error=Errore
DestinationCommonPage_title=Titolo predefinito
DestinationCommonPage_desc=Descrizione predefinita:
PluginExportService_MSG0=Esportazione dei plug-in in corso...
PluginExportService_MSG1=Creazione della directory di esportazione in corso...
PluginExportService_MSG2=Copia dei file in corso...
PluginExportService_MSG3=Generazione della libreria e del file di risorse in corso...
PluginExportService_MSG4=Esportazione completata
SaveLibraryPage_title=Esporta plug-in di metodo
SavePluginPage_label_name=Nome di esportazione:
SaveLibraryPage_desc=Esportare i plug-in di metodo selezionati e le configurazioni associate
ExportPluginWizard_MSG1=Analisi della configurazione della libreria in corso...
