###############################################################################
# Copyright (c) 2009 Tasktop Technologies 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:
#      Tasktop Technologies - initial API and implementation
###############################################################################
AbstractInterestManipulationAction_Interest_Manipulation=Interest Manipulation
AbstractInterestManipulationAction_No_task_context_is_active=No task context is active, or element not found in context

ContextAttachAction_Attach_=Attach...
ContextAttachAction_Attach_Task_Context=Attach Task Context
ContextAttachAction_Context_Attachment=Context Attachment
ContextAttachAction_Task_must_be_synchronized_before_attaching_context=Task must be synchronized before attaching context

ContextClearAction_Clear=Clear
ContextClearAction_Clear_the_context_for_the_selected_task=Clear the context for the selected task?  This cannot be undone.
ContextClearAction_Confirm_clear_context=Confirm clear context

ContextCopyAction_Copy_Context=Copy Context
ContextCopyAction_Copy_Task_Context_to_=Copy Task Context to...
ContextCopyAction_Copy_to_=Copy to...
ContextCopyAction_No_source_task_selected=No source task selected.
ContextCopyAction_No_target_task_selected=No target task selected.
ContextCopyAction_Select_Target_Task=Select Target Task
ContextCopyAction_Select_the_target_task__=&Select the target task (? = any character, * = any String):
ContextCopyAction_Source_task_does_not_have_a_context=Source task does not have a context.
ContextCopyAction_Target_task_can_not_be_the_same_as_source_task=Target task can not be the same as source task.

ContextRetrieveAction_Retrieve_=Retrieve...
ContextRetrieveAction_Retrieve_Task_Context=Retrieve Task Context

FocusTaskListAction_No_tasks_scheduled_for_this_week=No tasks scheduled for this week

ToggleDecorateInterestLevelAction_Decorate_Interest=Decorate Interest
ToggleDecorateInterestLevelAction_Toggle_Interest_Level_Decorator=Toggle Interest Level Decorator
