# /*******************************************************************************
#  * Copyright (c) 2002-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 - Initial API and implementation
#  *******************************************************************************/
!-- Constants for strings  

_PLUGIN_NAME                  = Soap Monitor
_PROVIDER_NAME                = Eclipse.org
_UI_XML_EDITOR                = XML Editor
_UI_WSI_VALIDATOR             = WS-I Message Validator
_UI_ACTION_VALIDATE           = Validate WS-I Log File
_UI_WIZARD_VALIDATE_LOG_TITLE = Validate WS-I Message Log File


_UI_VIEW_SS_FILE_IMPORT_BUTTON = Import Files...
_UI_VIEW_SS_FILE_SOURCE_FILES = Workbench Files

_UI_DIALOG_SS_FILE_SHELL_TEXT  = Select File
_UI_DIALOG_SS_FILE_TITLE       = Select a File
_UI_DIALOG_SS_FILE_DESCRIPTION = Select a file from the workbench.

_UI_WIZARD_V_SELECT_LOG_FILENAME_HEADING   = Specify the WS-I Message Log File Name
_UI_WIZARD_V_SELECT_LOG_FILENAME_EXPL      = Select a folder and specify a message log file name
_UI_WIZARD_V_SELECT_WSDL_FILENAME_HEADING  = Include WSDL File
_UI_WIZARD_V_SELECT_WSDL_FILENAME_EXPL     = Optionally select a WSDL file for the Web service
_UI_WIZARD_V_SELECT_WSDL_ELEMENT_HEADING   = Specify the WSDL element to be Analyzed
_UI_WIZARD_V_SELECT_WSDL_ELEMENT_EXPL      = Indicate the name, type, and namespace of the WSDL element to be analyzed

_UI_WIZARD_V_INCLUDE_WSDL_BUTTON           = Include WSDL document for Web service
_UI_WIZARD_V_INCLUDE_WSDL_LABEL            = Enter the location of the WSDL document for the Web service
_UI_WIZARD_V_VALID_WSDL_LABEL              = *Note: You can only select the Next button if the WSDL document is valid.
_UI_WIZARD_V_WORKBENCH_BUTTON              = Workbench...
_UI_WIZARD_V_BROWSE_BUTTON                 = Browse...
_UI_WIZARD_V_SEARCH_UDDI_BUTTON            = Search UDDI...

_UI_WIZARD_V_GROUP_TEXT_ELEMENT            = The WSDL element
_UI_WIZARD_V_GROUP_TEXT_TYPE               = type
_UI_WIZARD_V_RADIO_PORT                    = port
_UI_WIZARD_V_RADIO_BINDING                 = binding
_UI_WIZARD_V_RADIO_PORT_TYPE               = portType
_UI_WIZARD_V_RADIO_OPERATION               = operation
_UI_WIZARD_V_RADIO_MESSAGE                 = message
_UI_WIZARD_V_LABEL_NAME                    = name:
_UI_WIZARD_V_LABEL_NAMESPACE               = namespace:
_UI_WIZARD_V_LABEL_PARENT                  = parent:

_UI_LOG_EDITOR                    = Text Editor
_UI_WSI_VALIDATOR                 = WS-I Message Validator
_UI_ACTION_VALIDATE               = Validate WS-I Log File
_UI_WIZARD_VALIDATE_LOG_TITLE           = Validate WS-I Message Log File
_UI_WIZARD_SELECT_LOG_FILENAME_HEADING  = Specify the WS-I Message Log File Name
_UI_WIZARD_SELECT_LOG_FILENAME_EXPL     = Select a folder and specify a message log file name

_UI_VALIDATION_FAILED             = Validation Failed
_UI_UNABLE_TO_VALIDATE            = Unable to Validate
_UI_THE_WSIMSG_FILE_IS_NOT_VALID  = The WS-I Message Log file is not valid.  See the Problems view for a list of the validation errors.
_UI_PROBLEMS_READING_WSIMSG_FILE  = Problems reading the WS-I Message Log file.  See the Problems view for a list of errors.
_UI_VALIDATION_SUCEEDED           = Validation Succeeded
_UI_VALIDATION_WARNINGS_DETECTED  = However warnings have been issued. See the Problems view for a list of the validation warnings.
_UI_THE_WSIMSG_FILE_IS_VALID      = The WS-I Message Log file is valid.
_UI_VALIDATION_FAILED             = Validation Failed
_UI_MESSAGE_LIMITE_EXCEEDED       = The WS-I Message Log file is not valid.  The message limit for the Problems view has been exceeded.  Please increase the limit and try again.

_ERROR_INVALID_LOG_FILE_EXTENSION = The file name extension can only be ".wsimsg".
_WARNING_FILE_ALREADY_EXISTS      = Warning: The file already exists and will be overwritten. 
_ERROR_INVALID_LOG_FILE_EXTENSION = The file name extension can only be ".wsimsg".
_WARNING_FILE_ALREADY_EXISTS      = Warning: The file already exists and will be overwritten. 