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