###############################################################################
# Copyright (c) 2001, 2011 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
_UI_LABEL_NEW_CATEGORY_NAME_WS=Web Services
_UI_LABEL_CREATE_NEW_WSDL_FILE=Create a new WSDL File
_UI_WIZARD_NEW_WSDL=WSDL File
_UI_WSDL_LABEL=WSDL Files
_UI_LABEL_GENERAL=General
_UI_LABEL_DOCUMENTATION=Documentation
_UI_LABEL_EXTENSIONS=Extensions
_UI_LABEL_REFACTOR=Refactor
_UI_EDITOR_NAME=WSDL Editor
_UI_RELOAD_DEPENDENCIES=Reload Dependencies
refactoring.menu.label=Refactor
AddBookmark.label=Add Boo&kmark...
AddBookmark.tooltip=Add Bookmark...
SelectRuler.label=Select Ruler
AddTask.label=Add &Task...
AddTask.tooltip=Add Task...
WSDLEditorModes=WSDL Editor Modes

command.wsdl.refactor.rename.element.name=Rename WSDL component
command.wsdl.refactor.rename.element.description=Renames WSDL component
command.wsdl.refactor.rename.element.label=Re&name...
WSDL_DESIGN_VIEW_DESCRIPTION=WSDL Editor Design View
WSDL_DESIGN_VIEW=WSDL Editor Design View
WSDL_SOURCE_VIEW_DESCRIPTION=WSDL Editor Source View
WSDL_SOURCE_VIEW=WSDL Editor Source View

_UI_PLUGIN_NAME=WSDL UI
providerName=Eclipse Web Tools Platform
##
WSDL_Source_target_name=WSDL Source
WSDL_hyperlink=WSDL Content
SOAP=SOAP
HTTP=HTTP
References=&References
_UI_RELOAD_DEPENDENCIES.tooltip = Reload Dependencies
extensibilityElementFilter.name = Extensiblity Element Filter
renameParticipant.name = WSDL Rename Particpant
internalEditorConfiguration.name = WSDL Editor Extension Configuration
extensionCategories.name = Extension Categories
contentGeneratorUI.name = UI Port and Binding Content Generators
adapterFactory.name = Adapter Factory Extension