###############################################################################
# Copyright (c) 2000, 2003 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

OptionsConfigurationBlock.builderror.title=Preference Changes
OptionsConfigurationBlock.builderror.message=Problem while building. Check log for details.

OptionsConfigurationBlock.buildall.taskname=Build all...
OptionsConfigurationBlock.buildproject.taskname=Build project ''{0}''...


OptionsConfigurationBlock.parseerror.title=Preference Changes
OptionsConfigurationBlock.parseerror.message=Problem while parsing. Check log for details.

OptionsConfigurationBlock.parseall.taskname=Parse all...
OptionsConfigurationBlock.parseproject.taskname=Parse project ''{0}''...


TodoTaskPreferencePage.title=Task Tags

TodoTaskPropertyPage.useworkspacesettings.label=Use &workspace settings
TodoTaskPropertyPage.useworkspacesettings.change=&Configure Workspace Settings...
TodoTaskPropertyPage.useprojectsettings.label=Use pr&oject settings

TodoTaskConfigurationBlock.markers.tasks.high.priority=High
TodoTaskConfigurationBlock.markers.tasks.normal.priority=Normal
TodoTaskConfigurationBlock.markers.tasks.low.priority=Low
TodoTaskConfigurationBlock.markers.tasks.label=&Strings indicating tasks in Java comments:
TodoTaskConfigurationBlock.markers.tasks.add.button=Ne&w...
TodoTaskConfigurationBlock.markers.tasks.remove.button=Remo&ve
TodoTaskConfigurationBlock.markers.tasks.edit.button=Edi&t...
TodoTaskConfigurationBlock.markers.tasks.name.column=Tag
TodoTaskConfigurationBlock.markers.tasks.priority.column=Priority

TodoTaskConfigurationBlock.needsbuild.title=Task Tags Settings Changed
TodoTaskConfigurationBlock.needsfullbuild.message=The task tags settings have changed. A full rebuild is required to make changes effective. Do the full build now?
TodoTaskConfigurationBlock.needsprojectbuild.message=The task tags settings have changed. A rebuild of the project is required to make changes effective. Do the project build now?

TodoTaskConfigurationBlock.needsparse.title=Task Tags Settings Changed
TodoTaskConfigurationBlock.needsfullparse.message=The task tags settings have changed. A full re-parse is required to make changes effective. Do the full re-parse now?
TodoTaskConfigurationBlock.needsprojectparse.message=The task tags settings have changed. Re-parsing of the project is required to make changes effective. Do the project re-parse now?

TodoTaskInputDialog.new.title=New Task Tag
TodoTaskInputDialog.edit.title=Edit Task Tag
TodoTaskInputDialog.name.label=T&ag:
TodoTaskInputDialog.priority.label=&Priority:
TodoTaskInputDialog.priority.high=High
TodoTaskInputDialog.priority.normal=Normal
TodoTaskInputDialog.priority.low=Low
TodoTaskInputDialog.error.enterName=Enter task tag name.
TodoTaskInputDialog.error.comma=Name cannot contain a comma.
TodoTaskInputDialog.error.entryExists=Entry with the same name already exists.
TodoTaskInputDialog.error.noSpace=Name can not start or end with a whitespace.

CEditorPreferencePage.cCommentTaskTags=Task Tags

CEditorPreferencePage.generalTabTitle=&General
CEditorPreferencePage.annotationTabTitle= &Annotations
CEditorPreferencePage.colorsTabTitle=&Colors
CEditorPreferencePage.contentAssistTabTitle=Content A&ssist

CEditorPreferencePage.invalid_input=Invalid input.
CEditorPreferencePage.empty_input=Empty input

CEditorPreferencePage.ContentAssistPage.searchGroupTitle=Search scope for completion proposals:
CEditorPreferencePage.ContentAssistPage.searchGroupCurrentFileOption=&Search current file and included files
CEditorPreferencePage.ContentAssistPage.searchGroupCurrentProjectOption=Search current &project
CEditorPreferencePage.ContentAssistPage.searchGroupCurrentProjectAndDependenciesOption=Search current project and &dependent projects
CEditorPreferencePage.ContentAssistPage.insertSingleProposalAutomatically=Insert single &proposals automatically
CEditorPreferencePage.ContentAssistPage.showOnlyProposalsWithCorrectVisibility=Show only proposals visible in the invocation conte&xt
CEditorPreferencePage.ContentAssistPage.showProposalsInAlphabeticalOrder=Present proposals in a&lphabetical order
CEditorPreferencePage.ContentAssistPage.autoActivationGroupTitle=Auto activation:
CEditorPreferencePage.ContentAssistPage.autoActivationEnableDot=Enable . as trigger
CEditorPreferencePage.ContentAssistPage.autoActivationEnableArrow=Enable -> as trigger
CEditorPreferencePage.ContentAssistPage.autoActivationDelay=dela&y (in milli seconds)
CEditorPreferencePage.ContentAssistPage.completionProposalBackgroundColor=&Background for completion proposals:
CEditorPreferencePage.ContentAssistPage.completionProposalForegroundColor=&Foreground for completion proposals:
CEditorPreferencePage.ContentAssistPage.parameterBackgroundColor=Bac&kground for method parameters:
CEditorPreferencePage.ContentAssistPage.parameterForegroundColor=Fo&reground for method parameters: