# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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

# Plug-in
pluginName=IU creazione EPF
providerName=Eclipse.org

# Category
methodCategoryName=Metodo

# Perspective
authoringPerspectiveName=Creazione
browsingPerspectiveName=Esplorazione

# Views
libraryViewName=Libreria
configurationViewName=Configurazione
contentViewName=Contenuto
configurationErrorLogViewName=Log errori di configurazione

# Editors
methodElementEditorName=Editor di elementi del metodo
configurationEditorName=Editor di configurazioni
processEditorName=Editor di processi
activityDiagramEditorName=Editor di diagrammi attivit\u00e0
activityDetailDiagramEditorName=Editor di diagrammi dettagli attivit\u00e0
workProductDepedencyDiagramEditorName=Editor di diagrammi dipendenze prodotti di lavoro

# Wizards
newMethodLibraryWizardName=Libreria dei metodi
newMethodLibraryWizardDescription=Crea una nuova libreria del metodo.
newMethodPluginWizardName=Plug-in di metodo
newMethodPluginWizardDescription=Crea un nuovo plug-in del metodo
newConfigurationWizardName=Configurazione di metodo
newConfigurationWizardDescription=Crea una nuova configurazione del metodo.

# Cheat Sheets
methodAuthoringCheatSheetsName=Pagine di aiuto relative alla creazione di metodi
CheatsheetGetstartedCategoryText=Introduzione
CheatsheetReusableContentCategoryText=Creazione di contenuto del metodo riutilizzabile
CheatsheetWriteContentCategoryText=Scrittura del contenuto del metodo
CheatsheetProcessesCategoryText=Utilizzo dei processi
CheatsheetNavigateMethodContent=Esplorazione del contenuto del metodo
CheatsheetCreateMethodConfiguration=Creazione di una configurazione di metodo personalizzata
CheatsheetCreateMethodPlugin=Creazione di un plug-in di metodo personalizzato
CheatsheetAddMethodContent=Aggiunta di nuovo contenuto del metodo come ruolo, operazioni, prodotti di lavoro o guida
CheatsheetTailorMethodElements=Personalizzazione di elementi del metodo esistenti (ruoli, operazioni, prodotti di lavoro o guida) mediante un contributo
CheatsheetReplaceMehtodElements=Sostituzione di elementi del metodo esistenti (ruoli, operazioni, prodotti di lavoro o guida)
CheatsheetAddMethodRefOrHyperlink=Aggiunta di un collegamento ipertestuale (URL) o di un riferimento del metodo
CheatsheetApplyCapabilityPattern=Applicazione di un modello di capacit\u00e0
CheatsheetCreateProcess=Creazione di un processo (modello capability o processo di consegna)

# Action Set
authoringActionSet=Creazione
cheatSheetsActionSet=Cheat sheet

# Global Actions
newLibraryAction=Libreria dei &metodi
newLibraryActionTooltip=Crea una nuova libreria dei metodi
newPluginAction=&Plug-in di metodo
newPluginActionTooltip=Crea un nuovo plug-in di metodo
newConfigAction=&Configurazione metodo
newConfigActionTooltip=Crea una nuova configurazione di metodo
openLibraryAction=Libreria dei &metodi
openLibraryActionTooltip=Apri una libreria dei metodi esistente
openConfigAction=&Configurazione metodo
openConfigActionTooltip=Apri una configurazione di metodo esistente
openCheatSheets=&Cheat Sheet...

# Library View Actions
linkWithEditor=Collega a editor
linkWithEditorTooltip=Collega a editor
showPresentationNames=Mostra nomi presentazioni
showPresentationNamesTooltip=Mostra nomi presentazioni

# Configuration View Actions
refreshConfig=Aggiorna
refreshConfigTooltip=Aggiornare la configurazione

# Preference Page
authoringPreferencePage=Creazione
processEditor=Editor di processi
libraryOptions=Opzioni libreria
startupAndShutdown=Avvio e arresto sistema
debug=Debug
modelingOptions=Opzioni di modeling
diagramAppearance=Aspetto diagramma
breakdownElementAttributes=Attributi elemento di interruzione
libraryViewOptions=Opzioni della vista Libreria
activityDiagram=Diagramma attivit\u00e0
validation=Convalida

# Command Handler
selectAll=Seleziona tutto

# Properties View
_UI_ProcessEditor_menu=Processo
_UI_CreateChild_menu_item=&Nuovo elemento child
_UI_CreateSibling_menu_item=N&uovo elemento di pari livello
_UI_ShowPropertiesView_menu_item=Mostra &vista Propriet\u00e0
_UI_RefreshViewer_menu_item=A&ggiorna
_UI_Properties_General=Generale
_UI_Properties_Documentation=Documentazione
_UI_Properties_Guidance=Guida
_UI_Properties_Work_Rollup=Rollup lavoro
_UI_Properties_Team_Rollup=Rollup team
_UI_Properties_WP_Rollup=Rollup prodotto di lavoro
_UI_Properties_Roles=Ruoli
_UI_Properties_WorkProducts=Prodotti di lavoro
_UI_Properties_Steps=Passi
_UI_Properties_Teams=Team

RichTextMarkerTypeName=Problemi HTML
ConfigurationMarkerTypeName=Problemi di configurazione
ExplanationText=Spiegazione

ClearAllValidationItems=Cancella tutti gli elementi di convalida
