###############################################################################
# Copyright (c) 2002, 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
#
# Contributors:
#     IBM Corporation - initial API and implementation
# Martin Oberhuber (Wind River) - add providerName
# David Dykstal (IBM) - [186589] move properties from org.eclipse.rse.ui
# Kevin Doyle   (IBM) - [239700] Compile Commands are available on items it shouldn't
###############################################################################

# NLS_MESSAGEFORMAT_NONE
# NLS_ENCODING=UTF-8

pluginName = Remote System Explorer User Actions
providerName = Eclipse TM Project

PropertyPage.TeamViewUserActionNode = User Action Information
PropertyPage.TeamViewCompileTypeNode = Compile Type Information
PropertyPage.TeamViewCompileCommandNode = Compile Command Information

DynamicLabel.CompileActionNode = Compile
DynamicLabel.CompilePromptActionNode = Compile (Prompt)
DynamicLabel.UserActionNode = User Action