# 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_addRefPluginsText=Add required plug-in references? "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=Assisting Performer
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.
# 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
