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

create.web.module_ui_=Create a J2EE Web project
create.web.project_ui_=Create a J2EE Web project
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 Project 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_=J2EE Web Project
new.web.project.description_ui_=Create a Dynamic 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...