################################################################################
# Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
# 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
# 
# Initial Contributors:
# The following IBM employees contributed to the Remote System Explorer
# component that contains this file: David McKnight, Kushal Munir, 
# Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson, 
# Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
# 
# Contributors:
# Uwe Stieber (Wind River) - [174966] IRSESystemType should have a getLabel()
#                            method for translatable label.
# Martin Oberhuber (Wind River) - [186525] Move keystoreProviders to core
# Martin Oberhuber (Wind River) - [186523] Move subsystemConfigurations from UI to core
# Martin Oberhuber (Wind River) - [185552] Remove remoteSystemsViewPreferencesActions extension point
# David McKnight   (IBM)        - [160105] [usability] Universal action needed to locate a resource in the Remote Systems View        
################################################################################

# NLS_MESSAGEFORMAT_NONE
# NLS_ENCODING=UTF-8

pluginName = RSE UI
providerName = Eclipse TM Project

extPoint.newConnectionWizards = New Connection Wizards
#extPoint.compile = Remote Compile Commands
extPoint.mountPathMappers = Mount Path Mappers

#PropertyPage.Info = Info
#PropertyPage.Team = Team
PropertyPage.Connection = Host
#PropertyPage.Connection.SubSystems = Subsystems
PropertyPage.Connection.ConnectorServices = Connector Services
PropertyPage.SubSystem = Subsystem
PropertyPage.ReferencedFilterPool = Referenced Filter Pool
PropertyPage.Reference = Reference
PropertyPage.Filter = Filter Information
PropertyPage.ChangeFilter = Filter Strings
PropertyPage.FilterPool = Filter Pool
PropertyPage.FilterString = Filter String
PropertyPage.TeamViewCategoryNode = Category Information
PropertyPage.Profile = Profile Information
PropertyPage.TeamViewSubSystemFactoryNode = SubSystem Factory Information
#PropertyPage.TeamViewUserActionNode = User Action Information
#PropertyPage.TeamViewCompileTypeNode = Compile Type Information
#PropertyPage.TeamViewCompileCommandNode = Compile Command Information

View.Category.RemoteSystems = Remote Systems
View.RemoteSystems = Remote Systems
View.RemoteSystemsDetails = Remote System Details

View.Team = Team

Perspective.Explorer = Remote System Explorer

PreferencePage.Logging = Logging
PreferencePage.RemoteSystems = Remote Systems
PreferencePage.Signon = Passwords

Nature.RemoteSystemsNature = Remote System Nature
Nature.RemoteSystemsTempNature = Remote System Temp Nature

View.Search = Remote Search

View.Scratchpad = Remote Scratchpad

View.Monitor = Remote Monitor

# Decorators
SubSystemErrorDecorator.label=SubSystem Error Decorator

# Presentation
RSEPresentation.label = Remote System Explorer
RSEPresentation.description = Colors and fonts used by Remote System Explorer.
MessagesPresentation.label = Messages
MessagesPresentation.description = Colors used for Remote System Explorer messages.
RemoteCommandsViewPresentation.label = Remote Shell View
RemoteCommandsViewPresentation.description = Colors and fonts used by Remote Shell view.
ErrorMessage.label = Error message color
ErrorMessage.description = Color used to show error messages in dialogs.
WarningMessage.label = Warning message color
WarningMessage.description = Color used to show warning messages in dialogs.
InfoMessage.label = Informational message color
InfoMessage.description = Color used to show informational messages in dialogs.
RemoteCommandsViewFontDefinition.label = Remote Shell Font 
RemoteCommandsViewFontDefinition.description = This font is used by the Remote Shell view.
RemoteCommandsForeground.label = Foreground color
RemoteCommandsForeground.description = The foreground color is used by the Remote Shell view.
RemoteCommandsBackground.label = Background color
RemoteCommandsBackground.description = The background color is used by the Remote Shell view.
RemoteCommandsPrompt.label = Prompt color
RemoteCommandsPrompt.description = The text color used for displaying prompts.
ProjectFilter.label=RSE Internal Projects
ProjectFilter.description=Hides RSE internal projects

# Creation wizard
Creation.category.name = Remote System Explorer
Creation.connection.name = Connection
Creation.connection.description = Create a new connection to a remote system

Connection.default.category.name=General
DefaultRSENewConnectionWizard.name=RSE Default New Connection Wizard

# Show in RSE View
ShowInRSEView.label = Show in Remote Systems view
ShowInRSEView.tooltip = Display the selected object in the Remote Systems view if applicable
