###############################################################################
# Copyright (c) 2004, 2013 IBM Corporation and others.
# All rights reserved. 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
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

# --------------- Wizards ---------------
# (If the first two lines in a group do not start with "wiz", it is because
# those lines are displayed in the workbench "New" wizard. The rest of the
# text is displayed in each actual wizard)

# New Server (and Configuration) Wizard
wizNewServerWizardTitle=New Server
wizNewServerTitle=Define a New Server
wizNewServerDescription=Choose the type of server to create
wizNewServerRunOnServerDescription=Select which server to use
wizNewServerRuntime=Server &runtime environment:
wizNewServerRuntimeCreate=Create a new runtime environment
wizCheckRemoteSupport=The currently selected server type does not support remote hosts
wizEmptyHostName=Server's host name must be set.

wizNewServerSelect=How do you want to select the server?
wizNewServerExisting=Choose an e&xisting server
wizNewServerManual=&Manually define a new server
wizNewServerSelectExisting=Select the server that you want to use:

# Select Server wizard
wizRunOnServerTitle=Run On Server
wizDebugOnServerTitle=Debug On Server
wizProfileOnServerTitle=Profile On Server
wizSelectServerPreferred=Always use this server when running this &project

# Select Server Client Wizard
wizSelectClientWizardTitle=Select a Server Client
wizSelectClientTitle=Select a server client
wizSelectClientDescription=Select a client to use with this server.
wizSelectClientMessage=Multiple clients can run on the current selection. Select a client from the list below:

# Select ModuleArtifact Wizard
wizModuleArtifactsDescription=Specify how to start the selected resource.
wizModuleArtifactsAvailableList=Available launchers:
wizModuleArtifactsNoSelectionError=You must select a launcher.

# Task Wizard
wizTaskWizardTitle=Select Tasks
wizTaskTitle=Select Tasks
wizTaskDescription=Select the tasks to perform on the server.

# New Runtime Wizard
wizNewRuntimeWizardTitle=New Server Runtime Environment
wizNewRuntimeTitle=New Server Runtime Environment
wizNewRuntimeDescription=Define a new server runtime environment
wizNewRuntimeCreateServer=&Create a new local server
wizEditRuntimeWizardTitle=Edit Server Runtime Environment

# New Server Adapter Wizard
wizNewInstallableServerTitle=Install New Server Adapter
wizNewInstallableServerDescription=Download and install support for a new server
wizNewInstallableServerMessage=The following server adapters have been found on remote update manager sites. Select a server adapter to download and install.
wizNewInstallableServerConfirm=Support for {0} will now be downloaded and installed. You will be prompted to restart once the installation is complete.
wizNewInstallableServerJob=Installing {0}
wizNewInstallableServerRestart=Installation complete. The new server will not be available until after the workbench is restarted. Do you want to restart now?
wizNewInstallableServerSiteError=Could not connect to {0}

# License wizard
wizLicenseTitle=Feature License
wizLicenseDescription=This license must be accepted before proceeding with the installation.
wizLicenseAccept=I &accept the terms of the license agreement
wizLicenseDecline=I &do not accept the terms of the license agreement
wizLicenseNone=Feature does not contain a license.

# Add/Remove Modules
wizModuleWizardTitle=Add and Remove...
wizModuleTitle=Add and Remove
wizModuleDescription=Modify the resources that are configured on the server
wizModuleMessage=Move resources to the right to configure them on the server
wizModuleAvailableList=&Available:
wizModuleDeployedList=&Configured:
wizModuleAdd=A&dd >
wizModuleAddAll=Add A&ll >>
wizModuleRemove=< &Remove
wizModuleRemoveAll=<< Re&move All
wizModuleRequiredModule={0} is required and cannot be removed from the server
wizModuleRequiredModules=One of the required modules ({0}) must be added to the server
wizModulePublishImmediately=If server is started, publish changes &immediately

# Wizard info and error messages
wizErrorInvalidFolder=The folder must be a server project or a folder within a server project
wizErrorClosedProject=The folder must not be in a closed project
wizErrorServerCreationError=Cannot create a server using the selected type


# --------------- Views ---------------

# --- Server Configuration view ---
viewServers=Servers

viewNoModules=Nothing deployed

# Actions
actionDelete=Delete
actionRemove=Remove
actionOpen=Open
actionShowIn=Show In
actionCopy=Copy
actionPaste=Paste
actionMonitor=Monitorin&g
actionMonitorPort=Monitor port {0} ({1})
actionProperties=Properties
actionNew=Ne&w
actionNewServer=Server

# --- Servers view ---
viewInitializing=Initializing...

# Column titles
viewServer=Server
viewStatus=Status
viewState=State

# Actions
actionStart=&Start
actionStartToolTip=Start the server
actionDebug=&Debug
actionDebugToolTip=Start the server in debug mode
actionDebugRestart=Restart in Debug
actionDebugRestartToolTip=Restart the server in debug mode
actionProfile=Pro&file
actionProfileToolTip=Start the server in profiling mode
actionProfileRestart=Restart in Profile
actionProfileRestartToolTip=Restart the server in profiling mode
actionStop=S&top
actionStopToolTip=Stop the server
actionRestart=&Restart
actionRestartToolTip=Restart the server
actionPublish=Publish
actionPublishToolTip=Publish to the server
actionPublishClean=&Clean...
actionPublishCleanToolTip=Clean resources on the server
actionModifyModules=&Add and Remove...
actionModifyModulesToolTip=Add and Remove resources to the server
actionRestartModule=&Restart
actionStartModule=&Start
actionStopModule=S&top
actionSwitchServerLocation=Switch Location
switchServerLocation=Location:
switchServerLocationMetadata=[workspace metadata]
actionRename=Re&name
actionColumns=&Columns...

# Status column text
viewStatusStarted=Started
viewStatusStartedDebug=Debugging
viewStatusStartedProfile=Profiling
viewStatusStopped=Stopped

viewStatusStarting=Starting
viewStatusStarting1=Starting.
viewStatusStarting2=Starting..
viewStatusStarting3=Starting...

viewStatusStopping=Stopping
viewStatusStopping1=Stopping.
viewStatusStopping2=Stopping..
viewStatusStopping3=Stopping...

# Server State text
viewSyncOkay=Synchronized
viewSyncRestart=Restart
viewSyncPublish=Republish
viewSyncRestartPublish=Restart & republish
viewSyncPublishing=Publishing...

# --- set 2 ---
# Actions
actionStop2=Disconnect
actionStopToolTip2=Disconnect from the server

# Status column text
viewStatusStarting4=Connecting
viewStatusStarted2=Connected
viewStatusStopping4=Disconnecting
viewStatusStopped2=Disconnected

# Server State text
viewSyncOkay2=Synchronized
viewSyncRestart2=Reconnect
viewSyncPublish2=Republish
viewSyncRestartPublish2=Reconnect and republish
viewSyncPublishing2=Publishing...


# --------------- Action Sets (toolbar icon groups) ---------------

# Servers action set
actionSetNewServer=Create Server

# Run on Server actions
actionRunOnServer=Run on Server...
actionDebugOnServer=Debug on Server...
actionProfileOnServer=Profile on Server...
processName=Run on Server


# --------------- Preferences ---------------

# Names of the preference pages
preferenceRuntimesTitleLong=Server Runtime Environments

# Server preferences
prefAutoPublish=Automatically publish w&hen starting servers
prefShowOnActivity=Show &Servers view when server state changes

prefSaveEditors=Save dirty editors before starting the server
prefSaveEditorsAlways=A&lways
prefSaveEditorsNever=&Never
prefSaveEditorsPrompt=&Prompt

prefLaunchMode=When switching to a different server mode
prefLaunchModeRestart=Re&start
prefLaunchModeContinue=&Continue
prefLaunchModePrompt=P&rompt

prefLaunchMode2=When switching the server out of debug mode
prefLaunchMode2Restart=Rest&art
prefLaunchMode2Breakpoints=Disable &breakpoints
prefLaunchMode2Continue=Contin&ue
prefLaunchMode2Prompt=Pr&ompt

prefBreakpoints=When switching the server into debug mode, re-enable breakpoints
prefBreakpointsAlways=Al&ways
prefBreakpointsNever=N&ever
prefBreakpointsPrompt=Pro&mpt

prefRestart=When required, restart the server
prefRestartAlways=Alwa&ys
prefRestartNever=Ne&ver
prefRestartPrompt=Promp&t

# Project properties preferences
prefProject=Project:
prefProjectDefaultServer=Always use the &following server when running this project:
prefProjectNotModule=This project cannot be used with servers.
prefProjectNotConfigured=This project is not associated with any servers.
prefProjectNoServer=<None>

propServerInfoName=Name:
propServerInfoType=Type:
propServerInfoVendor=Vendor:

# Tooltip
toolTipEnableFocus=Press 'F6' for Focus.
toolTipDisableFocus=Press 'ESC' to Hide.

# Runtime Environments
preferenceRuntimesDescription=Add, remove, or edit server runtime environments.
preferenceRuntimesTable=Server runtime e&nvironments:


# --------------- Tasks (progress monitors) ---------------

# General tasks
savingTask=Saving {0}.
loadingTask=Loading {0}.
performingTasks=Performing tasks.
launchingClientTask=Launching client
jobInitializing=Initializing Server Tools
jobRestarting=Restarting {0}
jobInitializingServersView=Initializing Servers view

# --------------- Dialogs ---------------

# Delete Server dialog
deleteServerDialogTitle=Delete Server
deleteServerDialogMessage=Are you sure you want to delete {0}?
deleteServerDialogMessageMany=Are you sure you want to delete the {0} servers?
deleteServerDialogLooseConfigurations=Delete unused server configuration(s)
deleteServerDialogRunningServer=Delete running server(s)
deleteServerDialogRunningServerStop=Stop server(s) before deleting
deleteServerTask=Deleting server(s)...

# Create Server Project dialog
createServerProjectDialogTitle=Create Server Project
createServerProjectDialogMessage=Do you want to create a new server project with the name {0}?

# Terminate Server dialog
terminateServerDialogTitle=Terminate Server
terminateServerDialogMessage=Server {0} is not responding. Do you want to terminate this server? Click OK to terminate the server or click Cancel to continue waiting.

# Server resource dirty dialog
resourceDirtyDialogTitle=Server Resource Dirty
resourceDirtyDialogMessage=The server resource {0} has unsaved changes. Do you want to continue?
resourceDirtyDialogContinue=Continue

# General dialogs
defaultDialogTitle=Server
dialogRemember=&Remember my decision

# restart warning dialog
dialogModeWarningRun=The server is not in run mode. Select from one of the following options:
dialogModeWarningDebug=The server is not running in debug mode. Select from one of the following options:
dialogModeWarningProfile=The server is not running in profiling mode. Select from one of the following options:
dialogModeWarningRestart=&Switch mode (will restart if necessary)
dialogModeWarningBreakpoints=Disable &breakpoints and continue
dialogModeWarningContinue=&Continue in the current mode

dialogBreakpoints=The server is running in debug mode but breakpoints have been disabled. Select from one of the following options:
dialogBreakpointsReenable=Re-&enable breakpoints
dialogBreakpointsContinue=&Continue without debugging

dialogRestart=The server may need be restarted. Do you want to restart the server?
dialogRestartRestart=Re&start server
dialogRestartContinue=&Continue without restarting

# Monitor dialog
dialogMonitorTitle=Monitoring Ports
dialogMonitorDescription=The following ports are being monitored on server {0}:
dialogMonitorAddDescription=The server {0} has the following ports that can be monitored:
dialogMonitorColumnPort=Server Port
dialogMonitorColumnType=Type
dialogMonitorColumnMonitorPort=Monitor Port
dialogMonitorColumnContentType=Content Type
dialogMonitorColumnStatus=Status
dialogMonitorMonitorPort=Monitor port:
dialogMonitorContentType=Content type:
dialogMonitorContentTypeAll=All
dialogMonitorContentTypeWeb=Web
dialogMonitorContentTypeWebServices=WebServices
dialogMonitorNone=<none>

dialogPublishClean=Clean will discard all publish state and republish from scratch. Are you sure you want to clean all published resources?

start=Start
stop=Stop
started=Started
stopped=Stopped

# Confirm runtime removal
dialogRuntimeInUse=The runtime environment is currently being used and deleting it will cause compilation or run time problems. Delete the runtime environment anyway?
dialogRuntimeDeleteServers=Delete all affected servers?
dialogRuntimeRemoveTargets=Remove this runtime environment from targeted projects?

# runtime locator search dialog
dialogRuntimeSearchTitle=Search For Runtime Environments
dialogRuntimeSearchMessage=Select the directory in which to search for server runtime environments:
dialogRuntimeSearchProgress=Searching for server runtime environments...

# Can't add remove
dialogAddRemoveModulesNone=There are no resources that can be added or removed from the server.

dialogRemoveModuleConfirm=Are you sure you want to remove the resource from the server?
dialogRemoveModulesConfirm=Are you sure you want to remove the resources from the server?

# --------------- Misc UI ---------------

# runtime composite
runtimeTypeCompTree=Select the type of &runtime environment:
serverTypeCompLabel=Select the &server type:
serverName=Server na&me:
serverNameDefault=Rese&t default
configureRuntimes=&Configure runtime environments...
addRuntime=&Add...

# installable server composite
installableServerCompTree=Select the &server support to install:
installableServerLink=Download additional server adapters
installableServerLocal=Examining local configuration
installableServerSearching=Searching {0}

# misc composites
hostname=Server's &host name:

# Server launch configuration tab
serverLaunchDescription=This launch configuration can be used to launch the server specified below. To access further options for configuring the server, open the server's editor from the Servers view.
serverLaunchConfigurationTab=Server
serverLaunchServer=Server:
serverLaunchRuntime=Runtime Environment:
serverLaunchHost=Host name:
runOnServerLaunchConfigName={0}

# Error Messages
errorDialogTitle=Server Error
errorServerAlreadyRunning=Server already running
errorNoServerSelected=No server selected
errorInvalidServer=The server is invalid or missing
errorCouldNotCreateServerProject=Could not create server project
errorCouldNotCreateServerProjectStatus=Could not create server project: {0}
errorNoArtifact=The selection did not contain any resources that can run on a server.
errorLaunchConfig=This launch configuration is invalid and may be out of sync with the workspace
errorNoModules=The selection is not within a valid module.
errorNoServer=The selection cannot be run on any server.
errorCouldNotSavePreference=Could not save server preference information.
errorEditorCantSave=The server cannot be saved for the following reasons:
errorEditor=Could not open editor because {0} is not a valid server. Use Open With to open this file with a different editor.
errorVersionLevel=The server does not support version {1} of the {0} specification.
errorMissingConfiguration=The server configuration is missing or invalid
errorConfigurationNotAccessible=The server configuration is not accessible. The {0} project is closed.
errorRootModule=Could not find a valid parent module to add to the server.
errorDuplicateName=The name is already in use. Specify a different name.
errorDuplicateServerName=The server name is already in use. Specify a different name.

# Info messages
infoNoRuntimesFound=No new server runtime environments were found.

# Default server creation names
# {0} will be replaced by a number if the given name is already being used
defaultServerProjectName=Servers{0}

# Used when a name can't be found
elementUnknownName=<unknown>

columnName=Name
columnType=Type

add=&Add...
edit=&Edit...
remove=&Remove
search=&Search...

clientDefaultName=Do nothing
clientDefaultDescription=Launch the module on the server but do not bring up a client application.

# Module decorator
moduleDecoratorProject={0} ({1})

# Used for displaying time (so far only used in tooltip)
minutes={0} minutes 
modules={0} modules

# --------------- Editor support ---------------

serverEditorOverviewPageTitle=Overview
serverEditorOverviewGeneralSection=General Information
serverEditorOverviewGeneralDescription=Specify the host name and other common settings.
serverEditorOverviewServerName=Server name:
serverEditorOverviewServerNameCommand=set server name
serverEditorOverviewServerConfigurationPath=Configuration path:
serverEditorOverviewServerConfigurationBrowse=Browse...
serverEditorOverviewServerConfigurationBrowseMessage=Specify the location of the server configuration.
serverEditorOverviewServerHostname=Host name:
serverEditorOverviewServerHostnameCommand=set host name
serverEditorOverviewRuntime=Runtime Environment:
serverEditorOverviewRuntimeEdit=Edit
serverEditorOverviewRuntimeCommand=set runtime environment

serverEditorOverviewPublishSection=Publishing
serverEditorOverviewPublishDescription=Modify settings for publishing.
serverEditorOverviewAutoPublishDisable=Never publish automatically
serverEditorOverviewAutoPublishEnabledResource=Automatically publish when resources change
serverEditorOverviewAutoPublishEnabledBuild=Automatically publish after a build event
serverEditorOverviewAutoPublishEnabledInterval=Publishing interval (in seconds):
serverEditorOverviewPublishCommand=modify publish settings
serverEditorOverviewPublishers=Select publishing actions:
serverEditorOverviewTimeoutSection=Timeouts
serverEditorOverviewTimeoutDescription=Specify the time limit to complete server operations.
serverEditorOverviewStartTimeout=Start (in seconds):
serverEditorOverviewStopTimeout=Stop (in seconds):
serverEditorOverviewTimeoutCommand=modify timeout settings
serverEditorOverviewOpenLaunchConfiguration=Open launch configuration

serverEditorSaving=Performing server save operation.

# Menu items. {0} will be replaced by one of the xxxEditorActionXxx fields
# from below. @Ctrl+Z is the menu mnemonic
editorUndoEnabled=Undo {0}@Ctrl+Z
editorUndoDisabled=Undo@Ctrl+Z
editorRedoEnabled=Redo {0}@Ctrl+Y
editorRedoDisabled=Redo@Ctrl+Y

editorSaveErrorDialog=Save Problems
editorSaveErrorMessage=Error while saving. {0}

editorReadOnly=Read Only
editorWritable=Writable
editorReadOnlyFiles=Read Only files: {0}

editorServerEditor=Server Editor
editorPromptIrreversible=This operation cannot be undone. Do you want to proceed?
editorRenameFiles=The server has been renamed. Do you want to rename the corresponding files to match?

# message if a dirty resource is deleted
editorResourceDeleteTitle=Server Deleted
editorResourceDeleteServerMessage=The server {0} has been deleted from the file system. Do you want to save your changes or close the editor without saving?
editorResourceDeleteSave=Save

editorResourceModifiedTitle=File Changed
editorServerModifiedMessage=The server has been changed on the file system. Do you want to load the changes?

editorValidateEditFailureMessage=The server cannot be edited.
editorReadOnlyMessage=File(s) being edited have become read-only. The editor will become read-only and changes will be lost.

editorResourceWarnTitle=Server Modification Warning
editorResourceWarnMessage=The server you are modifying is read-only. All changes will be lost because the server cannot be saved.

audioPrefSelectFile=Select Audio File
audioPrefEnable=&Enable sounds
audioPrefVolume=&Volume:
audioPrefSounds=&Sounds:
audioPrefSound=Sound
audioPrefFile=Audio File
audioPrefPlay=&Play
audioPrefBrowse=&Browse...
audioPrefReset=&Reset

audioUnknown=(unknown)
audioDefault=(default)
audioNone=(none)

errorStartingMonitor=Could not start the server monitor: {0}

internalWebBrowserName=Internal Web Browser
ServersView2_noServers=<a>No servers are available. Click this link to create a new server...</a>
