###############################################################################
# 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 (Incubation)
providerName = Eclipse.org
