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

pluginName = Ant UI
providerName = Eclipse.org

AntBuild.externalTools = Ant Build
AntLaunchShortcut.label = &Ant 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
PreferencePage.antPreferences = Ant
PreferencePage.antRuntimePreferences = Runtime
PreferencePage.antEditorPreferences = Editor
PopupMenu.runAnt = Run &Ant...
PopupMenu.runAntTip = Run Ant With The Selected File