# 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

# Generic Dialog Titles
moveDialog_title=Move
moveDialog_addRefPluginsWarningText=Warning: this move might cause some undeclared plug-in dependencies if not adding extra required plug-in references. Users are recommended to use library validation to check and fix them manually after the move.
moveDialog_addRefPluginsWarningText1=Warning: this move might cause some undeclared plug-in dependencies which would cause circular plug-in dependencies if added by the tool. Users are recommended to use library validation to check and fix them manually after the move.  
moveDialog_addRefPluginsText=The following plug-in references can be added without causing circular dependencies. Click "Yes" to proceed. "No" to proceed move without adding. "Cancel" to cancel move.\n\nPlug-in references to add for
deleteDialog_title=Delete Element
errorDialog_title=Error
errorDialog_cannotRename=Cannot rename {0} ''{1}'' to ''{2}''. Resolve the issue shown in Details and click OK to continue or Cancel to abort this operation.

# Confirm References Removal Dialog
deleteReferencesDialog_title=Confirm References Removal
deleteReferencesDialog_text=The element(s) you are about to delete are still being referenced by other elements in the method library. Deleting these elements will remove references to them, therefore, will update the referring elements as well.  Make sure you have permission to update the referring elements before clicking OK.  Click Details to review the list of elements that reference the element(s) that you are about to delete.

# Resolve Name Conflict Dialog
resolveNameConflictDialog_title=Resolve Element Name Conflict
resolveNameConflictDialog_text=Enter a new {0} for ''{1}'':

# Select Deliverables Dialog
selectDeliverablesDialog_title=Select Deliverables
selectDeliverablesDialog_text=Select a deliverable where you want work product ''{0}'' to be assigned.

# New Process Component Dialog
newProcessComponentDialog_title=New Process Component
nameLabel_text=Name:
defaultConfigLabel_text=Default Configuration:
baseProcessLabel_text=Base Process:
basedOnProcessesLabel_text=Based on Processes:
SpecifyNameText=Specify a valid name.

# Role Association Dialog
selectAssociationLabel_text=Select association for the task ''{0}''

# Remove Association dialog
removeAssociationDialog_text=Remove Association

# Select Teams Dialog
selectTeamsDialog_title=Select Teams
selectTeamsDialog_text=Select a team where you want a role ''{0}'' to be assigned.

# Task Selection Dialog
taskSelectionDialog_title=Task Selection
titleLabel_text=Select tasks..

# Error Messages
emptyElementNameError_msg=IUPL0100E: The {0} name is missing.\nAll method and process elements must have a name.\nEnter a valid name and try again.
emptyElementNameError_simple_msg=The name cannot be empty. Please specify a valid name.
duplicateElementNameError_msg=IUPL0101E: The name ''{0}'' already exists.\nA method element must have a unique name.\nEnter a different name and try again.
duplicateElementNameError_msg2=Enter a different name and try again.
duplicateElementNameError_simple_msg=The name already exists. Please specify another name.
invalidElementNameError1_msg=IUPL0102E: The name ''{0}'' is invalid.\nA method element name cannot start with a space.\nEnter a valid name and try again.
invalidElementNameError2_msg=IUPL0103E: The name ''{0}'' is invalid.\nA method element name cannot end with a period.\nEnter a valid name and try again.
invalidElementNameError3_msg=IUPL0104E: The name ''{0}'' is invalid.\nA method element name cannot contain these characters: \\ / : * ? " < > ; | [ ] #\nEnter a valid name and try again.
invalidElementNameError4_msg=IUPL0105E: The name ''{0}'' is invalid.\nA method element name cannot contain the character: &\nEnter a valid name and try again.
invalidPluginNameError_msg=IUPL0121E: The name ''{0}'' is invalid.\nA method plug-in''s name cannot contain these characters: \\ / : * ? " < > ; | # % ''\nEnter a valid name and try again.
filePathNameTooLong_msg=File path name too long (exceeding ''{0}'') 
noConfigError_msg=The current method library does not contain any method configuration.\nA method configuration is needed to create a new process.\nCreate a method configuration and try again.
noDeliveryProcessError_msg=IUPL0106E: The current method library does not contain any delivery processes.\nA base delivery process is needed to create a new process contribution.\nCreate a delivery process and try again.
noDefaultConfigError_msg=IUPL0107E: No method configuration has been selected.\nA default method configuration must be assigned to the new process.\nSelect a method configuration and try again.
noBaseProcessError_msg=IUPL0108E: No delivery process has been selected.\nA process contribution requires a base delivery process.\nSelect a delivery process and try again.
createProcessError_msg=IUPL0109E: The process cannot be created successfully.
createElementError_msg=IUPL0110E: The element cannot be created successfully.
deleteElementError_msg=IUPL0111E: The element cannot be deleted successfully.
duplicateContentFileError_msg=IUPL0112E: The content file for the element cannot be created or renamed to match the element name.\n\nA file ''{0}'' already exists.\n\nEnter a different name and try again.
duplicateContentFileError_simple_msg=A content file with the same name exits. Please specify another name.
undoCommandError_msg=IUPL0113E: The undo command ''{0}'' cannot be completed.\n\nAn error has occurred: {1}
invalidPredecessorError_msg=IUPL0114E: The specified predecessor index is invalid.\n\nA predecessor index must be an integer value from the 'Index' column.\n\nSpecify a valid value and try again.
UserInteractionHelper_errRelationshipExists=IUPL0100W: ''{0}'' is already associated to ''{1}''.  Only one association of this kind is allowed.  To assign ''{0}'' to ''{2}'' you need to first remove it from ''{1}''.
error_msgWithDetails=IUPL0116E: An error has occurred. Click Details for more information.
error_msg=IUPL0117E: An error has occurred. See error log for more details.
Suppression_nameDuplication=IUPL0118E: Name conflict will occur after this operation. Check element's name for duplication and try again
Suppression_presentationNameDuplication=IUPL0119E: Name conflict will occur after this operation. Check element's presentation name for duplication and try again

# Error Reasons
error_reason=An error has occurred. Click Details for more information.
saveProcessError_reason=An error has occurred while saving the process ''{0}''. Click Details for more information.
deleteReferencesError_reason=An error has occurred while removing references associated with this element. Click Details for more information.
saveFileError_reason=An error has occurred while saving the file ''{0}''. Click Details for more information.
invalidReferencesError_reason=Detected method elements with invalid references as a result of cross plug-in copy.\nThese references will be removed. Do you want to continue?
unresolvedObjectError_reason=Cannot modify an unresolved object: {0}(URI = {1}){2}

# Warning messages
MethodElementAddCommand_originalNotFoundWarning_msg=IUPL0118W: Could not find one or more source elements. Associated files in the resources folder will not be copied.
ActivityAddCommand_originalNotFoundWarning_msg=IUPL0119W: Could not find one or more source elements. Associated Process Packages will not be copied.
ActivityDropCommand_deepCopy_promptConfigurationMsg=Do you want to copy all descriptors?\n\nClicking on No will copy only the descriptors that are part of the current configuration.
deepCopy_promptMsg=You will get a copy of all dynamically linked elements that you need to maintain separately from now on. Do you want to continue?
deepCopy_title=Deep Copy

# Progress messages
creatingProcessComponentTask_name=Creating process component ''{0}''...
processingReferencesTask_name=Processing references...
deletingElementsTask_name=Deleting elements and associated files...
checkingReferencesTask_name=Checking for references...
removingReferencestask_name=Removing references...
savingModifiedFilesTask_name=Saving modified file(s)...
checkAffectedResourcesTask_name=Checking affected resources...
movingTask_name=Moving...
movingFilesTask_name=Moving files...
copyingResourcesTask_name=Copying resources...
copyingActivities_msg=Copying activity ''{0}''
savingFileTask_name=Saving file ''{0}''...
savingResources_msg=Saving resources
scope_defualtName=-- None --
scope_PluginsName=Selected plug-ins

# UI Text
element_text=element
createElement_text=Create Element
createProcess_text=Create Process
contributesTo_text=Contributes to
localContributesTo_text=Locally Contributes to
extends_text=Extends
replaces_text=Replaces
extends_replaces_text=Extends and Replaces
localReplaces_text=Locally Replaces
localReplacementAndDeepCopy_text=Local Replacement and Deep Cop&y
elementType_text={0}: {1}
deliverables_text=Deliverables
contributeToActivity_text=Contribute To Activity
ActivityDropCommand_label=Drop Activity
replaceActivity_text=Replace Activity
file_text=file
directory_text=directory
unresolved_text=(unresolved ''{0}'')
assists_text=Assisted By
unknown_text=Unknown
command_done=Done

# The following UI text should be reviewed.
Util_labelpath_variabilitywithplugin_info={0} ({1} ''{2}'' in ''{3}'')
Util_labelpath_variability_info={0} ({1} ''{2}'')
ui_ref_delete=The descriptor ''{0}'' has the following references which are not used anywhere.\nSelect the ones which you would like to delete:
ui_ref_delete2=These following references are not being used anywhere.\nSelect the ones which you would like to delete:
ui_references=References
ui_workproduct_descriptor_description=Work product descriptor ''{0}'' is associated (Output From) with task descriptor ''{1}''
ui_workproductdescriptor_options=Options
ui_workproductdescriptor_outputlabel=Remove work product descriptor as output of the task descriptor
ui_workproductdescriptor_delete_task=Delete task descriptor from the activity
ui_UserInteractionHelper_defaultconfigcheck=The selected element ''{0}'' is not in the default configuration of your process.\nDo you want to add it and its dependencies to the default configuration?
ui_UserInteractionHelper_genericErr_message_text=Errors occurred in the operation. Click on details for more information
ProcessAutoSynchronizeAction_noDescriptorToSynch=No descriptor with linked method element found to synchronize
util_configurablecomposedadapter_refershingviewer=Error refreshing viewer
confirm_remove_references_text=Element(s) listed in Details might have illegal references to this guidance after conversion. Click OK to remove them and continue.
confirmDescriptorsDeletion_title=Confirm Descriptors Deletion
confirmDescriptorsDeletion_msg=The element(s) you are about to delete are still being referenced by descriptors in the method library.  Click Yes if you want to delete these descriptors as well.  Make sure you have permission to delete the descriptors before clicking Yes.  Click Details to review the list of descriptors that reference the element(s) that you are about to delete.
util_configurablecomposedadapter_unhandled_exception=Unhandled exception
util_ProcessUtil_err_same_breakdown_element=Cannot have the same breakdown element as predecessor and successor
ui_UserInteractionHelper_wplistdlg_msg=The work product ''{0}'' is an output to the following tasks.\nSelect the tasks for which you would like to create the corresponding descriptors.
ui_UserInteractionHelper_rolelistdlg_msg=The role ''{0}'' has the following responsible work products.\nSelect the work products for which you would like to create the corresponding descriptors.
util_configurablecomposedadapter_fatalerr=Fatal error
ui_UserInteractionHelper_workproducts=Work Products
util_ProcessUtil_err_same_sub_element=Cannot link a breakdown element to one of its sub-element.
util_ProcessUtil_err_wrong_element=Cannot link to element other than work breakdown element.
util_ProcessUtil_err_child_element=Cannot link a breakdown element to one of its children.
ui_UserInteractionHelper_tasks=Tasks
ui_association_task_selection=Task Selection...
util_ProcessUtil_childadapter=\ \ child's adapter:

util_ProcessUtil_err_setparent=Could not set parent for child
util_tngutil_cannot_edit_resource=Cannot edit resource.
util_ProcessUtil_contributesto=contributes to ''{0}''
util_ProcessUtil_localContributesto=locally contributes to ''{0}''
process_extends=extends ''{0}''
process_replaces=replaces ''{0}''
process_localReplaces=locally replaces ''{0}''
# Filter constants externalized strings.
FilterConstants_disciplines_text=Disciplines
FilterConstants_disciplinegroupings_text=Discipline Groupings
FilterConstants_whitepapers_text=Whitepapers
FilterConstants_toolmentors_text=Tool Mentors
FilterConstants_tools_text=Tools
FilterConstants_roles_text=Roles
FilterConstants_tasks_text=Tasks
FilterConstants_reusableassets_text=Reusable Assets
FilterConstants_all_text=Most common
FilterConstants_processes_text=Processes
FilterConstants_activities_text=Activities
FilterConstants_practices_text=Practices
FilterConstants_templates_text=Templates
FilterConstants_workproducts_text=Work Products
FilterConstants_checklists_text=Checklists
FilterConstants_guidelines_text=Guidelines
FilterConstants_rolesets_text=Role Sets
FilterConstants_guidance_text=Guidance
FilterConstants_concepts_text=Concepts
FilterConstants_examples_text=Examples
FilterConstants_contentpackages_text=Content Packages
FilterConstants_roledescriptors_text=Role Descriptors
FilterConstants_rolesetgropuings_text=Role Set Groupings
FilterConstants_taskdescriptors_text=Task Descriptors
FilterConstants_contentelements_text=Content Elements
ProcessAutoSynchronizeAction_prepare=Preparing synchronization...
FilterConstants_workproductdescriptors_text=Work Product Descriptors
FilterConstants_allcontentelements_text=All Content Elements
FilterConstants_supportingmaterials_text=Supporting Materials
MethodElementAddCommand_errorSavingFiles=Error saving file(s)
FilterConstants_customcategories_text=Custom Categories
FilterConstants_workproducttypes_text=Work Product Kinds
DeleteMethodElementCommand_warningMsg=Deletion completed with warning
FilterConstants_methodplugins_text=Method Plug-ins
UserInteractionHelper_lockedPlugin=IUPL0120E: The plug-in ''{0}'' is locked.
FilterConstants_domains_text=Domains
FilterConstants_roadmap_text=Roadmaps
FilterConstants_reports_text=Reports
AutoSynchronizeCommand_label=Default S&ynchronization from Method Content
ManualSynchronizeCommand_label=Custom Synchroni&zation...
SynchronizeCompleteDialog_Title=Synchronization Complete
AutoSynchronizeCommand_sucessful=Synchronization has been completed successfully.
selectDescriptorsToDelete_msg=The following descriptors are not used anywhere after deletion of the selected elements.\nSelect descriptors you want to delete.

CreateProcessComponentCommand_Message=Specify name and default configuration for the {0} to be created.
DeliveryProcessLabel=delivery process
CapabilityPatternLabel=capability pattern

# UserInteractionHelper
UserInteractionHelper_ProcessPackage_Name=Name:

# MethodCreateChildCommand
newElement_text=New {0}
update_outofsynch_title=Update conflict
update_outofsynch_msg=The file(s) has been changed on the file system. Do you want to overwrite the changes?
duplicateFeatureValue=Cannot have 2 elements under ''{0}'' with the same value for ''{1}''
apply_pattern_error_msg=Cannot apply activity ''{0}'' to the process ''{1}'' since it will result in circular dependency.
apply_pattern_error_msg1=Cannot apply activity ''{0}'' to the process ''{1}'' since ''{0}'' already has one or more contributed/replaced activities as its children.
activity_variability_error_msg1=Activity ''{0}'' cannot set variability with one of its direct parent.
activity_variability_error_msg2=Activity ''{0}'' cannot set variability with ''{1}'' since it will result in circular dependency.
activity_variability_error_msg3=Cannot replaces a top process with an activity.
activity_deep_copy_variability_prompt=The source activity might have external contributions or replacements.\nDo you want to copy them as well?\n\nClicking on No will copy only the original activity.
activity_variability_error_msg=Activity ''{0}'' cannot set variability with ''{1}'' since ''{1}'' already has one or more contributed/replaced activities as its children.
variability_error_msg=Variability element ''{0}'' cannot set variability with ''{1}'' since it will result in circular dependency.
circular_dependency_error_msg=Cannot perform the operation since it will result in circular dependency.

# Validation messages
variability_element_circular_loop_error_msg=Circular dependency loop detected ... 
replacing_ancestor_error_msg=Replacing an ancestor error is detected.
cannot_copy_or_extend_delivery_process=Cannot copy or extend a delivery process or any of its activities.

# Sort options
SortType_Label=Sort Type:
SortType_Manual=Manual
SortType_Alphabetic=Alphabetic
SortType_ReverseAlphabetic=Reverse Alphabetic
SortType_MethodType=Element Type

WorkOrderTypeAbbreviation_FINISH_TO_START=FS
WorkOrderTypeAbbreviation_FINISH_TO_FINISH=FF
WorkOrderTypeAbbreviation_START_TO_FINISH=SF
WorkOrderTypeAbbreviation_START_TO_START=SS
add_to_default_config_dlg_title=Add to default configuration
