###############################################################################
# Copyright (c) 2010, 2012 JBoss by Red Hat 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
#     JBoss by Red Hat - subsequent contributions and maintenance
###############################################################################
PLUGIN_NAME=BPEL Editor
BPEL_EDITOR_NAME=Business Process Editor
HOVERHELP_HELPER_NAME=Hoverhelp Helper
EXPRESSION_LANGUAGE_EDITORS_NAME=Expression Language Editors
NEW_BPEL_BUSINESS_PROCESS_NAME=Business Process

DETAILS_PAGES_DESCRIPTION_LABEL=Description
DETAILS_PAGES_DETAILS_LABEL=Details
DETAILS_PAGES_COMPENSATION_LABEL=Compensation
DETAILS_PAGES_REPEAT_LABEL=Repeat
DETAILS_PAGES_EXPIRATION_LABEL=Expiration
DETAILS_PAGES_JOIN_BEHAVIOUR_LABEL=Join Behavior
DETAILS_PAGES_CORRELATION_LABEL=Correlation
DETAILS_PAGES_EXPRESSIONS_LABEL=Expressions
DETAILS_PAGES_IMPORTS_LABEL=Imports
DETAILS_PAGES_COUNTER_VALUES_LABEL=Counter Values
DETAILS_PAGES_COMPLETION_LABEL=Completion
DETAILS_PAGES_INITIALIZATION_LABEL=Initialization
DETAILS_PAGES_DOCUMENTATION_LABEL=Documentation
DETAILS_PAGES_MESSAGE_EXCHANGE_LABEL=Message Exchange
# Bugzilla 324162
DETAILS_PAGES_NAMESPACEPREFIXES_LABEL=Namespaces

XPATH_LABEL=XPath 1.0
XPATH_LABEL20 = XPath 1.0 in BPEL 2.0
#
UI_MARKER_LABEL=UI Marker
PREFERENCE_PAGE_HOME=BPEL
PREFERENCE_PAGE_EDITOR=Editor
PREFERENCE_PAGE_WSIL=WSIL Browser
PREFERENCE_PAGE_EXPRESSION_EDITOR=Expression Editors
PREFERENCE_PAGE_XPATH_EDITOR_TEMPLATES=Templates


CREATE_A_NEW_PROCESS=Create a new Business Process
BASIC_ACTIONS=Basic Actions

COMPONENT_NAME=Process
COMPONENT_DESCRIPTION=Business Process

NEW_BPEL_CATEGORY=BPEL 2.0
NEW_BPEL_FILE=BPEL Process File
EXPORT_AS_IMAGE_TOOLTIP=Export BPEL as image...
EXPORT_AS_IMAGE_LABEL=Export as Image...

DUPLICATE_ACTION_NAME = Duplicate
DUPLICATE_ACTION_TOOLTIP = Duplicate the selected object.
EXPRESSION_PROBLEM_MARKER_NAME = Expression Problem Marker
RUNTIME_ADAPTERS_NAME = Runtime Adapters
BPEL_EDITOR_FILE_NAME = BPEL Editor File
BPEL_RESOURCE_DECORATOR_LABEL = BPEL Resource Decorator
BPEL_PERSPECTIVE_NAME = BPEL
EXPRESSION_LANGUAGE_EDITORS = Expression Language Editors
ACTIONS_NAME = Actions

# ====================================================================

pluginName = BPEL Editor
providerName = Eclipse.org
