# 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

# Method Element Names (Singular)
activity_text=Activity
artifact_text=Artifact
capabilityPattern_text=Capability Pattern
checklist_text=Checklist
checkItem_text=Check Item
compositeRole_text=Composite Role
concept_text=Concept
contentPackage_text=Content Package
customCategory_text=Custom Category
deliverable_text=Deliverable
deliveryProcess_text=Delivery Process
descriptor_text=Descriptor
discipline_text=Discipline
disciplineGrouping_text=Discipline Grouping
domain_text=Domain
estimate_text=Estimate
estimatingMetric_text=Estimating Metric
estimationConsiderations_text=Estimation Considerations
example_text=Example
guidance_text=Guidance
UDT_text=UDT
guideline_text=Guideline
iteration_text=Iteration
methodConfiguration_text=Method Configuration
methodContent_text=Method Content
methodLibrary_text=Method Library
methodPackage_text=Method Package
methodPlugin_text=Method Plug-in
milestone_text=Milestone
outcome_text=Outcome
phase_text=Phase
practice_text=Practice
process_text=Process
processContribution_text=Differential Process
processFamily_text=Process Family
processPackage_text=Process Package
report_text=Report
reusableAsset_text=Reusable Asset
roadmap_text=Roadmap
roleDescriptor_text=Role Descriptor
role_text=Role
roleSet_text=Role Set
roleSetGrouping_text=Role Set Grouping
standardCategory_text=Standard Category
step_text=Step
supportingMaterial_text=Supporting Material
task_text=Task
taskDescriptor_text=Task Descriptor
teamProfile_text=Team Profile
template_text=Template
termDefinition_text=Term Definition
tool_text=Tool
toolMentor_text=Tool Mentor
whitepaper_text=Whitepaper
workProduct_text=Work Product
workProductDescriptor_text=Work Product Descriptor
workProductElement_text=Work Product Element
workProductType_text=Work Product Kind

# Method Element Names (Plural)
activity_text_plural=Activities
artifact_text_plural=Artifacts
capabilityPattern_text_plural=Capability Patterns
checklist_text_plural=Checklists
checkItem_text_plural=Check Items
compositeRole_text_plural=Composite Roles
concept_text_plural=Concepts
contentPackage_text_plural=Content Packages
customCategory_text_plural=Custom Categories
deliverable_text_plural=Deliverables
deliveryProcess_text_plural=Delivery Processes
descriptor_text_plural=Descriptors
discipline_text_plural=Disciplines
disciplineGrouping_text_plural=Discipline Groupings
domain_text_plural=Domains
estimate_text_plural=Estimates
estimatingMetric_text_plural=Estimating Metrics
estimationConsiderations_text_plural=Estimation Considerations
example_text_plural=Examples
guidance_text_plural=Guidances
guideline_text_plural=Guidelines
iteration_text_plural=Iterations
methodConfiguration_text_plural=Method Configurations
methodContent_text_plural=Method Contents
methodLibrary_text_plural=Method Libraries
methodPackage_text_plural=Method Packages
methodPlugin_text_plural=Method Plug-ins
milestone_text_plural=Milestones
outcome_text_plural=Outcomes
phase_text_plural=Phases
practice_text_plural=Practices
process_text_plural=Processes
processContribution_text_plural=Differential Processes
processFamily_text_plural=Process Families
processPackage_text_plural=Process Packages
report_text_plural=Reports
reusableAsset_text_plural=Reusable Assets
roadmap_text_plural=Roadmaps
roleDescriptor_text_plural=Role Descriptors
role_text_plural=Roles
roleSet_text_plural=Role Sets
roleSetGrouping_text_plural=Role Set Groupings
standardCategory_text_plural=Standard Categories
step_text_plural=Steps
supportingMaterial_text_plural=Supporting Materials
task_text_plural=Tasks
taskDescriptor_text_plural=Task Descriptors
teamProfile_text_plural=Team Profiles
template_text_plural=Templates
termDefinition_text_plural=Term Definitions
tool_text_plural=Tools
toolMentor_text_plural=Tool Mentors
whitepaper_text_plural=Whitepapers
workProduct_text_plural=Work Products
workProductDescriptor_text_plural=Work Product Descriptors
workProductElement_text_plural=Work Product Elements
workProductType_text_plural=Work Product Kinds

# Application title.
application_title={0} - {1}

# Open Method Library Wizard
openLibraryWizard_title=Open Method Library
openLibraryMainWizardPage_title=Specify a path containing a method library
openLibraryMainWizardPage_title_2=Select a method library
openLibraryMainWizardPage_text={0} stores methods and processes in a folder called \na method library. Select a method library folder to use for this session.
pathLabel_text=Path:
nameLabel_text=Name:
uriLabel_text=URI:
openUnlistedLibraryCheckbox_text=Open a method library that is not listed above
libraryTypeLabel_text=Type:
libraryLabel_text=Library:
browseButton_text=Browse...
promptForLibraryCheckbox_text=Use this as the default and do not ask again.
openLibraryDialog_newLibrary_text=No method library exists at ''{0}''.\nA new method library will be created and opened for you at the specified directory.\n\nClick OK to proceed or Cancel to specify another method library path.
convertToSynProcessLib_msg=Convert to auto-synchronized library

# Select Method Library Folder Dialog
selectLibraryFolderDialog_title=Select Method Library
selectLibraryFolderDialog_text=Select a method library folder.

# Open Library Progress Message
openingLibraryTask_name=Opening method library...

# Open Method Library Error Dialog
openLibraryError_msg=IUPL0301E: Unable to create the method library.
openLibraryInternlError_reason=An internal error has occurred.
openLibraryError_reason1=The specified method library path ''{0}'' is invalid.
openLibraryError_reason2=A method library already exists in ''{0}''.
openLibraryError_reason3=The specified method library folder ''{0}'' cannot be created.
openLibraryError_reason4=The specified method library folder is a plug-in or configuration specification export folder.
openLibraryError_advice=Select OK to specify another method library path.

# Open Method Library Error Messages
invalidLibraryPath_msg=IUPL0302E: Unable to open the specified method library.
invalidLibraryPath_reason=The selected method library folder is invalid, does not exist, or you do not have the proper permission to access it.\n\nClick OK to select another library folder.

# Read-only Project File Error Dialog
readOnlyProjectFile_text=IUPL0304E: ''{0}'' is read-only. Make it writable before continuing.
retryButton_text=Retry
cancelButton_text=Cancel

# Version Mismatch Dialog
versionMismatchDialog_text=IUPL305E: The selected library cannot be opened. You must upgrade {0} to version {1} or higher in order to open this library.
versionMismatchDialog_text_unknown=IUPL306E: The selected library cannot be opened. You must upgrade {0} to a higher version in order to open this library.

# Upgrade Method Library Dialog
upgradeLibraryDialog_title=Upgrade Method Library
upgradeLibraryDialog_text=The library you have selected needs to be upgraded to the new library structure.\n\nDo you want to proceed with the upgrade?
upgradingLibraryTask_name=Upgrading method library...

# Upgrade Library Error Dialog
upgradeLibraryError_msg=IUPL0306E: Failed to upgrade the method library. Please see the log file for more details.

# Switch Configuration Dialog
switchConfigDialog_title=Switch Configuration
switchConfigDialog_text=Do you want to switch the current configuration to the default configuration, ''{0}'', associated with the selected process?
	
# Configuration Combo
currentConfigLabel_text=Current configuration:
selectConfigLabel_text=Select a configuration

# Delete Files Confirmation Message
deleteFilesConfirmation_msg=The specified path ''{0}'' already exists. All files in the folder will be deleted. Do you want to proceed?

# Paths/Files Error Messages
deleteFilesError_reason=The path ''{0}'' contains one or more files that cannot be deleted.\n\nSelect another path and try again.
createPathError_reason=Unable to create path ''{0}''.\n\nSelect another path and try again.
invalidPath_msg=The specified path is not valid.
overrideCurrentLibraryError_msg0=You cannot export to a path containing current method library, please select another path and try again.

# Backup Library Dialog
backupLibraryDialog_title=Backup Library
backupLibraryDialog_text=It is strongly recommended that you back up the current method library before proceeding.\n\nClick OK to create a backup copy of the library in the specified directory. Click Skip to continue without creating the backup.
backingUpLibraryTask_name=Backing up library files ...

# Copy Library Dialog
copyLibraryDialog_title=Copy Library
copyLibraryDialog_text_readOnlyLib=The library you are opening is a default library supplied with the composer.  We highly recommend that you make a working copy of this library for editing.\n\nEnter a location and library name for the new library and click "Copy" to make a working copy.\n\nClick "Skip" to continue editing the default library in the current location. The editing capability for the default library is restricted by the access permissions enforced by your platforms.
copyLibraryTask_name=Making a copy of the library files ...
copyLibraryDialog_copyButton_text=Copy

# Path Selection Dialog
pathSelectionError_msg=Unable to create directory
okButton_text=OK
skipButton_text=Skip

# Process Editor preferences
alwaysButton_text=Always
neverButton_text=Never
promptButton_text=Prompt

# Add Link Dialog
linkToURL_name=URL
linkToFile_name=File
elementLink_name=Method element
elementLinkWithType_name=Method element with type prefix
elementLinkWithUserText_name=Method element with custom text

# Convert Activity Type Dialog
convertActivityDialog_title=Convert Activity Type
convertActivityDialog_text=Select the target activity type.
unsupportedActivityType_msg=IUPL0307E: This activity cannot be converted to another type.
unsupportedActivityType_reason=There is no compatible activity type for {0}.

# Select Process Wizard Page
selectProcessWizardPage_title=Select process
selectProcessWizardPage_text=Select a capability pattern or delivery process to export.
processesLabel_text=Processes:
briefDescriptionLabel_text=Brief description:

# Export Process Wizard Error Message.
noOpenLibraryWarning_msg=IUPL0308E: No method library is currently opened. Click Cancel, open a method library or create a new one, and run this wizard again. 

# Moved from Authoring UI plug-in to avoid Authoring UI dependency
errorDialog_title=Error
MethodElementDeleteAction_deleteconfirm_text=Are you sure you want to delete ''{0}''?
confirmDeleteDialog_title=Confirm Deletion
confirmDeleteDialog_msg=Are you sure you want to delete ''{0}''?
confirmDeleteDialog_msgWithReference=Are you sure you want to delete ''{0}''?\n\nThe following element(s) contain references to the item(s) to be deleted: {1}
ProcessDeleteAction_deletecofirm_text=This will save the current editor and the change will be permanent. Are you sure you want to delete ''{0}''?

# Save Method Library Dialog
saveLibraryDialog_title=Save Method Library
saveLibraryDialog_text=The current method library has been modified. Do you want to save the changes?

# Save Method Library Error Messages
saveLibraryError_msg=IUPL0308E: The method library cannot be saved.
error_reason=An error has occurred.\n\nClick Details for more information.

# ElementTreeContentProvider Strings
elementTCProvider_methodContent=Method Content
elementTCProvider_contentPackages=Content Packages
elementTCProvider_standardCategories=Standard Categories
elementTCProvider_disciplines=Disciplines
elementTCProvider_domains=Domains
elementTCProvider_workProductTypes=Work Product Types
elementTCProvider_roleSets=Role Sets
elementTCProvider_tools=Tools
elementTCProvider_customCategories=Custom Categories
elementTCProvider_processes=Processes
elementTCProvider_capabilityPatterns=Capability Patterns
elementTCProvider_deliveryProcesses=Delivery Processes

