###############################################################################
# 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 available. Define a new server from the new server wizard...</a>
