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

# 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
mergeRadioButton2_text=Unisci il contenuto importato nella libreria dei metodi esistente (unione livello elementi)

# 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}

