###############################################################################
# Copyright (c) 2000, 2004 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
###############################################################################

pluginName = Ant UI
providerName = Eclipse.org

AntBuild = Ant Build
AntLaunchShortcut.label = &Ant Build
AntLaunchShortcutWithDialog.label = &Ant Build...
ContextualAntLaunchShortcut.label = Ant Build
ContextualAntLaunchShortcutWithDialog.label = Ant Build...
antLaunchConfigurationTabGroup.description=Create a configuration that will run an Ant buildfile.
antBuilderLaunchConfigurationTabGroup.description=Create a configuration that will run an Ant buildfile during a build.

AntEditor.name=Ant Editor
AddBookmark.label=Add Boo&kmark...
AddBookmark.tooltip=Add Bookmark...
AddTask.label=Add &Task...
AddTask.tooltip=Add Task...

ActionDefinition.antContentAssistProposals.name=Ant Content Assist
ActionDefinition.antContentAssistProposals.description=Content Assist in the Ant Editor

CategoryView.antViews = Ant

View.antView = Ant
ViewCommand.antView.name = Ant
ViewCommand.antView.description = Show the Ant view

PreferencePage.antPreferences = Ant
PreferencePage.antRuntimePreferences = Runtime
PreferencePage.antEditorPreferences = Editor
PreferencePage.antCodeFormatterPreferences = Formatter
PreferencePage.antTemplatePreferences = Templates
PreferencePage.antCodeAssistPreferences = Code Assist

templatesName = Ant Templates Definitions

buildFile.contextType.name= Ant
task.contextType.name= Ant Task

antDocumentFactory.name= Ant Document Factory
antDocumentSetupParticipant.name= Ant Document Setup Participant

ant.resolvers.src= Source Fileset
ant.resolvers.src.description= A source fileset
ant.resolvers.dst= Destination Fileset
ant.resolvers.dst.description= An output fileset

Ant.marker.label = Ant Buildfile Problem

antImportWizard.name= Existing Ant Buildfile
antImportWizard.description= Creates an Eclipse project from an exisiting Ant buildfile in the filesystem.