# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 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=UI EPF Composer RCP
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Versione: {0}\n\
\n\
(c) Copyright Eclipse contributors e altri 2000, 2009. Tutti i diritti riservati.\n

# Category
methodCategoryName=Metodo

# Views
welcomeViewName=Benvenuti

# Actions
globalActionSet=Insieme di azioni globale
newAction=&Nuovo
newActionTooltip=Nuovo
openAction=&Apri...
openActionTooltip=Apri
searchAction=&Ricerca...
searchActionTooltip=Ricerca
welcomeAction=&Benvenuti
welcomeActionToolTip=Benvenuti

# Tooltips
shortcut.overview.tooltip=Ritorna alla pagina Panoramica
shortcut.tutorials.tooltip=Ritorna alla pagina Esercitazione
shortcut.firststeps.tooltip=Ritorna alla pagina Primi passi
shortcut.webresources.tooltip=Ritorna alla pagina Risorse Web       

#Action Set
actionSet.description = Azioni barra degli strumenti Sistema della guida
actionSet.label = Sistema della guida
searchAction.label = C&erca guida
searchAction.tooltip = Guida di ricerca
dynamicHelpAction.label = &Guida dinamica 
dynamicHelpAction.tooltip = Guida dinamica

#Activities/Capabilities
activity.general=Importazione/esportazione di risorse e progetti
activity.general.desc=Utilizzare le capacit\u00e0 standard di importazione/esportazione risorse/progetti di Eclipse.
activity.team.cvs=Supporto CVS
activity.team.cvs.desc=Utilizzare CVS (Concurrent Versions System) per gestire le risorse.
activity.team=Supporto team principale
activity.team.desc=Condividere i progetti mediante i sistemi di gestione della configurazione.

activity.cat.general=Generale
activity.cat.general.desc=Utilizzare le capacit\u00e0 standard di Eclipse.
activity.cat.team=Team
activity.cat.team.desc=Utilizzare i sistemi di gestione della configurazione per gestire le risorse.

PreferencePages.Capabilities = Capacit\u00e0
PreferencePages.Capabilities.activityName = &Capacit\u00e0
PreferencePages.Capabilities.categoryName = &Capacit\u00e0
PreferencePages.Capabilities.activityPromptButton = &Richiedi all'abilitazione delle capacit\u00e0
PreferencePages.Capabilities.activityPromptButtonTooltip = Richiedi quando una funzione, utilizzata per la prima volta, richiede l'abilitazione delle capacit\u00e0
PreferencePages.Capabilities.captionMessage = Le capacit\u00e0 permettono di abilitare o disabilitare i vari componenti del prodotto.  Queste capacit\u00e0 vengono raggruppate in base a un insieme di categorie predefinite.
