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

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

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


#
# Pop-up actions
#
ACTION_DEPLOY_WEBSERVICE=Create Web service

