#-------------------------------------------------------------------------------
# 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}. \u00c8 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}. \u00c8 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}

