#-------------------------------------------------------------------------------
# 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
#
# 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...
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=url esterno di riferimento: {0}
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
