#-------------------------------------------------------------------------------
# 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: IUPP0000E - IUPP0099E
#

# Progress Messages
publishingConfigurationTask_name=Pubblicazione della configurazione in corso...
initializingDirTask_name=Inizializzazione della directory di destinazione in corso...
copyingFilesTask_name=Copia dei file in corso...
generatingBookmarksTask_name=Generazione dei segnalibri in corso...
generatingBookmarkTask_name=Generazione del segnalibro ''{0}'' in corso...
generatingBookmarkIndexTask_name=Generazione dell'indice del segnalibro in corso...
publishingLinkedElementTask_name=Pubblicazione degli elementi di metodo: {0} pubblicati, {1} restanti
publishingElementTask_name=Pubblicazione dell''elemento di metodo: {0}:{1}
generatingGlossaryTask_name=Generazione del glossario in corso...
generatingSearchIndexTask_name=Generazione dell'indice di ricerca in corso...
generatingWARFileTask_name=Generazione file WAR in corso...
buildingProcessClosureTask_name=Creazione della chiusura del processo in corso...
buildingElementClosureTask_name=Creazione dell''elemento di chiusura per ''{0}'' in corso...
loadLibraryTask_name=Caricamento del contenuto della libreria in corso...

# Error Messages logged in the Publishing Report
publishElementError_msg=IUPP0000E: Errore durante la pubblicazione dell''elemento: {0}
serverError_msg=IUPP0001E: Nessun dato restituito dal server.
invalidHttpResponseError_msg=IUPP0002E: Risposta non valida da http://{0}:{1}:{2}

# Warning Messages logged in the Publishing Report
invalidElementWarning_msg=IUPP0003W: L'elemento non \u00e8 stato pubblicato in quanto non \u00e8 un elemento valido della configurazione.
invalidMethodElementWarning_msg=IUPP0004W: L''elemento non \u00e8 stato pubblicato in quanto non \u00e8 un elemento di metodo: {0}
copyFileWarning_msg=IUPP0005W: Impossibile copiare il file da ''{0}'' in ''{1}''.
missingIconFileWarning_msg=IUPP0006W: Il file icona del nodo ''{0}'' non esiste.
missingIconNameWarning_msg=IUPP0007W: Impossibile recuperare il nome dell'icona del nodo.
externalUrl_msg={0} mini-secondi che fanno riferimento all''URL esterno: {1}
discaredCategoryWarning_msg=Elemento categoria contenuto vuoto non pubblicato.

# Error Details
createSearchIndexError_msg=IUPP0008E: Il file dell'indice di ricerca non \u00e8 stato creato.

# Process Tree Nodes
referenceWorkflowsNode_text=Flussi di lavoro di riferimento
taskNode_text=Operazioni
primarilyPerformsNode_text=Esegue principalmente
additionallyPerformsNode_text=Esegue anche
performingRolesNode_text=Ruoli esecutivi
inputWorkProductsNode_text=Prodotti di lavoro input
outputWorkProductsNode_text=Prodotti di lavoro output
responsibleForNode_text=Responsabile di
modifiesNode_text=Modifica
responsibleRoleNode_text=Ruolo responsabile
containingWorkProductNode_text=Prodotto di lavoro da includere
containedWorkProductsNode_text=Prodotti di lavoro contenuti
guidanceNode_text=Guida
inputToNode_text=Input in
outputFromNode_text=Output di

# HTML Title for Index Page
indexLabel_text=Indice
