#################################################################################
# Copyright (c) 2005 The Regents of the University of California. 
# This material was produced under U.S. Government contract W-7405-ENG-36 
# for Los Alamos National Laboratory, which is operated by the University 
# of California for the U.S. Department of Energy. The U.S. Government has 
# rights to use, reproduce, and distribute this software. NEITHER THE 
# GOVERNMENT NOR THE UNIVERSITY MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR 
# ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified 
# to produce derivative works, such modified software should be clearly marked, 
# so as not to confuse it with the version available from LANL.
# 
# Additionally, 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
# 
# LA-CC 04-115
#
# Contributors:
#     Clement Chu
#     Tianchao Li (Tianchao.Li@gmail.com)
#################################################################################

pluginName=PTP User Interface
pluginProvider=Eclipse.org

ParallelMachinesView.name=Machines
ParallelMachineView.name=Machines (old)
ParallelJobsView.name=Jobs
ParallelJobView.name=Jobs (old)
JobsListView.name=Jobs List
ResourceManagersView.name=Resource Managers
MachinesNodesView.name=Machines, Nodes and Jobs

TerminateAllAction.label=Terminate &All
TerminateAllAction.tooltip=Terminate All

ParallelViewCategory.name=PTP Runtime
ParallelControlView.name=Parallel Processes Panel
ParallelProcessView.name=Parallel Process Viewer
perspective.name=PTP Runtime

preferencePages.name=PTP
SimulationpreferencePage.name=Simulation
OMPIpreferencePage.name=Open RTE
MPICH2preferencePage.name=MPICH2
ViewerpreferencePage.name=Viewer
RMpreferencePage.name=Resource Manager

actionSets.name=PTP
actionSetsMenu.name=Menu name

searchAction.name=Search
searchAction.tooltip=Search Node or Process

legendAction.name=Legend dialog
legendAction.tooltip=Show status icons of node and process

PSearchPage.label=PTP Search

ResourceManagersMenu.label=Resource Managers
StopResourceManagersAction.label=Stop Resource Manager
StartResourceManagersAction.label=Start Resource Manager
