# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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 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

# Wizards
newMethodLibraryWizardName=Method Library
newMethodLibraryWizardDescription=Create a new method library.
newMethodPluginWizardName=Method Plug-in
newMethodPluginWizardDescription=Create a new method plug-in.
newConfigurationWizardName=Method Configuration
newConfigurationWizardDescription=Create a new method configuration.

# 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
authoringPreferencePage=Authoring
processEditor=Process Editor
libraryOptions=Library Options
startupAndShutdown=Startup and Shutdown
debug=Debug
modelingOptions=Modeling Options
diagramAppearance=Diagram Appearance
breakdownElementAttributes=Breakdown Element Attributes
libraryViewOptions=Library View Options
activityDiagram=Activity Diagram

# 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
_UI_Properties_WP_Rollup=Work Product Rollup
_UI_Properties_Roles=Roles
_UI_Properties_WorkProducts=Work Products
_UI_Properties_Steps=Steps
_UI_Properties_Teams=Teams

RichTextMarkerTypeName=HTML Problems
ConfigurationMarkerTypeName=Configuration Problems
ExplanationText=Explanation

