###############################################################################
# Copyright (c) 2003, 2004 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 API and implementation
###############################################################################
1=Un progetto con questo nome e questo percorso esiste gi\u00e0.
2=Il progetto EAR specificato "{0}" non \u00e8 un progetto EAR.
3=Il progetto EAR "{0}" dispone di una versione J2EE di {1} non compatibile con la versione del modulo specificata.
4=Il nome del progetto EAR, "{0}", non pu\u00f2 essere uguale al nome del progetto.
5=\u00c8 necessario immettere il nome file {0}.
6={0} non esiste.
7=Si \u00e8 verificato un errore interno.  Per i dettagli, fare riferimento ai file di log.
8=Il nome del progetto non \u00e8 valido.
9=L''archivio di destinazione deve terminare con {0}.
10=L'archivio di destinazione non \u00e8 valido.
11=Il percorso di destinazione \u00e8 di sola lettura.
12=La risorsa {0} esiste gi\u00e0. Per sovrascriverla, selezionare l''opzione "Sovrascrivi file esistente".
13=Il progetto {0} non esiste.
14=Il progetto del connettore non \u00e8 supportato per la preferenza J2EE selezionata. Verificare la preferenza J2EE globale.
15=Immettere un nome per il progetto.
16=Problemi di salvataggio
17=Impossibile completare il salvataggio.  Alcuni file correlati potrebbero gi\u00e0 essere stati salvati.\n\nMotivo
18={0} \u00e8 stato bloccato. Assicurarsi che l''operazione non sia attualmente in esecuzione.
19=extendedRoot \u00e8 null. Verificare che isExtended() restituisca true.
20=Propriet\u00e0 non individuata:
21=Modello nidificato non individuato:
22=Impossibile modificare l'id una volta impostato.
23=L'id non pu\u00f2 essere null.
24=ERRORE:
25=Errore di operazione estesa: {0}
26=Lavoro completato correttamente
27=Si \u00e8 verificata un'eccezione durante l'esecuzione del lavoro.
28=Impossibile risolvere il gruppo:
29=Classe non trovata per l''attributo {0} : {1}, Dichiarazione estensione plugin: {2}
30=Il gruppo di funzioni {0} non contiene binding di modello
31=Il progetto {0} \u00e8 chiuso.
32=Un progetto esiste gi\u00e0 nel file system in: {0}.  Utilizzare "Importazione progetti esistenti nello spazio di lavoro" per creare un progetto in tale ubicazione oppure eliminare il contenuto di {0} dal file system.
