# 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
#
# 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 prospetto 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
ImportNoSynLib_ConvertMsg=Si desidera convertire la libreria importata in una libreria sincronizzata automaticamente?
ImportSynLibToNoSynLib_Error=L'importazione dei dati della libreria da una libreria sincronizzata automaticamente an una libreria con richiesta di sincronizzazione non \u00e8 supportata.
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 selezionato non pu\u00f2 essere importato. Impossibile trovare il relativo plug-in dipendente ''{0}'' nella libreria dei metodi corrente.
PluginImportingService_MSG6=Il plug-in 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
