#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

# Error Messages
invalidNameError_msg=Il nome ''{0}'' non \u00e8 valido. Il nome dell''elemento del metodo non pu\u00f2 contenere i seguenti caratteri: \\ / : * ? " < > |
objNotFoundError_msg=Impossibile trovare l''oggetto con l''id ''{0}''
loadLibraryError_msg=Rilevati errori durante il caricamento della libreria dei metodi:
loadLibraryError_details=\ \ riga: {0}, colonna: {1}, msg: {2}
restoreResourceError_msg=Impossibile ripristinare la risorsa ''{0}''
FileManager_fileReadOnly=Il file ''{0}'' \u00e8 di sola lettura
ErrMsg_CouldNotDelete=Impossibile eliminare {0}. {1}
renameError_msg=Impossibile rinominare ''{0}'' in ''{1}''
backupError_msg=Impossibile eseguire il backup della risorsa ''{0}''
marker_err_cannotResolveProxy=Impossibile risolvere il proxy {0}
modifyFileError_msg=Impossibile modificare il file ''{0}''
loadResourceError_msg=Impossibile caricare la risorsa ''{0}''
loadResourceErrorWithReason_msg=Impossibile caricare la risorsa ''{0}''. Motivo: {1}
invalidLibraryFileError_msg=File della libreria dei metodi non valido:
fileNotFoundError_msg=Impossibile individuare file libreria dei metodi nello spazio di lavoro ''{0}''
normalizeURIError_msg=Impossibile trovare l''URI normalizzato per ''{0}''
moveError_msg=Impossibile spostare ''{0}'' in ''{1}''. La destinazione esiste gi\u00e0.
modifyReadOnlyFileError_msg=Impossibile modificare file di sola lettura: {0}
moveResourceError_msg=La risorsa ''{0}'' \u00e8 coinvolta in un''operazione di persistenza che non \u00e8 stata eseguita.
modifyFilesError_msg=Impossibile modificare uno o pi\u00f9 file
resourceOutOfSynch_msg=La risorsa non \u00e8 sincronizzata e deve essere ricaricata: {0}

# Progress Messages
loadLibraryTask_name=Caricamento della libreria dei metodi in corso...
moveDataTask_name=Trasferimento dei dati in corso...
saveLibraryTask_name=Salvataggio della libreria dei metodi in corso...
loadResourcesTask_name=Caricamento di tutte le risorse nella memoria in corso...
migrateContentDescriptionsTask_name=Migrazione delle descrizioni dei contenuti dei processi in corso...
fixPresentationNameTask_name=Impostazione in corso del nome di presentazione vuoto/nullo di ogni elemento della suddivisione sul relativo nome...
UnresolvedProxyMarkerManager_couldNotResolveProxy=Impossibile risolvere il proxy ''{0}''
refreshLibraryFilesTask_name=Aggiornamento dei file della libreria nell'area di lavoro
versionMismatch_oldTool=I file selezionati non sono supportati - passare ad una versione pi\u00f9 aggiornata di {0}. 
