###############################################################################
# Copyright (c) 2000, 2017 IBM Corporation and others.
#
# 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
###############################################################################

ToggleObjectBrowsersAction_1=Show Logical Structure
ToggleShowColumnsAction_0=&Show Columns
ToggleShowColumnsAction_1=Show Columns
VariablesView_41=Variables View &Only
VariablesView_40=&Layout
ExpressionView_4=Expressions View &Only

AvailableLogicalStructuresAction_0=Select From Available Logical Structures
AvailableLogicalStructuresAction_1=&Show Logical Structure
AvailableLogicalStructuresAction_2=(Last used)
AvailableLogicalStructuresAction_3=&Edit Logical Structure...
DetailPaneMaxLengthDialog_0=Configure Details Pane
DetailPaneMaxLengthDialog_1=&Maximum characters to display in details pane (0 = unlimited):
DetailPaneMaxLengthDialog_2=Integer must be non-negative
DetailPaneMaxLengthDialog_3=Enter an integer
LogicalStructureCache_0=Logical structure canceled
