###############################################################################
#  Copyright (c) 2000, 2009 IBM Corporation and others.
#
#  This program and the accompanying materials are made available under the
#  terms of the Eclipse Public License v. 2.0 which is available at
#  http://www.eclipse.org/legal/epl-2.0.
#
#  SPDX-License-Identifier: EPL-2.0
# 
#  Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

ConsoleRemoveAllTerminatedAction_0=&Remove All Terminated
ConsoleRemoveAllTerminatedAction_1=Remove All Terminated Launches
ConsoleRemoveTerminatedAction_0=Remove Launch
ConsoleRemoveTerminatedAction_1=Remove Launch

ConsoleTerminateAction_0=&Terminate
ConsoleTerminateAction_1=Terminate

ProcessConsole_0=<terminated> {0}

ProcessConsole_1=[Console output redirected to file:{0}]\n
ProcessConsole_2=[Invalid file specified for console output: {0}]\n
ShowStandardErrorAction_0=Show Console When Standard Error Changes
ShowStandardOutAction_0=Show Console When Standard Out Changes
