###############################################################################
# Copyright (c) 2000, 2005 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# PDE plugin.xml resources
#
name = Plug-in Development UI
provider-name = Eclipse.org
expoint.pluginContent.name=Plug-in content wizards
expoint.newExtension.name=Extension wizards
expoint.newExtensionPoint.name=Extension point wizards
expoint.templates.name = Extension Templates
expoint.schemaMap.name=Schema mappings
expoint.source.name = Source Locations
expoint.samples.name = Code Samples

perspective.name=Plug-in Development

preferences.main.name= Plug-in Development
preferences.target.name = Target Platform
preferences.compilers.name = Compilers
preferences.editor.name = Editors

binaryFilter.name = Binary plug-in and feature projects
binaryFilter.desc = Hides Java projects created by importing Eclipse plug-ins \
as binary (no source code)

new.category.name=Plug-in Development
new.pluginProject.name=Plug-in Project
new.pluginProject.description=Create a Plug-in Project
new.pluginWithJarsProject.name=Plug-in from existing JAR archives
new.pluginWithJarsProject.description=Create a plug-in project from existing JAR archives.
new.fragmentProject.name=Fragment Project
new.fragmentProject.description=Create a Plug-in Fragment Project
new.schemaFile.name = Extension Point Schema
new.schemaFile.description = Create an Extension Point Schema File
new.convert.name= Convert Projects to Plug-in Projects...
new.convert.description=Create a Plug-in project by converting an existing project.
new.feature.name=Feature Project
new.feature.description=Create a Feature project
new.patch.name=Feature Patch
new.patch.description=Create a Feature Patch
new.site.name=Update Site Project
new.site.description=Create an Update Site project

PluginImportWizard.label=External Plug-ins and Fragments
PluginImportWizard.description=Create projects from plug-ins and fragments in the file system.

FeatureImportWizard.label=External Features
FeatureImportWizard.description=Create projects from features in the file system as part of \
in conjunction with the feature-based launching.

PluginSearchPage.label = Plug-in Search
PluginSearch.references = Find References

PluginExportWizard.label=Deployable plug-ins and fragments
PluginExportWizard.description=Export the selected plug-ins and/or fragments \
in a form suitable for deploying in an Eclipse product.

FeatureExportWizard.label=Deployable features
FeatureExportWizard.description=Export the selected features \
in a form suitable for deploying in an Eclipse product.

ProductExportWizard.label=Eclipse product
ProductExportWizard.description=Export an Eclipse product.
DependencyExtent.type = &Type


### Individual extension templates ############
template.helloWorld.name = "Hello world" Action Set
template.helloWorld.desc = This template creates a simple action set \
that adds <b>Sample Menu</b> to the menu bar and a button to \
the tool bar. Both the menu item in the new menu and the button \
invoke the same <b>Sample Action</b>. Its role is to open a \
simple message dialog with a message of your choice.

template.intro.name = Intro
template.intro.desc = This wizard creates a minimal standalone RCP application with an intro. \
Sample intro consists of three static pages, and optionally \
a page with content created dynamically.

template.propertyPages.name = Property Page
template.propertyPages.desc = This template adds a property page to a resource and will \
appear in the Properties Dialog for that resource.  This property page can be used to view \
and set application-specific properties of a resource.

template.editor.name = XML Editor
template.editor.desc = This template creates a basic XML editor.  It has all the basic functions \
of an editor, such as cut, copy, paste, find, etc.  It also has syntax highlighting and supports double-clicking.


template.popupMenus.name = Popup Menu
template.popupMenus.desc = This template adds a submenu and a new action to a target object's \
popup menu.  This contribution will appear in all viewers where an object of the specified type \
is selected.

template.view.name = View
template.view.desc = This template creates a workbench view. \
The view is contributed to the workbench by \
creating a category. The view can be opened by selecting \
<b>Window</b>, <b>Show View</b> and then <b>Other...</b> \
on the menu bar. The template offers several choices including \
pop-up menu support, local tool bar, double-click, sorting and \
filtering.

template.multiPageEditor.name = Multi-page Editor
template.multiPageEditor.desc = This template creates a \
multi-page editor. It works on text files with the chosen extension. \
The editor has three pages: <b>Edit</b> where you enter text, \
<b>Properties</b> that allows you to change font of the result \
and <b>Preview</b> that shows sorted words from the <b>Edit</b> page \
using the font set in <b>Properties</b>. To open the editor, choose \
<b>File</b>, <b>New</b> then <b>Other...</b> from the menu bar. \
In the "Simple" category, choose to create a new file. Use any file \
name, but use the extension the editor is registered for (*.mpe by \
default).

template.newWizard.name = New File Wizard
template.newWizard.desc = This template creates a \
wizard that can create a new file in the workspace. It is designed to \
generate files that can be opened by a <b>Multi-Page Editor</b>. \
To test the wizard, select <b>File</b>, \
<b>New</b> then <b>Other...</b> from the menu bar. When the master \
wizard opens, select the created category and the new wizard registered \
for that category. Make sure that the chosen extension matches \
the extension the multi-page editor is registered for (*.mpe by \
default).

template.preferences.name = Preference Page
template.preferences.desc = This template creates a \
page that is contributed to the Preferences. It demonstrates how \
to create common preference fields and how to save and restore \
values between invocations. To see the result, select \
<b>Window</b> then <b>Preferences...</b> from the menu bar.

template.help.name = Help Table of Contents
template.help.desc = This template creates a Help table of contents. \
If this table is set to primary, it can be standalone, or integrated \
into pre-set categories. If the table is not set to primary, it can \
optionally be integrated into a primary table of contents for testing. 

template.builder.name = Sample Incremental Project Builder and Project Nature

pluginContent.defaultPlugin.name= Default Plug-In Structure
pluginContent.defaultPlugin.description=Generates plug-in \
manifest (plugin.xml) and plug-in top-level Java class. \
When finished, the wizard will open plug-in manifest editor. \
The plug-in will be ready to work, compile and run, but will \
contain no extensions.


pluginContent.helloWorld.name = Hello, World
pluginContent.helloWorld.description=\
<p>This wizard creates standard plug-in directory structure and \
adds the following:</p>\
<li><b>Action set</b>. %template.helloWorld.desc%</li>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.ui.actionSets</li>

pluginContent.intro.name = RCP application with an intro
pluginContent.intro.description=\
<p>%template.intro.desc%</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.runtime.products</li>\
<li>org.eclipse.ui.intro</li>\
<li>org.eclipse.ui.intro.config</li>\
<li>org.eclipse.core.runtime.applications</li>\
<li>org.eclipse.ui.perspectives</li>\
<li>org.eclipse.ui.intro.configExtension (if dynamic content selected)</li>

pluginContent.propertyPages.name = Plug-in with a property page
pluginContent.propertyPages.description=\
<p>This wizard creates standard plug-in directory structure and \
adds the following:</p>\
<li><b>Property Page</b>. %template.propertyPages.desc%</li>\
<p><b>Extension Used</b></p>\
<li>org.eclipse.ui.propertyPages</li>

pluginContent.popupMenus.name = Plug-in with a popup menu
pluginContent.popupMenus.description=\
<p>This wizard creates a standard plug-in directory structure and \
adds the following:</p>\
<li><b>Popup Menu</b>. %template.popupMenus.desc%</li>\
<p><b>Extension Used</b></p>\
<li>org.eclipse.ui.popupMenus</li>

pluginContent.editor.name = Plug-in with an editor
pluginContent.editor.description=\
<p>This wizard creates standard plug-in directory structure and \
adds the following:</p>\
<li><b>Editor</b>. %template.editor.desc%</li>\
<p><b>Extension Used</b></p>\
<li>org.eclipse.ui.editors</li>

pluginContent.view.name = Plug-in with a view
pluginContent.view.description=\
<p>This wizard creates standard plug-in directory structure and \
adds the following:</p>\
<li><b>Sample view</b>. %template.view.desc%</li>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.ui.views</li>

pluginContent.multiPageEditor.name = Plug-in with a multi-page editor
pluginContent.multiPageEditor.description=\
<p>This wizard creates standard plug-in directory structure and \
adds the following:</p>\
<li><b>Sample Multi-page Editor</b>. %template.multiPageEditor.desc%</li>\
<li><b>Sample New Wizard</b>. %template.newWizard.desc%</li>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.ui.editors</li>\
<li>org.eclipse.ui.newWizards</li>

pluginContent.builder.name = Plug-in with a incremental project builder
pluginContent.builder.description=\
<p>This wizard creates standard plug-in directory structure and \
adds the following:</p>\
<li><b>Sample Incremental Project Builder</b>. The sample builder checks XML files in the project \
and adds a problem marker to not well formed files.</li>\
<li><b>Sample Project Nature</b>. This nature owns the builder.  Builder runs for projects \
of this nature.</li>\
<li><b>Sample Problem Marker</b>. The builder uses this sub-type of a problem marker to mark errors.</li>\
<li><b>Sample Popup Menu Action</b>. An action in a project context menu allows adding or removing \
the sample nature to or from a workspace project.</li>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.resources.builders</li>\
<li>org.eclipse.core.resources.markers</li>\
<li>org.eclipse.core.resources.natures</li>\
<li>org.eclipse.ui.popupMenus</li>

pluginContent.mail.name = RCP Mail Template
pluginContent.mail.description=\
<p>This wizard creates a standalone RCP application that shows how to:</p>\
<li>add top-level menu and toolbar with actions</li>\
<li>add keybindings to actions</li>\
<li>create views that can't be closed and multiple instances of the same view</li>\
<li>create perspectives with placeholders for new views</li>\
<li>use the default About dialog</li>\
<li>create a product definition</li>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.runtime.applications</li>\
<li>org.eclipse.core.runtime.products</li>\
<li>org.eclipse.ui.commands</li>\
<li>org.eclipse.ui.perspectives</li>\
<li>org.eclipse.ui.views</li>

pluginContent.helloRCP.name = Hello RCP
pluginContent.helloRCP.description=\
<p>This wizard creates a minimal standalone RCP application that consists of an application window with a title.</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.runtime.applications</li>\
<li>org.eclipse.ui.perspectives</li>\

pluginContent.viewRCP.name = RCP application with a view
pluginContent.viewRCP.description=\
<p>This wizard creates a standalone RCP application that consists of an application window with a single view.</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.runtime.applications</li>\
<li>org.eclipse.ui.perspectives</li>\
<li>org.eclipse.ui.views</li>\

pluginContent.choice.name = Custom plug-in wizard
pluginContent.choice.description=This wizard creates standard \
plug-in directory structure and provides for choosing additional \
content from a list of templates.

editors.pluginManifest.name = Plug-in Manifest Editor
editors.schema.name = Extension Point Schema Editor
editors.buildProperties.name = Build Properties Editor
editors.featureManifest.name = Feature Manifest Editor
editors.siteManifest.name = Site Manifest Editor
editors.sample.name = Code Sample Editor

views.category.name = PDE
views.plugins.name = Plug-ins
views.dependencies.name = Plug-in Dependencies
ViewCommand.pluginsView.name = Plug-ins
ViewCommand.pluginsView.description = Show the Plug-ins view
ViewCommand.dependenciesView.name = Plug-in Dependencies
ViewCommand.dependenciesView.description = Show the Plug-in Dependencies view

natures.pluginNature.name= Plug-in Development
natures.featureNature.name= Feature Development

builders.manifestBuilder.name = Plug-in Manifest Builder
builders.schemaBuilder.name = Extension Point Schema Builder
builders.featureBuilder.name = Feature Manifest Builder

newExtension.templates = Extension Templates
newExtension.templates.hello.name = "Hello, World" action set
newExtension.templates.hello.desc = <p>%template.helloWorld.desc%</p>

newExtension.templates.intro.name = Eclipse Intro 
newExtension.templates.intro.desc = <p>%template.intro.desc%</p>

newExtension.templates.view.name = Sample View
newExtension.templates.view.desc = <p>%template.view.desc%</p>

newExtension.templates.multiPageEditor.name = Multi-page Editor
newExtension.templates.multiPageEditor.desc = <p>%template.multiPageEditor.desc%</p>

newExtension.templates.newWizard.name = New File Wizard
newExtension.templates.newWizard.desc = <p>%template.newWizard.desc%</p>

newExtension.templates.preferences.name = Preference Page
newExtension.templates.preferences.desc = <p>%template.preferences.desc%</p>

newExtension.templates.propertyPages.name = Property Page
newExtension.templates.propertyPages.desc = <p>%template.propertyPages.desc%</p>

newExtension.templates.editor.name = Editor
newExtension.templates.editor.desc = <p>%template.editor.desc%</p>

newExtension.templates.popupMenus.name = Popup Menu
newExtension.templates.popupMenus.desc = <p>%template.popupMenus.desc%</p>

newExtension.templates.help.name = Help Content
newExtension.templates.help.desc = <p>%template.help.desc%</p>

newExtension.templates.builder.name = New plug-in project with a sample project builder and nature

newExtension.templates.builder.name = Project Builder and Nature
newExtension.templates.builder.desc = <p>This template creates an incremental \
project builder and a project nature. The sample builder checks XML files in the project \
and adds a problem marker to not well formed files. The builder runs for projects \
of the sample nature.</p><p>Select <b>Add/Remove Sample Nature</b> action from \
a project context menu, to toggle the nature on a project.</p>

newExtension.generic = Generic Wizards
newExtension.generic.name = Schema-based Extension
newExtension.generic.desc = <p>Adds a new extension based \
on its schema information. If the extension point schema (definition) \
can be found, you will be able to create the correct child elements \
by choosing <b>New</b> on the pop-up menu while the parent element \
is selected. The property sheet will show expected attributes for \
each element and will use cell editor appropriate for the attribute \
type.</p>\
<p>If the extension point definition cannot be found, you will still \
be able to add or remove attributes but they will all be treated as \
text and there will be no constraints on their names or number.</p>


org.eclipse.pde.ui.tools = &PDE Tools
MigrationAction.label = Migrate to 3.0...
popupMenus.createJar.label = Create Ant &Build File
popupMenus.buildFragment.label = Create Ant &Build File
popupMenus.buildPlugin.label = Create Ant &Build File
popupMenus.createHelpIndex.label = Create &Help Index
popupMenus.buildSite.label = Build &Site

UpdateClasspathAction.label= &Update Classpath...
UpdateClasspathAction.description=Updates classpath with the settings specified in the manifest files

OpenDependenciesAction.label= Ope&n Dependencies
OpenDependenciesAction.description=Show plug-in dependencies in the Plug-in Dependencies view

launcher.shortcut.label= Eclipse Application
EclipseApplicationShortcut.description.debug = Debug Eclipse Application
EclipseApplicationShortcut.description.run = Run Eclipse Application
launcher.junit.name = JUnit Plug-in Test
JUnitApplicationShortcut.description.debug = Debug JUnit Plug-in Test
JUnitApplicationShortcut.description.run = Run JUnit Plug-in Test
SWTApplicationShortcut.description.debug = Debug SWT Application
SWTApplicationShortcut.description.run = Run SWT Application

launchConfigurationType.name = Eclipse Application
launchConfigurationTab.firstTab.name = Arguments
launchConfigurationTab.advancedTab.name = Plug-ins and Fragments
launchConfigurationTab.tracingTab.name = Tracing Options
launcher.swt.name = SWT Application

workbenchLauncherTabGroup.description.debug=Create a configuration to launch an Eclipse application in debug mode.
workbenchLauncherTabGroup.description.run=Create a configuration to launch an Eclipse application.
jUnitTabGroup.description.debug=Create a configuration that will launch a JUnit plug-in test in debug mode.
jUnitTabGroup.description.run=Create a configuration that will launch a JUnit plug-in test.
swtLauncherTabGroup.description.debug=Create a configuration to launch an SWT application in debug mode.
swtLauncherTabGroup.description.run=Create a configuration to launch an SWT application.

decorator.label = Binary Plug-in Projects
decorator.desc = Decorates plug-in projects imported using \
'External Plug-ins and Fragments' wizard, allowing you to \
differentiate between binary and source projects.

AddTask.label = Add Task...
AddTask.tooltip = Add Task
AddBookmark.label = Add Bookmark...
AddBookmark.tooltip = Add Bookmark

PreviewReference.label = &Preview Reference Document
PropertyPage.selfHosting = Self-Hosting
PropertyPage.compilers = Plug-in Manifest Compiler
Plugin.dependencies.container = Plug-in Dependencies

Plugin.WorkingSet = Plug-ins
new.product.config = Product Configuration
new.product.desc = Create a new Eclipse product configuration
product.editor = Product Configuration Editor
