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

