# ==============================================================================
# Copyright (c) 2000, 2002 IBM Corp. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v0.5
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v05.html
# 
# Contributors:
#   Cagatay Kavukcuoglu <cagatayk@acm.org> - Filter for markers in same project
# ==============================================================================

# package: org.eclipse.ui.views.tasklist


# ==============================================================================
# TaskList
# ==============================================================================

TaskList.line = line {0}
TaskList.lineAndLocation = line {0} in {1}

TaskList.statusSummaryVisible = \
		{0,choice,0#0 items|1#{0,number,integer} item\
		|1<{0,number,integer} items}: {1}
TaskList.statusSummarySelected = \
		{0,choice,0#0 items|1#{0,number,integer} item\
		|1<{0,number,integer} items} selected: {1}
TaskList.statusSummaryBreakdown = \
		{0,choice,0#0 tasks|1#{0,number,integer} task\
		|1<{0,number,integer} tasks}, \
		{1,choice,0#0 errors|1#{1,number,integer} error\
		|1<{1,number,integer} errors}, \
		{2,choice,0#0 warnings|1#{2,number,integer} warning\
		|1<{2,number,integer} warnings}, \
		{3,choice,0#0 infos|1#{3,number,integer} info\
		|1<{3,number,integer} infos}
TaskList.titleSummaryUnfiltered = \
		{0,choice,0#0 items|1#{0,number,integer} item\
		|1<{0,number,integer} items}
TaskList.titleSummaryFiltered = Filter matched {0} of \
		{1,choice,0#0 items|1#{1,number,integer} item\
		|1<{1,number,integer} items}
TaskList.title = {0} ({1})

TaskList.headerIcon = 
TaskList.headerCompleted = C
TaskList.headerPriority = !
TaskList.headerDescription = Description
TaskList.headerResource = Resource
TaskList.headerFolder = In Folder
TaskList.headerLocation = Location

TaskList.high = High
TaskList.low = Low
TaskList.normal = Normal

TaskList.errorModifyingTask = Error modifying task

TaskList.reportKind = Kind
TaskList.reportStatus = Status
TaskList.reportPriority = Priority

TaskList.task = Task
TaskList.error = Error
TaskList.warning = Warning
TaskList.info = Info

TaskList.completed = Completed
TaskList.notCompleted = Not Completed

TaskList.markerLimitExceeded = There are too many items to display.\n\
	To see items in this window, adjust the filter settings.

# --- Actions ---
NewTask.text = &New Task
NewTask.tooltip = New Task
NewTask.notShownTitle = New Task Not Visible
NewTask.notShownMsg = The new task will not be visible, due to the current filter settings.\n\
     To see all tasks, choose Filter... then select the Reset button.

CopyTask.text = &Copy
CopyTask.tooltip = Copy

PasteTask.text = &Paste
PasteTask.tooltip = Paste
PasteTask.errorMessage = Error pasting task

RemoveTask.text = &Delete
RemoveTask.tooltip = Delete
RemoveTask.errorMessage = Error deleting task

Filters.text = &Filter...
Filters.tooltip = Filter...

SortByMenu.text= &Sort
SortByCategory.text= by &Type
SortByCategory.tooltip= Sort by type column
SortByCompleted.text= by &Completion
SortByCompleted.tooltip= Sort by completion column 
SortByPriority.text= by &Priority
SortByPriority.tooltip= Sort by priority column
SortByDescription.text= by &Description
SortByDescription.tooltip= Sort by description column
SortByResource.text= by &Resource
SortByResource.tooltip= Sort by resource column
SortByContainer.text= by &Folder
SortByContainer.tooltip= Sort by folder column
SortByLocation.text= by &Location
SortByLocation.tooltip= Sort by location column
SortByCreationTime.text= by Cr&eation Time
SortByCreationTime.tooltip= Sort by task creation time
SortAscending.text= &Ascending
SortAscending.tooltip= Sort ascending
SortDescending.text= De&scending
SortDescending.tooltip= Sort Descending

GotoTask.text = &Go To
GotoTask.tooltip = Go To
GotoTask.errorMessage = Problems Opening Editor

PurgeCompleted.text = Delete Completed &Tasks
PurgeCompleted.tooltip = Delete Completed Tasks
PurgeCompleted.question = Question
PurgeCompleted.permanent = Do you want to permanently delete all completed tasks?
PurgeCompleted.errorMessage = Error deleting completed tasks

MarkCompleted.text = &Mark Completed
MarkCompleted.tooltip = Mark Completed

SelectAll.text = Select A&ll
SelectAll.tooltip = Select All

Resolve.text = &Quick Fix...
Resolve.tooltip = Quick Fix
Resolve.title = Quick Fix
Resolve.noResolutionsLabel = There are no quick fixes available for the selected marker.

Properties.text = P&roperties
Properties.tooltip = Properties

# --- Filter Dialog ---
TaskList.filter = Filter Tasks
TaskList.showItemsOfType = Show items of &type:

TaskList.anyResource = On &any resource
TaskList.anyResourceInSameProject = On any resource in same &project
TaskList.selectedResource = On selected resource &only
TaskList.selectedAndChildren = On selected resource and its &children
TaskList.workingSet = On wor&king set:  {0}
TaskList.workingSetSelect = &Select...
TaskList.noWorkingSet = On wor&king set:  <no working set selected>

TaskList.whereDescription = Where &description
TaskList.contains = contains
TaskList.doesNotContain = does not contain

TaskList.severity.label = Where problem se&verity is:
TaskList.severity.error = &Error
TaskList.severity.warning = Warnin&g
TaskList.severity.info = &Info

TaskList.priority.label = Where task priorit&y is:
TaskList.priority.high = &High
TaskList.priority.low = Lo&w
TaskList.priority.normal = &Normal

TaskList.status.label = Where task stat&us is:
TaskList.status.completed = Co&mpleted
TaskList.status.notCompleted = Not Comp&leted

TaskList.resetText = &Reset

TaskList.limitVisibleTasksTo = Limit visi&ble items to:
TaskList.titleMarkerLimitInvalid = Error
TaskList.messageMarkerLimitInvalid = The visible item limit must be a positive integer.

# --- Properties Dialog ---
TaskProp.newTaskTitle = New Task
TaskProp.propertiesTitle = {0} Properties
#TaskProp.titleFmt = {0} - {1}
TaskProp.description = &Description:
TaskProp.creationTime = Creation &Time:
TaskProp.priority = &Priority:
TaskProp.completed = &Completed
TaskProp.severity = Severity:
TaskProp.onResource = On &Resource:
TaskProp.inFolder = In &Folder:
TaskProp.location = &Location:
TaskProp.errorMessage = Error creating or modifying task


