#-------------------------------------------------------------------------------
# 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
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.

# 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 is not writable. Click Copy to create a writable copy of the library in the specified directory. Click Skip to continue without creating the copy.
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.


