###############################################################################
# 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...
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.