#################################################################################
# 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
#################################################################################

pluginName=PTP Debug UI
pluginProvider=Eclipse.org

ParallelDebugPerspective.name=PTP Debug
ParallelDebugPerspective.description=This Debug perspective is designed to support application debugging.  It incorporates views for displaying the debug stack, variables and breakpoint management.
ParallelDebugViewCategory.name=PTP Debug
ParallelDebugView.name=Parallel Debug

ArrayView.name=Array

PVariableView.name=PTP Variable

PDebuggerPage.name=PTP Debugger UI Page
PDebugPreferencePage.name=Debug

DefaultSourceLocator.name=Default PTP Source Locator

ShowFullPathsAction.label=Show Full &Paths
ShowFullPathsAction.tooltip=Show Full Paths

PBreakpointSet.label=Parallel Breakpoint Set
PBreakpointSet.others=Unknown Set

PBreakpointAnnotation.label=Parallel Breakpoint
CurrentRegIPAnnotation.label=Current Registered Instruction Pointer
RegIPAnnotation.label=Registered Instruction Pointer
CurrentSetIPAnnotation.label=Current Set Instruction Pointer
SetIPAnnotation.label=Set Instruction Pointer

EditorRulerAction.label=Parallel Breakpoint
PBreakpointProperties.label=Breakpoint properties
EnableDisableBreakpoint.label=Enable Disable breakpoint
ToggleBreakpoint.label=Toggle breakpoint

CommonBreakpointPage.label=Common
CommonSignalPage.label=Common
BreakpointPropertiesAction.label=P&roperties...

GotoSet.label=Goto set

DebugTextHover.label=Debugger
DebugTextHover.description=Shows the value of the expression selected in the ptp debug perspective.


PVariableMenu.label=PTP Variable
AddPVariableAction.label=Add PTP variable
AddPVariableAction.tooltip=Add PTP variable
RemoveAllPVariableAction.label=Remove all PTP variables
RemoveAllPVariableAction.tooltip=Remove all PTP variables
OpenPVariableDialogAction.label=Open PTP Variable Dialog
OpenPVariableDialogAction.tooltip=Open PTP Variable Dialog
UpdateAllPVariableAction.label=Refresh all PTP variables
UpdateAllPVariableAction.tooltip=Refresh all PTP variables


SignalsView.name=Signals
SignalAction.label=Resume With Signal
SignalAction.tooltip=Resume With Signal
SignalZeroAction.label=Resume Without Signal
SignalZeroAction.tooltip=Resume Ignoring Signal
SignalPropertiesAction.label=Signal Properties...
SignalPropertiesAction.tooltip=Open Signal Properties Dialog


RunMenu.label=&Run
DebugActionSet.label=PTP Debug

RestartAction.label=Restart
RestartAction.tooltip=Restart

JumpToLineAction.label=Resume At Li&ne
GlobalJumpToLineAction.label=Resume At Li&ne PTP
AddWatchpoint.label=Add Watchpoint PTP...
AddWatchpoint.tooltip=Add Watchpoint PTP
AddExpressionAction.label=Add Watch Expression...
RunToLineAction.label=Run To &Line

ToggleInstructionStepModeAction.label=Instruction Stepping Mode
ToggleInstructionStepModeAction.tooltip=Instruction Stepping Mode

EnableVariablesAction.label=Enable
EnableVariablesAction.tooltip=Enable Selected Variables

DisableVariablesAction.label=Disable
DisableVariablesAction.tooltip=Disable Selected Variables

DebuggingPContext.name=Debugging Parallel
DebuggingPContext.description=Debugging Parallel Programs

