###############################################################################
# Copyright (c) 2003, 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
###############################################################################
NEW_BUTTON_LABEL=New...
NEW_HANDLER_WIZARD_WINDOW_TITLE=New Handler
NEW_HANDLER_WIZARD_PAGE_TITLE=Web Service Handler
NEW_HANDLER_WIZARD_PAGE_DESC=Create a new web service handler.
HANDLER_DISPLAY_NAME_LABEL=Dispaly name:
HANDLER_DESCRIPTION_LABEL=Description:
HANDLER_NAME_LABEL=Handler name:
HANDLER_CLASS_NAME_LABEL=Handler class:
HANDLER_INIT_PARAM_WIZARD_WINDOW_TITLE=Handler Initialization Parameter
HANDLER_INIT_PARAM_WIZARD_PAGE_TITLE=Enter Handler Initialization Parameter
HANDLER_INIT_PARAM_WIZARD_PAGE_DESC=Creare a new handler initialization parameter.
HANDLER_SOAP_HEADER_WIZARD_WINDOW_TITLE=Handler SOAP Headers
HANDLER_SOAP_HEADER_WIZARD_PAGE_TITLE=Enter Handler SOAP Headers
HANDLER_SOAP_HEADER_WIZARD_PAGE_DESC=Create a new SOAP header.
HANDLER_NAMESPACE_URL_LABEL=Namespace URL:
HANDLER_LOCAL_PART_LABEL=Local part:
PortComponentRefLabelProvider_UI_1=Service Endpoint Interface:
PortComponentRefLabelProvider_UI_2=Port Component Link:
WebServiceNavigatorGroupType_UI_0=Services
WebServiceNavigatorGroupType_UI_1=Clients
WebServiceNavigatorGroupType_UI_2=Handlers
WebServiceFilesContribution_UI_0=Files
WebServiceGroupContentExtension_UI_1=Open with Web Browser
WebServiceNavigatorGroup_UI_0=JSR-109 Web Services
Server_Invalid_For_Exisitng_EAR_UI_=Selected target server "{0}" is invalid for the existing EAR project "{1}"
ServiceReferenceSelectionWizard_UI_6=Service Reference Selection
ServiceReferenceSelectionWizard_UI_7=Service Reference Snippet
ServiceReferenceSelectionPage_UI_0=Select a Service Reference
ServiceReferenceSelectionPage_UI_1=Service Reference owner:
ServiceReferenceSelectionPage_UI_2=New Service Reference...
SERVICE_CLASSES_UI_=Service Classes
PORT_UI_=Port:
HANDLER_UI_=Handler:
WSDL_PORT_UI_=WSDL Port:
SERVICE_IMPL_UI_=ServiceImpl:
WSDL_UI_=WSDL:
WS_NAV_JOB0=Indexing JSR-109 Web Services
WS_NAV_JOB1=Load Web Service Components
WS_NAV_JOB2=Add JSR-109 Web Services node to viewer
WS_NAV_JOB3=Update JSR-109 Web Services node in viewer
WS_NAV_JOB4=Update JSR-109 Web Services node in viewer
WS_NAV_JOB5=Updating Index of Web Service Components
