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

AntClasspathBlock.1=Choose a folder to add to the classpath:
AntClasspathBlock.addFolderButtonTitle = Add &Folder...
AntClasspathBlock.addJarButtonTitle = Add &JARs...
AntClasspathBlock.upButtonTitle = &Up
AntClasspathBlock.downButtonTitle = Do&wn
AntClasspathBlock.removeButtonTitle = R&emove
AntClasspathBlock.3=Choose a folder that will be used as the location of ANT_HOME
AntClasspathBlock.7=Specified Ant home does not contain a \"lib\" directory
AntClasspathBlock.&Browse..._10=&Browse...
AntClasspathBlock.31=No tools.jar
AntClasspathBlock.32=The specified Ant runtime classpath does not include a tools.jar library. This may affect the ability to use various tasks. Ignore this possible problem?
AntClasspathBlock.33=&Do not show this warning again
AntClasspathBlock.34=No tools.jar is specified in the Ant runtime classpath
AntClasspathBlock.42=Add E&xternal JARs...
AntClasspathBlock.44=JAR Selection
AntClasspathBlock.45=&Choose JARs and ZIPs to add:
AntClasspathBlock.54=&Global Entries...
AntClasspathBlock.55=Ant Home:
AntClasspathBlock.56=Specified Ant home does not exist
AntClasspathBlock.57=An Ant home needs to be specified

AntClasspathPage.title = C&lasspath

AddCustomDialog.Bad_Format=Specified zip file is not in the correct format
AddCustomDialog.Unreadable=Specified zip file could not be read
AddCustomDialog.&Name__3=&Name:
AddCustomDialog.Could_not_close_zip_file_{0}_4=Could not close zip file {0}
AddCustomDialog.&Location=&Location:
AddCustomDialog.mustSelect=A class file must be selected from the specified location
AddCustomDialog.13=Specified zip file could not be resolved

AntPreferencePage.description = Settings used when running Ant buildfiles:
AntPreferencePage.General=General Ant Settings:
AntPreferencePage.Enter=File names used to emulate \"-find\".\nUsed by \"Run As > Ant Build\" when the current selection is not a buildfile.\nList is comma separated (e.g. export.xml, build.xml, clean.xml).
AntPreferencePage.&Names__3=&Names:
AntPreferencePage.10=&Warn when an Ant runtime classpath does not contain a tools.jar library (used for tasks such as javac)
AntPreferencePage.12=&Show error dialog when Ant build fails

AntTasksPage.1 = Add &Task...
AntTasksPage.2 = &Edit Task...
AntTasksPage.3 = Remo&ve
AntTasksPage.addTaskDialogTitle = Add Task
AntTasksPage.title = Tas&ks
AntTasksPage.editTaskDialogTitle = Edit Task
AntTasksPage.8=A task with the name {0} already exists
AntTasksPage.9=A name must be provided for the new task

AntObjectLabelProvider.10=\ [contributed by {0}]

AntTypesPage.1 = Remo&ve
AntTypesPage.2 = Add &Type...
AntTypesPage.3 = &Edit Type...
AntTypesPage.typesPageTitle = T&ypes
AntTypesPage.addTypeDialogTitle = Add Type
AntTypesPage.editTypeDialogTitle = Edit Type
AntTypesPage.8=A type with the name {0} already exists
AntTypesPage.9=A name must be provided for the new type

AntPropertiesPage.title = Proper&ties
AntPropertiesPage.&Global_properties__1=&Global properties:
AntPropertiesPage.Glo&bal_property_files__2=Glo&bal property files:

AntPropertiesBlock.1 = Add P&roperty...
AntPropertiesBlock.2 = &Edit Property...
AntPropertiesBlock.3 = Rem&ove
AntPropertiesBlock.4 = Add F&iles...
AntPropertiesBlock.removeFileButton = Re&move
AntPropertiesBlock.Add_Property_2=Add Property
AntPropertiesBlock.Edit_User_Property_5=Edit User Property
AntPropertiesBlock.12=Property File Selection
AntPropertiesBlock.13=&Choose the property files to add:
AntPropertiesBlock.14=Add E&xternal...
AntPropertiesBlock.15=Overwrite property?
AntPropertiesBlock.16=A property named {0} already exists. Overwrite?
AntPropertiesBlock.17=Cannot overwrite
AntPropertiesBlock.18=A property named {0} is contributed from the {1} plug-in.

AddPropertyDialog.&Name__1=&Name:
AddPropertyDialog.&Value__2=&Value:

AntEditorPreferencePage.description=Ant Editor settings:
AntEditorPreferencePage.annotationsTab.title= Annotation&s
AntEditorPreferencePage.annotationPresentationOptions= Annotation &presentation:
AntEditorPreferencePage.annotations.showInText= Show in &text
AntEditorPreferencePage.annotations.showInOverviewRuler= Show in overview &ruler
AntEditorPreferencePage.35=&Highlight in text
AntEditorPreferencePage.36=Show in vertical r&uler
AntEditorPreferencePage.annotations.color= C&olor:
AntEditorPreferencePage.invalid_input_print_margin= Invalid print margin column specified
AntEditorPreferencePage.empty_input_print_margin= No print margin column specified
AntEditorPreferencePage.invalid_input_auto_activation= Invalid auto activation delay specified
AntEditorPreferencePage.empty_input_auto_activation= No auto activation delay specified

AntEditorPreferencePage.codeAssistTab.title= &Code Assist

AntEditorPreferencePage.general=Appeara&nce
AntEditorPreferencePage.printMarginColumn=Print margin col&umn:
AntEditorPreferencePage.showOverviewRuler=Show overview &ruler
AntEditorPreferencePage.showLineNumbers=Show lin&e numbers
AntEditorPreferencePage.highlightCurrentLine=Hi&ghlight current line
AntEditorPreferencePage.showPrintMargin=Sho&w print margin
AntEditorPreferencePage.Insert=Insert single &proposals automatically
AntEditorPreferencePage.&Enable_auto_activation_2=&Enable auto activation
AntEditorPreferencePage.Auto_activation_&delay__3=Auto activation de&lay:
AntEditorPreferencePage.Auto_activation_tri&ggers__4=Auto activation tri&ggers:
AntEditorPreferencePage.37=Displayed &tab width:
AntEditorPreferencePage.38=No tab width specified
AntEditorPreferencePage.39=Invalid tab width specified
AntEditorPreferencePage.40=&Insert spaces for tabs when typing

ClasspathModel.2=Ant Home Entries
ClasspathModel.3=Global Entries

GlobalClasspathEntriesSelectionDialog.0=Global Entries
GlobalClasspathEntriesSelectionDialog.1=&Select the global classpath entry and how it should be added to the local classpath:
GlobalClasspathEntriesSelectionDialog.2=As a &unit
GlobalClasspathEntriesSelectionDialog.3=As &individual entries

AntCodeFormatterPreferencePage.0=Indentation
AntCodeFormatterPreferencePage.1=Tab si&ze:
AntCodeFormatterPreferencePage.2=No tab size specified
AntCodeFormatterPreferencePage.3=Invalid tab size specified
AntCodeFormatterPreferencePage.4=U&se tab character instead of spaces
AntCodeFormatterPreferencePage.5=Ali&gn final '>' in multi-line element tags
AntCodeFormatterPreferencePage.6=Line Wrapping
AntCodeFormatterPreferencePage.7=Ma&ximum line width:
AntCodeFormatterPreferencePage.8=No maximum line width specified
AntCodeFormatterPreferencePage.9=Invalid maximum line width specified
AntCodeFormatterPreferencePage.10=&Wrap long element tags
AntCodeFormatterPreferencePage.11=White Space
AntCodeFormatterPreferencePage.12=Delete &blank lines (work in progress)
AntCodeFormatterPreferencePage.13=Comments
AntCodeFormatterPreferencePage.14=&Format comments (work in progress)