###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

AbstractConsole.0=Exception occurred during console property change notification.

ConsoleDropDownAction.0=Select Console
ConsoleDropDownAction.1=Display Selected Console

ConsoleManager.0=An exception occurred during console notification

ConsoleView.0=Console


find_replace_action.label=&Find/Replace...@Ctrl+F
find_replace_action.tooltip=Find/Replace
find_replace_action.image=
find_replace_action.description=Find/Replace

PinConsoleAction.0=Pi&n Console
PinConsoleAction.1=Pin Console

ClearOutputAction.title=Clea&r
ClearOutputAction.toolTipText=Clear Console

TextViewerGotoLineAction.Enter_line_number__8=Enter line number (1...{0}):
TextViewerGotoLineAction.Exceptions_occurred_attempt_to_go_to_line_2=Exceptions occurred attempt to go to line
TextViewerGotoLineAction.Go_to_&Line...@Ctrl+L_4=Go to &Line...@Ctrl+L
TextViewerGotoLineAction.Go_To_Line_1=Go to Line
TextViewerGotoLineAction.Line_number_out_of_range_1=Line number out of range
TextViewerGotoLineAction.Not_a_number_2=Not a number

IOConsolePage.0=Select &All@Ctrl+A
IOConsolePage.1=Select All
IOConsolePage.10=Paste
IOConsolePage.11=Paste
IOConsolePage.2=Select All
IOConsolePage.3=Cut
IOConsolePage.4=Cut
IOConsolePage.5=Cut
IOConsolePage.6=Copy
IOConsolePage.7=Copy
IOConsolePage.8=Copy
IOConsolePage.9=Paste
ScrollLockAction.0=Scroll Lock
ScrollLockAction.1=Scroll Lock
FollowHyperlinkAction.0=&Open Link
FollowHyperlinkAction.1=Follow the selected hyperlink
OpenConsoleAction.0=Open Console
OpenConsoleAction.1=Open Console
CloseConsoleAction.0=&Close Console
CloseConsoleAction.1=Close Console
