#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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 Authoring UI
providerName=Eclipse.org

# Category
methodCategoryName=Method

# Perspective
authoringPerspectiveName=Authoring
browsingPerspectiveName=Browsing

# Views
libraryViewName=Library
configurationViewName=Configuration
contentViewName=Content
configurationErrorLogViewName=Configuration Error Log

# Editors
methodElementEditorName=Method Element Editor
configurationEditorName=Configuration Editor
processEditorName=Process Editor
activityDiagramEditorName=Activity Diagram Editor
activityDetailDiagramEditorName=Activity Detail Diagram Editor
workProductDepedencyDiagramEditorName=Work Product Dependency Diagram Editor

# Cheat Sheets
methodAuthoringCheatSheetsName=Method Authoring Cheat Sheets
CheatsheetGetstartedCategoryText=Getting Started
CheatsheetReusableContentCategoryText=Create Reusable Method Content
CheatsheetWriteContentCategoryText=Write Method Content
CheatsheetProcessesCategoryText=Work with Processes
CheatsheetNavigateMethodContent=Navigate Method Content
CheatsheetCreateMethodConfiguration=Create your own Method Configuration
CheatsheetCreateMethodPlugin=Create your own Method Plug-in
CheatsheetAddMethodContent=Add new Method Content such as Roles, Tasks, Work Products, or Guidance
CheatsheetTailorMethodElements=Tailor existing Method Elements (Roles, Tasks, Work Products or Guidance) Using Contribution
CheatsheetReplaceMehtodElements=Replace existing Method Elements (Roles, Tasks, Work Products or Guidance)
CheatsheetAddMethodRefOrHyperlink=Add a Method Reference or Hyperlink (URL)
CheatsheetApplyCapabilityPattern=Apply a Capability Pattern
CheatsheetCreateProcess=Create a Process (Capability Pattern or Delivery Process)

# Action Set
authoringActionSet=Authoring
cheatSheetsActionSet=Cheat Sheets

# Global Actions
newLibraryAction=Method &Library
newLibraryActionTooltip=Create a new Method Library
newPluginAction=Method &Plug-in
newPluginActionTooltip=Create a new Method Plug-in
newConfigAction=Method &Configuration
newConfigActionTooltip=Create a new Method Configuration
openLibraryAction=Method &Library
openLibraryActionTooltip=Open an existing Method Library
openConfigAction=Method &Configuration
openConfigActionTooltip=Open an existing Method Configuration
openCheatSheets=Cheat Sheets...

# Library View Actions
linkWithEditor=Link with Editor
linkWithEditorTooltip=Link with Editor
showPresentationNames=Show Presentation Names
showPresentationNamesTooltip=Show Presentation Names

# Configuration View Actions
refreshConfig=Refresh
refreshConfigTooltip=Refresh Configuration

# Preference Page
methodAuthoringPage=Method Authoring
processEditor=Process Editor
libraryOptions=Library Options
diagram=Diagram
startupAndShutdown=Startup and Shutdown
debug=Debug

# Command Handler
selectAll=Select All

# Properties View
_UI_ProcessEditor_menu=Process
_UI_CreateChild_menu_item=&New Child
_UI_CreateSibling_menu_item=N&ew Sibling
_UI_ShowPropertiesView_menu_item=Show Properties &View
_UI_RefreshViewer_menu_item=Re&fresh
_UI_Properties_General=General
_UI_Properties_Documentation=Documentation
_UI_Properties_Guidance=Guidance
_UI_Properties_Work_Rollup=Work Rollup
_UI_Properties_Team_Rollup=Team Rollup
## The following value of string should be "Work Product Rollup". But
## due to limitation/bug in Eclipse WTP, it's been truncated to 
## "Work Prod Rollup". So during translation, please take this into consideration.
_UI_Properties_WP_Rollup=Work Prod Rollup
_UI_Properties_Roles=Roles
_UI_Properties_WorkProducts=Work Products
_UI_Properties_Steps=Steps
_UI_Properties_Teams=Teams
