###############################################################################
# Copyright (c) 2001, 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
###############################################################################
# NLS_MESSAGEFORMAT_VAR
_UI_DEPENDENCIES_CHANGED=Dependencies Changed
_UI_DEPENDENCIES_CHANGED_REFRESH=One or more dependencies have changed.  Do you want to refresh the editor to reflect these changes?
_UI_EDIT_NAMESPACES_DIALOG_TITLE=Edit Namespaces
_UI_PREF_PAGE_CREATING_FILES=Creating files
_UI_REMEMBER_MY_DECISION_LABEL=&Remember my decision
_UI_PREF_PAGE_DEFAULT_TARGET_NAMESPACE=Default &Target Namespace:
_UI_PREF_PAGE_DEFAULT_PREFIX=Default Prefi&x:
_UI_PREF_GENERATE_SEPARATE_INTERFACE=&Generate Port Type in separate WSDL file
_UI_PREF_PAGE_INTERFACE_DEFAULT_PREFIX=Port Type &Namespace Prefix: 
_UI_PREF_PAGE_INTERFACE_DEFAULT_TARGET_NAMESPACE=P&ort Type Target Namespace:
_UI_PREF_PAGE_INTERFACE_FILE_SUFFIX=Port Type WSDL File Name &Suffix: 
_UI_REGEN_BINDINGS_ON_SAVE_QUESTIONMARK=Regenerate Bindings On Save?
_UI_LABEL_WARNING_DUPLICATE_NAME_EXISTS=Warning: duplicate name already exists
_UI_LABEL_NAMESPACE_URIS_TO_BE_INCLUDED=Namespace URIs to be included
_UI_PREF_PAGE_AUTO_REGENERATE_BINDING=&Regenerate Binding on save
_UI_PREF_PAGE_PROMPT_REGEN_BINDING_ON_SAVE=Pro&mpt Regenerate Binding on save
_UI_LINK_TEXT_MODIFY_DEFAULT_VALUES_SETTING=Modify WSDL Files preferences
_UI_EDIT_NAMESPACES=Edit Namespaces...
_UI_ACTION_ADD_IMPORT=Add Import
_UI_ACTION_ADD_BINDING=Add Binding
_UI_ACTION_ADD_PART=Add &Part
_UI_ACTION_ADD_XML_SCHEMA_ELEMENT=Add XML Schema Element
_UI_ACTION_REORDER_PART=Reorder Part
_UI_ACTION_REORDER_MESSAGE_REFERENCE=Reorder Message Reference
_UI_ACTION_OPEN_IN_NEW_EDITOR=&Open In New Editor
_UI_ACTION_EXISTING_MESSAGE=&Existing Message...
_UI_ACTION_EXISTING_ELEMENT=&Existing Element...
_UI_ERROR_NAMESPACE_INVALID=The target namespace is invalid
_UI_ERROR_FILE_ALREADY_EXISTS=File already exists: {0}
_UI_DESCRIPTION_NEW_WSDL_FILE=Specify the attributes for the new WSDL file.
_UI_REGEN_BINDINDS_ON_SAVE=Regenerate Bindings On Save
_UI_RADIO_DOCUMENT_LITERAL=&document literal
_UI_TITLE_SPECIFY_PORTTYPE=Specify Port Type
_UI_LABEL_BINDING_PROTOCOL=&Protocol:
_UI_LABEL_BINDING_PROTOCOL_IN_PROPERTIES_SECTION=Protocol:
_UI_LABEL_INLINE_SCHEMA_OF=Inline Schema of 
_UI_LABEL_TARGET_NAMESPACE=Target &namespace:
_UI_LABEL_PREFIX_WITH_COLON=Prefi&x:
_UI_LABEL_CREATE_WSDL_SKELETON=&Create WSDL Skeleton
_UI_LABEL_CREATE_NEW_WSDL_FILE=Create a new WSDL File
_UI_LABEL_SOAP_BINDING_OPTIONS=SOAP Binding Options
_UI_LABEL_HTTP_BINDING_OPTIONS=HTTP Binding Options
_UI_LABEL_ADD_EXTENSION_ELEMENT=Add Extension Element
_UI_SPECIFY_BINDING_DETAILS_LABEL=Specify the details of the binding that will be created
_UI_SPECIFY_PORT_DETAILS_TO_BE_CREATED=Specify the details of the port that will be created
_UI_LABEL_NEW_BINDING=New Binding
_UI_LABEL_NEW_PORTTYPE=New PortType
_UI_LABEL_REFERENCE_KIND=Reference Kind:
_UI_LABEL_NEW_MESSAGE=New Message
_UI_RADIO_RPC_ENCODED=rpc &encoded
_UI_RADIO_RPC_LITERAL=&rpc literal
_UI_ACTION_EXISTING_TYPE=&Existing Type...
_UI_SPECIFY_PORT_DETAILS=Specify Port Details
_UI_TITLE_SPECIFY_BINDING=Specify Binding
_UI_TITLE_SPECIFY_BINDING_DETAILS=Specify Binding Details
_UI_ERROR_FILE_MUST_END_WITH_WSDL=Error: File must end with wsdl
_UI_TITLE_SPECIFY_MESSAGE=Specify Message
_UI_TITLE_NEW_WSDL_FILE=New WSDL File
_UI_NAME_INVALID_CHAR_END=')
_UI_ACTION_RENAME=Rename
_UI_FOLDER_TYPES=Types
_UI_CANCEL_LABEL=Cancel
_UI_ACTION_NEW_TYPE=&New Type...
_UI_ACTION_SET_TYPE=Set &Type
_UI_FOLDER_IMPORTS=Imports
_UI_FOLDER_SERVICES=Services
_UI_FOLDER_BINDINGS=Bindings
_UI_FOLDER_INTERFACES=Interfaces
_UI_FOLDER_PORTTYPES=PortTypes
_UI_FOLDER_MESSAGES=Messages
_UI_ACTION_NEW_MESSAGE=&New Message...
_UI_ACTION_NEW_ELEMENT=&New Element...
_UI_ACTION_SET_ELEMENT=Set &Element
_UI_ACTION_SET_MESSAGE=&Set Message
_UI_ACTION_SET_BINDING=&Set Binding
_UI_CHECKBOX_OVERWRITE=&Overwrite existing binding information
_UI_ACTION_SET_PORTTYPE=&Set PortType
_UI_ACTION_EDIT_PORT_ADDRESS=Edit Address
_UI_ACTION_ADD=Add
_UI_ACTION_OPEN_IMPORT=&Open Import
_UI_UNSPECIFIED=(unspecified)
_UI_LABEL_NAME=&Name
_UI_LABEL_TYPE=Ty&pe:
_UI_LABEL_TYPE_RADIO=&Type
_UI_BUTTON_NEW=&New...
_UI_LABEL_ELEMENT=Ele&ment:
_UI_LABEL_ELEMENT_RADIO=&Element
_UI_BUTTON_BROWSE=&Browse...
_UI_BINDING_WIZARD=Binding Wizard
_UI_BINDING=&Binding
_UI_LABEL_MESSAGE=&Message:
_UI_LABEL_REMOVE=Remove
_UI_TITLE_SELECT=Select
_UI_TITLE_SELECT_FILE = Select File
_UI_DESCRIPTION_SELECT_WSDL_OR_XSD = Select a WSDL or XSD file to import.
_UI_TITLE_OPTIONS=Options
_UI_YES_LABEL=Yes
_UI_PORT_TYPE=Port &Type
INTERFACE_HEADER_TEXT=Port Type
_UI_PORT_WIZARD=Port Wizard
_UI_NO_LABEL=No
_UI_ADD=&Add...
_UI_HELP=Help
_UI_LABEL_NAME_FILTER=&Name (? = character, * = any string):
_WARN_NAME_MUST_CONTAIN_AT_LEAST_ONE_CHAR=IWAX1415W Name field must contain at least one character
_WARN_NAME_HAS_SPACE=IWAX1402W Name field cannot contain a space
_WARN_NAME_INVALID_FIRST=IWAX1403W First character in name field must be one of the following ('_', ':', 'letter')
_WARN_NAME_INVALID_CHAR=IWAX1404W Name field contains invalid character ('
_WARN_WSI_COMPLIANCE_PROTOCOL=WS-I compliance warning: protocol should be {0}
_ERROR_WSI_COMPLIANCE_PROTOCOL=WS-I compliance error: protocol must be {0}
_WARN_WSI_COMPLIANCE_RPC_ENCODING=WS-I compliance warning: binding should not be rpc encoded
_ERROR_WSI_COMPLIANCE_RPC_ENCODING=WS-I compliance error: binding cannot be rpc encoded
_WSI_COMPLIANCE_LINK_TEXT=Modify project compliance setting

_UI_LABEL_UNDEFINED_ARG1={0} undefined
_UI_LABEL_OR_UNDEFINED_ARG2={0} or {1} undefined
_UI_LABEL_NO_OBJECT_SPECIFIED_ARG1=no {0} specified
_UI_LABEL_NO_PARAMETERS_SPECIFIED=no parameters specified

_UI_LABEL_DEFAULT = default

_UI_EDITOR_NAME=WSDL Editor
_UI_PREF_PAGE_ENABLE_AUTO_IMPORT_CLEANUP=A&utomatically remove unused WSDL and XSD imports and XML Namespace entries
_UI_PREF_PAGE_ENABLE_AUTO_OPEN_IMPORT_DIALOG = &Prompt for location when adding an import
# START NON-TRANSLATABLE
_UI_LABEL_HTTP_GET_RADIO=HTTP &GET
_UI_LABEL_HTTP_POST_RADIO=HTTP PO&ST
