#-------------------------------------------------------------------------------
# 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:
#

# Import XML Wizard
importXMLWizard_title=Importa XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Specifica file di importazione
selectXMLFilePage_desc=Specificare il file XML in cui si trova il contenuto della libreria dei metodi da importare e selezionare l'operazione di importazione appropriata da eseguire.
fileLabel_text=File XML:
browseButton_text=Sfoglia...
optionGroup_text=Unisci opzione
optionGroup1_text=Verifica opzione plug-in di base
overwriteRadioButton_text=Sovrascrivi il contenuto della libreria dei metodi esistente con il contenuto importato
mergeRadioButton_text=Unisci il contenuto importato nella libreria dei metodi esistente

# Progress Messages
importingXML_text=Importazione del contenuto della libreria XML nella libreria dei metodi corrente in corso...

# Import XML Error Dialog
review_log_files=L''operazione di importazione \u00e8 stata completata. Per eventuali errori, rivedere i file di log nella cartella \n ''{0}''.
importXMLError_msg=IUPM0000E: Impossibile continuare l'operazione di importazione.
importXMLError_reason=IUPM0009E: La Libreria dei metodi corrente \u00e8 di sola lettura.\n\nAssicurarsi che ''{0}'' sia scrivibile oppure creare una nuova libreria dei metodi e provare di nuovo.

# Error Messages
invalidXMLFile_error=Il file XML specificato non \u00e8 valido.
versionMismatch_oldData=IUPM0010E: il file XML specificato \u00e8 stato esportato da una precedente versione ({0}) di {1}. E'' necessario esportare i file utilizzando la versione corrente di {1}.
versionMismatch_oldData_unknown=IUPM0011E: il file XML specificato \u00e8 stato esportato da una precedente versione di {0}. E'' necessario esportare i file utilizzando la versione corrente di {0}.
versionMismatch_oldTool=IUPM0012E: il file XML specificato \u00e8 stato esportato da una versione pi\u00f9 aggiornata ({0}) di {1}. \u00c8 necessario aggiornare {1} per importare il file.  
versionMismatch_oldTool_unknown=IUPM0013E: Non \u00e8 possibile aprire il file XML specificato. \u00c8 necessario aggiornare {0} per importare il file.  

importXMLService_element_not_handled=Elemento non gestito: {0}
importXMLService_element_without_id=Elemento senza ID: {0}
importXMLService_import_failed=Importazione non riuscita: {0}
importXMLService_missing_plugin=Plug-in richiesto mancante {0}
importXMLService_error_missing_plugins=Plug-in richiesti mancanti. Controllare il file di log per maggiori dettagli

library_error_no_eclass=Errore durante la creazione di ContentCategory: impossibile richiamare EClass per {0}
library_no_package=Impossibile trovare il pacchetto di origine dell''oggetto {0}
library_error_create_element=Errore durante la creazione dell''elemento: {0}
library_object_string=oggetto {0}, funzione {1}
library_error_set_attribute_2=Errore durante l''impostazione dell''attributo: valore funzione attributo non valido {0}
library_error_set_attribute=Errore durante l''impostazione dell''attributo per l''oggetto {0}, la funzione {1} e il valore {2}
library_error_set_attribute_3=Impossibile impostare l''attributo per l''oggetto {0}, la funzione {1} e il valore {2}
library_error_set_reference=Errore durante l''impostazione del riferimento per la funzione {0}: nessun elemento con id {1}
library_error_set_reference_2=Errore durante l''impostazione del riferimento per l''oggetto {0}, la funzione {1} e il valore {2}

