###############################################################################
# Copyright (c) 2001, 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
###############################################################################
Could_not_find_root_object_ERROR_=IWAE0074E Impossibile trovare l''oggetto radice nella risorsa: {0}
An_error_occurred_while_sa_ERROR_=IWAE0075E Errore durante il salvataggio.
Cannot_run_J2EEUIWorkingCo_ERROR_=IWAE0076E Impossibile eseguire l'operazione J2EEUIWorkingCopyManager poich\u00e9 la struttura dello spazio di lavoro \u00e8 bloccata.
Unable_to_save_read-only_f_ERROR_=IWAE0077E Impossibile salvare il file di sola lettura: {0}
The_following_resources_ne_UI_=Le seguenti risorse devono essere salvate ma sono attualmente condivise. Si desidera salvarle ora?

