###############################################################################
# Copyright (c) 2006, 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
#
# Initial Contributors:
# The following IBM employees contributed to the Remote System Explorer
# component that contains this file: David McKnight, Kushal Munir, 
# Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson, 
# Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
# 
# Contributors:
# {Name} (company) - description of contribution.
###############################################################################

# NLS_MESSAGEFORMAT_NONE
# NLS_ENCODING=UTF-8

pluginName = RSE DStore Processes
providerName = Eclipse TM Project

Processes=Processes
ProcessesDescription=This configuration allows you to work with processes on local or remote systems using the DataStore protocol.
