###############################################################################
# Copyright (c) 2003, 2006 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
###############################################################################

pluginName=WTP Servlet UI Plug-in
pluginVendor=Eclipse.org
create.web.module_ui_=Create a J2EE Web Module
create.web.project_ui_=Create a J2EE Web module
web.actions.description_ui_=Actions for J2EE Web Development
create_servlet_ui_=Create Java Servlet file
war.import.description_ui_=Import an external WAR file into an Web project
war.import.action.description_ui_=Import WAR File...
war.export.description_ui_=Export a Web project into a WAR file
war.export.action.description_ui_=Export WAR File...
WarexportWizard.name=WAR file
WarexportWizard.description=Export a Web Module into an external WAR file
WarImportWizard.name=WAR file
WarImportWizard.description=Import an external WAR file into a Web Project
web.category_ui_=Web
web.project_ui_=Dynamic Web Project
static.web.project_ui_=Static Web Project
new.web.project.description_ui_=Create a Dynamic Web project
ConvertWebProjectType=Convert Web Project
convertWebProjectTypeAction.label=Convert to a Dynamic Web project...
ConvertWebProjectTypeAction.tooltip=Web Module Conversion Wizard
convertToDynamic=Convert to Web Module...
ServletWebRegionWizard.name=Servlet
ServletWebRegionWizard.description=Create a new Servlet
ServletWebRegionWizard.title=New Servlet
Servlet_UI_=Servlet...
FilterWebRegionWizard.name=Filter
FilterWebRegionWizard.description=Create a new Filter
servletAnnotationDecorator=Servlet Annotation Decorator
servletAnnotationDecorator.description=Adds a decorator to an annotated servlet.
web-project-wizard-name = Web Project
web-project-wizard-description = Create a Web project
webAppLibrariesContainerName = Web App Libraries

ListenerWebRegionWizard.name=Listener
ListenerWebRegionWizard.description=Create a new Application Lifecycle Listener

enhanced.java.for.web.name=Enhanced Java Rendering for Web
j2ee=Java EE
j2ee.actions.description_ui_=Actions for J2EE Development
