#-------------------------------------------------------------------------------
# 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=EPF - Creazione IU
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=Cheat sheet relativi 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 all'editor
linkWithEditorTooltip=Collega all'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

# 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

