#-------------------------------------------------------------------------------
# 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
# The UI text in the XSL stylesheets.

#
# begin element type text section
# user can customize the type text before publishing
#
activityText=Activity
artifactText=Artifact
artifactDescriptorText=Artifact Descriptor
capabilityPatternText=Capability Pattern
checklistText=Checklist
compositeRoleText=Composite Role
conceptText=Concept
customCategoryText=Custom Category
deliverableText=Deliverable
deliverableDescriptorText=Deliverable Descriptor
deliveryProcessText=Delivery Process
disciplineText=Discipline
disciplineGroupingText=Discipline Grouping
domainText=Domain
estimationConsiderationsText=Estimation Considerations
exampleText=Example
guidelineText=Guideline
iterationText=Iteration
milestoneText=Milestone
outcomeText=Outcome
outcomeDescriptorText=Outcome Descriptor
phaseText=Phase
practiceText=Practice
reportText=Report
reusableAssetText=Reusable Asset
roadmapText=Roadmap
roleText=Role
roleDescriptorText=Role Descriptor
roleSetText=Role Set
roleSetGroupingText=Role Set Grouping
supportingMaterialText=Supporting Material
taskText=Task
taskDescriptorText=Task Descriptor
teamProfileText=Team Profile
templateText=Template
termDefinitionText=Term Definition
toolText=Tool
toolMentorText=Tool Mentor
whitepaperText=Whitepaper
workProductDescriptorText=Work Product Descriptor
workProductTypeText=Work Product Kind
workProductSlotText=Work Product Slot

#
# end element type text section
#

#
# other layout text below
#
additionalInfoText=Additional Information
additionalPerformerText=Additional Performers
aggregatesText=Aggregates
alternativesText=Alternatives
applicationText=Application

assetsText=Assets
assignmentApproachesText=Assignment Approaches
assistingText=Assisting
attachedFilesText=Attached Files
backgroundText=Background
briefOutlineText=Brief Outline
categoriesText=Categories
checkItemsText=Check Items
checklistsText=Checklists
collapseAllText=Collapse All Check Items

conceptsText=Concepts
containedArtifactsText=Contained Artifacts
containerArtifactText=Container Artifact
contentElementsText=Categorized Elements
contentReferencesText=Content References

deliverablePropertiesText=Deliverable Properties
deliveredPartsText=Deliverable Parts
deliveredWorkProductsText=Delivered Work Products
dependentText=Dependent Work Products
descriptionText=Description
descriptorsText=Descriptors

disciplinesText=Disciplines
subdisciplinesText=Subdisciplines

domainsText=Domains
examplesText=Examples
expandAllText=Expand All Check Items
extendsText=Extends
externalText=External
externalDescriptionText=External Description
goalsText=Goals
guidelinesText=Guidelines
illustrationsText=Illustrations	
impactOfNotHavingText=Impact of not having
impactingText=Impacting Work Products
inputsText=Inputs
inputToText=Input To
itemsText=Items
keyConsiderationsText=Key Considerations
levelsOfAdoptionText=Levels of Adoption
mandatoryText=Mandatory
mainText=Main
mainDescriptionText=Main Description
mainResponsibleText=Main Responsible
methodText=Method Work Product
modifiedByText=Modified By
moreInfoText=More Information
notationText=Notation
optionalText=Optional

outputFromText=Output From
outputsText=Outputs
packagingInstructionsText=Packaging Instructions
packagingGuidanceText=Packaging Guidance
performingRolesText=Performing Roles
primaryPerformerText=Primary Performer
problemText=Why adopt this practice
propertiesText=Properties
purposeText=Purpose
reasonsForNotNeedingText=Reasons for not needing
referenceWorkflowsText=Reference Workflows
relatedElementsText=Related Elements
relationshipsText=Relationships
reportsText=Reports
representationOptionsText=Representation Options
responsibleText=Responsible
responsibleForText=Responsible for
reusableAssetsText=Reusable Assets

rolesText=Roles
roleSetsText=Role Sets
skillsText=Skills
staffingText=Staffing
stepsText=Steps
subcategoriesText=Sub-Categories	
subdomainsText=Subdomains
subPracticesText=Sub-Practices
superTeamText=Super-Team Profile
supportingMaterialsText=Supporting Materials
subteamsText=Sub-Teams Profiles
synonymsText=Synonyms
tailoringText=Tailoring

tasksText=Tasks
tbsText=Team Allocation

teamRolesText=Team Profile Roles
techniquesText=Guidelines
templatesText=Templates
toolMentorsText=Tool Mentors

usageText=Usage
wbsText=Work Breakdown Structure
whitepapersText=Whitepapers
workProductsText=Work Products
workProductTypesText=Work Product Kinds
wpbsText=Work Product Usage
workBreakdownText=Work Breakdown
workflowText=Workflow
workProductBreakdownText=Work Product Breakdown
workProductDependenciesText=Work Product Dependencies
teamProfileBreakdownText=Team Breakdown
teamStructureText=Team Structure
pageNotInstalledText=Page Not Installed
elementDoesNotExistText=Element Does Not Exist
isNotValidText=The referenced element is not a valid element in the current library.
elementMightBeDeletedText=The element may have been deleted from the library.
pleaseFixLinkText=Please check your content library and fix the link.
infoAboutMissingElementText=Information about the missing element:
elementNameText=Element Name:
guidText=GUID:
missingElementText=Referenced page is not in this configuration
notAvailableText=The referenced page is not available in the current configuration. This page may be available in another process configuration.
elementTypeText=Element Type:
pluginNameText=Plug-in Name:
predecessorText=Predecessor
planningDataText=Planning Data
multipleOccurrencesText=Multiple Occurrences
eventDrivenText=Event Driven
ongoingText=Ongoing
plannedText=Planned
repeatableText=Repeatable
usageGuidanceText=Usage Guidance
activityEntryStateText=Activity Entry State
activityExitStateText=Activity Exit State
prefixText=Prefix
externalIdText=External Id
scopeText=Scope

typeofContractText=Type of Contract
projectCharacteristicsText=Project Characteristics
projectMemberExpertiseText=Project Member Expertise
riskLevelText=Risk Level
scaleText=Scale
usageNotesText=Usage Notes
contextText=Context
parentActivitiesText=Parent Activities
includedPatternsText=Included Patterns

communicationsMaterialsText=Communications Materials
educationMaterialsText=Education Materials
estimatingTechniqueText=Estimating Technique
additionalText=Additional
modifiesText=Modifies
additionallyPerformsText=Additionally Performs
indexText=Index
breakdownElementText=Breakdown Element
predecessorsText=Predecessors
typeText=Type

modelInfoText=Model Info
entryStateText=Entry State
exitStateText=Exit State
teamText=Team
parentPackageText=Parent Package
containedPackagesText=Contained Packages
contentsText=Contents
basedOnMethodRoleText=Based on Method Role
basedOnMethodTaskText=Based on Method Task
basedOnMethodWorkProductText=Based on Method Work Product
summaryText=Summary
performsText=Performs
replacesText=Replaces
contributesText=Contributes
noneText=None

activityReferencesText=Activity References
nameText=Name
presentationNameText=Presentation Name
representationText=Selected Representation
projectSpecificsText=Project Specifics
extendsReplacesText=Extends and Replaces
workProductText=Work Product
processUsageText=Process Usage

fulfilledSlotsText=Fulfilled Slots
fulfillingWorkProductsText=Fulfilling Work Products