###############################################################################
# Copyright (c) 2003, 2006 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 API and implementation
#	  Sebastian Davids <sdavids@gmx.de>  - Fix for  Bug 132158 [Progress] Job, Operation, Task used interchangably
###############################################################################
PendingUpdateAdapter_PendingLabel=Pending...
JobInfo_DoneMessage = ({0}%) {1}: {2}
JobInfo_DoneNoProgressMessage = {0}: {1}
JobInfo_NoTaskNameDoneMessage = {0}: ({1}%)
JobsViewPreferenceDialog_Note=&Show sleeping and system operations
JobErrorDialog_CustomJobText=Custom Operation Action
JobInfo_UnknownProgress = {0}: {1}
JobInfo_Waiting = {0} (Waiting)
JobInfo_Sleeping = {0} (Sleeping)
JobInfo_System = System: {0}
JobInfo_Cancelled = {0} (Cancelled)
JobInfo_Error = {0} (Time of error: {1})
JobInfo_Blocked = {0} (Blocked: {1})
JobInfo_Finished = {0} (Finished)
JobInfo_FinishedAt = {0} (Finished at {1})
JobErrorDialog_CloseDialogMessage=Performing this action will close the error dialog and clear the errors being displayed.
Error = Error
DeferredTreeContentManager_NotDeferred=Not an IDeferredWorkbenchAdapter
DeferredTreeContentManager_AddingChildren=Adding children
DeferredTreeContentManager_FetchingName = Fetching children of {0}
ProgressView_CancelAction=&Cancel
ProgressView_ClearAllAction=Remove &All Finished Operations
ProgressView_NoOperations=No operations to display at this time.

NewProgressView_RemoveAllJobsToolTip=Remove All Finished Operations
NewProgressView_CancelJobToolTip=Cancel Operation
NewProgressView_ClearJobToolTip=Remove From View
NewProgressView_errorDialogTitle= Error Occurred
NewProgressView_errorDialogMessage= Operation Finished with Error
ProgressAnimationItem_tasks=Shows background operations in Progress view
ProgressAnimationItem_ok=Operation ''{0}'' returned result; press button for details
ProgressAnimationItem_error=Operation ''{0}'' finished with errors; press button for details
SubTaskInfo_UndefinedTaskName=Undefined
DeferredTreeContentManager_ClearJob=Clear
ProgressContentProvider_UpdateProgressJob=Update Progress
JobErrorDialog_MultipleErrorsTitle=Multiple Errors have Occurred
ProgressManager_openJobName=Open progress monitor
ProgressManager_showInDialogName=Show In Dialog

ProgressMonitorJobsDialog_DetailsTitle=&Details >>
ProgressMonitorJobsDialog_HideTitle=<< &Details
ErrorNotificationManager_OpenErrorDialogJob=Open error dialog
AnimationManager_AnimationStart=Animation start
ProgressFloatingWindow_EllipsisValue=...

BlockedJobsDialog_UserInterfaceTreeElement=User operation
BlockedJobsDialog_BlockedTitle=User Operation is Waiting
WorkbenchSiteProgressService_CursorJob=Change cursor
ProgressMonitorFocusJobDialog_UserDialogJob=Open user dialog
ProgressMonitorFocusJobDialog_CLoseDialogJob=Close dialog
ProgressMonitorFocusJobDialog_RunInBackgroundButton=Run in &Background

JobErrorDialog_MultipleErrorsMessage=Multiple operations have reported errors. Select an error to view its details.
JobErrorDialog_CloseDialogTitle=OK to Close?
JobsViewPreferenceDialog_Title=Progress Preferences
JobErrorDialog_DoNotShowAgainMessage=Don't &show this again
