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

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version: {1}\n\
Build Label: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2007. 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.
