###############################################################################
# Copyright (c) 2000, 2010 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
# yyyymmdd bug      Email and other contact information
# -------- -------- -----------------------------------------------------------
# 20100513   311187 mahutch@ca.ibm.com - Mark Hutchinson, Capitalize context action item 'Generate Java bean skeleton'
###############################################################################

#
# Messages in plugin.xml.
#
PLUGIN_NAME=Web Services Creation Graphical User Interface
PLUGIN_PROVIDER=Eclipse Web Tools Platform

PLUGIN_NEW_CATEGORY_NAME_WS=Web Services
PLUGIN_NEW_WIZARD_NAME_WS_SERVICE=Web Service
PLUGIN_EXPORT_WIZARD_NAME_WS=Web Service
PLUGIN_NEW_WIZARD_DESC_WS_SERVICE=Create a new XML web service.
PLUGIN_EXPORT_WIZARD_DESC_WS=A wizard for exporting a web service.

#
#	Web Services Preferance Pages
#
# Dialogs
CHECKBOX_SHOW_DEPLOY_WEB_SERVICE_DIALOG=Hide &Create Web service Dialog
CHECKBOX_SHOW_GENERATE_SKELETON_DIALOG=Hide Generate Java Bean S&keleton Dialog
CHECKBOX_SHOW_GENERATE_WSDL_FILES_DIALOG=Hide Generate WSDL Files Dialog
CHECKBOX_SHOW_PUBLISH_WSDL_DIALOG=Hide Publish &WSDL Dialog

PREFERENCE_CATEGORY_SCENARIO_DEFAULTS=Scenario Defaults


#
# Preferences Tooltips
#
#Action Dialogs
TOOLTIP_PPAD_CHECKBOX_DEPLOY=Hides the dialog for deploying a Web service action
TOOLTIP_PPAD_CHECKBOX_SKELETON=Hides the dialog for generating Java bean Skeleton action
TOOLTIP_PPAD_CHECKBOX_WSDL=Hides the dialog for generating WSDL files action
TOOLTIP_PPAD_CHECKBOX_PUBLISH=Hides the dialog for publishing the WSDL action

#
# Pop-up actions
#
ACTION_DEPLOY_WEBSERVICE=Create Web Service
ACTION_GENERATE_JAVA_SKELETON=Generate Java Bean Skeleton
ACTION_PUBLISH_WSDL=Publish WSDL File

#
# Wizards.
#
WIZARD_TITLE_WSS=Web Service
