#-------------------------------------------------------------------------------
# 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: IUPE0200E - IUPE0299E
#

# Import Library Configuration Wizard
importConfigWizard_title=Importa configurazione di libreria
selectConfigDirWizardPage_title=Specifica directory di importazione
selectConfigDirWizardPage_text=Specificare la directory che contiene la configurazione di libreria da importare.
reviewChangesWizardPage_title=Esamina modifiche libreria
reviewChangesWizardPage_text=Esaminare le modifiche che verranno apportate alla libreria dei metodi corrente.
selectConfigSpecsWizardPage_title=Seleziona specifiche di configurazione
selectConfigSpecsWizardPage_text=Selezionare una o pi\u00f9 specifiche di configurazione da importare.

# Import Method Plug-ins Wizard
importPluginsWizard_title=Importa plug-in di metodo
selectPluginsDirWizardPage_title=Specifica directory di importazione
selectPluginsDirWizardPage_text=Specificare la directory che contiene i plug-in di metodo da importare.
selectPluginsWizardPage_title=Seleziona plug-in di metodo
selectPluginsWizardPage_text=Selezionare uno o pi\u00f9 plug-in di metodo da importare. Se un plug-in selezionato esiste gi\u00e0 nella libreria dei metodi corrente, verificare le differenze tra le versioni.
importPluginsWizard_ERR_Import_plugin=Importazione del plug-in non riuscita

ConfigurationImportService_MSG0=Convalida della configurazione di libreria selezionata in corso...
ConfigurationImportService_MSG1=La directory specificata non contiene una configurazione valida.
ConfigurationImportService_MSG3=Importazione della configurazione di metodo in corso...
ConfigurationImportService_MSG2=Impossibile importare la libreria attualmente aperta all'interno di se stessa.
ImportConfigurationWizard_MSG1=Importazione della configurazione di metodo in corso...
ImportConfigurationWizard_ERR_Import_configuration=Importazione della configurazione non riuscita

FileModifyChecker_Checkout_failed_title=Controllo fallito
FileModifyChecker_Checkout_failed_msg=Alcuni file non sono stati controllati, ripetere l'operazione?

ImportConfigReportPage_title=Importazione del report di configurazione
ImportPluginWizard_readonly=IUPE0201E: La libreria \u00e8 di sola lettura.
ImportPluginWizard_MSG1=Importazione del plug-in di metodo in corso...
ImportPluginWizard_error=Errore
ImportPluginWizard_warn_existing_plugins=IUPE0200E: I seguenti plug-in selezionati esistono gi\u00e0 e se si reimportano gli stessi plug-in, quelli esistenti verranno sovrascritti:\n\n {0} \n\nContinuare?
ImportPluginWizard_confirm_continue=\n\nContinuare?
ImportPluginWizard_warn_circular_plugins=Rilevati riferimenti circolari tra i seguenti plug-in

SelectConfigsToImport_label1=I seguenti elementi verranno importati:
ImportConfigurationWizard_error=Errore
SelectImportConfigurationSource_MSG1=Analisi
SelectConfigSpecsToImportPage_title2=Seleziona specifiche della configurazione da importare
SelectImportPluginSource_not_used=not_used
SelectImportPluginSource_no_path=La directory specificata non esiste.
SelectImportPluginSource_no_dir=Nessuna directory specificata
SelectPluginsToImport_label_plugins=Plug-in disponibili nella directory di importazione:
SelectPluginsToImport_label_author=Autore:
SelectPluginsToImport_label_version=Versione:
SelectPluginsToImport_label_desc=Breve descrizione:
ImportConfigurationWizard_readonly=IUPE0201E: La libreria \u00e8 di sola lettura.
PluginImportingService_MSG0=Convalida dei plug-in selezionati in corso...
PluginImportingService_MSG1=Il percorso specificato non contiene un plug-in di metodo valido.
PluginImportingService_MSG3=Importazione del plug-in di metodo in corso...
PluginImportingService_MSG5=Il plug-in di metodo selezionato non pu\u00f2 essere importato. Impossibile trovare il relativo plug-in dipendente ''{0}'' nella libreria dei metodi corrente.
PluginImportingService_MSG6=Il plug-in di metodo selezionato non pu\u00f2 essere importato. Impossibile trovare un plug-in dipendente nella libreria dei metodi corrente.
DiffReportViewer_content=Contenuto
DiffReportViewer_in_import=In importazione
SelectPluginsToImport_MSG1=Analisi dei file in corso...
DiffReportLabelProvider_yes=S\u00ec
SelectPluginsToImport_error=Errore
DiffReportViewer_in_lib=Nella libreria
DiffReportViewer_status=Stato
SelectPluginsToImport_libraryPluginExists=Plug-in selezionato trovato nella libreria corrente
SelectPluginsToImport_libraryPluginNotExists=Plug-in selezionato non trovato nella libreria corrente
SelectConfigSpecsToImportPage_libraryConfigSpecExists=Configurazione trovata nella libreria corrente
SelectConfigSpecsToImportPage_configSpecNoSelection=Nessuna specifica della configurazione selezionata.
SelectConfigSpecsToImportPage_configSpecDataLabel=Configurazione selezionata nella directory di importazione
SelectConfigSpecsToImportPage_label_configs=Specifiche della configurazione disponibili nella directory di importazione:
SelectImportConfigurationSource_not_used=not_used
SelectConfigSpecsToImportPage_label_desc=Breve descrizione:
SelectImportConfigurationSource_no_path=Il percorso specificato non esiste.
SelectPluginsToImport_pluginNoSelection=Nessun plug-in selezionato.
SelectImportConfigurationSource_no_dir=Nessuna directory specificata
SelectImportConfigurationSource_plugin_readonly=Il plug-in {0} \u00e8 di sola lettura\n
SelectImportConfigurationSource_plugin_locked=IUPE0203E: Il plug-in {0} \u00e8 bloccato\n
SelectImportConfigurationSource_error_not_updatable=Alcuni plug-in della libreria sono bloccati o di sola lettura.\n Sbloccare i plug-in e verificare che i file siano aggiornabili.
SelectPluginsToImport_pluginDataLabel=Plug-in selezionato nella directory di importazione
DiffReportViewer_type=Tipo di contenuto
SelectConfigSpecsToImportPage_libraryConfigSpecNotExists=Configurazione selezionata non trovata nella libreria corrente.
versionMismatch_oldData=IUPE0204E: i file specificati sono stati esportati da una precedente versione ({0}) di {1}. \u00c8 necessario esportare i file utilizzando la versione corrente di {1}.
versionMismatch_oldData_unknown=IUPE0205E: i file specificati sono stati esportati da una precedente versione di {0}. \u00c8 necessario esportare i file utilizzando la versione corrente di {0}.
versionMismatch_oldTool=IUPE0206E: i file specificati sono stati esportati da una versione pi\u00f9 aggiornata ({0}) di {1}. \u00c8 necessario aggiornare {1} per importare i file.  
versionMismatch_oldTool_unknown=IUPE0207E: impossibile aprire il file specificato. \u00c8 necessario aggiornare {0} per importare i file.
ConfigurationImportService_handleToolVersion_error=IUPE0208E: Impossibile aggiornare i plug-in.
optionGroup_text=Importa opzione
checkBaseRadioButton_text=Verifica plug-in di base
ignoreRemoveRadioButton_text=Ignora ed elimina riferimenti non risolti
