#-------------------------------------------------------------------------------
# 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=EPF Composer RCP UI
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2009. All Rights Reserved.\n

# Category
methodCategoryName=Method

# Views
welcomeViewName=Welcome

# Actions
globalActionSet=Global Action Set
newAction=&New
newActionTooltip=New
openAction=&Open...
openActionTooltip=Open
searchAction=&Search...
searchActionTooltip=Search
welcomeAction=&Welcome
welcomeActionToolTip=Welcome

# Tooltips
shortcut.overview.tooltip=Return to Overview page
shortcut.tutorials.tooltip=Return to Tutorial page
shortcut.firststeps.tooltip=Return to First Steps page
shortcut.webresources.tooltip=Return to Web Resources page       

#Action Set
actionSet.description = Help System Toolbar Actions
actionSet.label = Help System
searchAction.label = S&earch Help
searchAction.tooltip = Search Help
dynamicHelpAction.label = &Dynamic Help 
dynamicHelpAction.tooltip = Dynamic Help

#Activities/Capabilities
activity.general=Import and Export Projects and Resources
activity.general.desc=Use the standard Eclipse Import/Export Project/Resources capabilities.
activity.team.cvs=CVS Support
activity.team.cvs.desc=Use the Concurrent Versions System (CVS) to manage resources.
activity.team=Core Team Support
activity.team.desc=Share projects using configuration management systems.

activity.cat.general=General
activity.cat.general.desc=Use the standard Eclipse capabilities.
activity.cat.team=Team
activity.cat.team.desc=Use configuration management systems to manage resources.

PreferencePages.Capabilities = Capabilities
PreferencePages.Capabilities.activityName = &Capabilities
PreferencePages.Capabilities.categoryName = &Capabilities
PreferencePages.Capabilities.activityPromptButton = &Prompt when enabling capabilities
PreferencePages.Capabilities.activityPromptButtonTooltip = Prompt when a feature is first used that requires enablement of capabilities
PreferencePages.Capabilities.captionMessage = Capabilities allow you to enable or disable various product components.  These capabilities are grouped according to a set of predefined categories.
