###############################################################################
# Copyright (c) 2004, 2005 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
wizNewServerRuntime=Server runtime:

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=Set server as project &default (do not ask again)

# 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:

# Task Wizard
wizTaskWizardTitle=Select Tasks
wizTaskTitle=Select Tasks
wizTaskDescription=Select the tasks to perform on the server.
wizTaskNone=There are currently no tasks that need to be performed.

# New Runtime Wizard
wizNewRuntimeWizardTitle=New Server Runtime
wizNewRuntimeTitle=New Server Runtime
wizNewRuntimeDescription=Define a new installed server runtime environment
wizEditRuntimeWizardTitle=Edit Server Runtime

# New Installable Server Wizard
wizNewInstallableServerTitle=Install New Server
wizNewInstallableServerDescription=Downloand and install support for a new server

# Add/Remove Modules
wizModuleWizardTitle=Add and Remove Projects
wizModuleTitle=Add and Remove Projects
wizModuleDescription=Modify the projects that are configured on the server
wizModuleMessage=Move projects to the right to configure them on the server
wizModuleAvailableList=&Available projects:
wizModuleDeployedList=&Configured projects:
wizModuleAdd=A&dd >
wizModuleAddAll=Add A&ll >>
wizModuleRemove=< &Remove
wizModuleRemoveAll=<< Re&move All

# General text used in multiple wizards
wizDescription=Description:

# 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
actionOpen=Open
actionMonitor=Monitoring
actionMonitorPort=Monitor port {0} ({1})
actionMonitorProperties=Properties
actionNew=New
actionNewServer=Server

# --- Servers view ---
# Column titles
viewServer=Server
viewStatus=Status
viewSync=State

# Actions
actionStart=Start
actionStartToolTip=Start the server
actionDebug=Debug
actionDebugToolTip=Start the server in debug mode
actionProfile=Profile
actionProfileToolTip=Start the server in profiling mode
actionStop=Stop
actionStopToolTip=Stop the server
actionRestart=Restart
actionRestartToolTip=Restart the server
actionPublish=Publish
actionPublishToolTip=Publish to the server
actionModifyModules=Add and Remove Projects...
actionModifyModulesToolTip=Add and remove projects
actionRestartModule=Restart {0}
actionUpdateStatus=Refresh Status
actionMoveServerToMetadata=Move to Metadata
actionMoveServerToWorkspace=Move to Workspace

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

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

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...


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

# Names of the preference pages
preferenceRuntimesTitleLong=Installed Server Runtime Environments

# Server preferences
prefAutoPublish=Automatically p&ublish when starting servers
prefAutoPublishLocal=Automatically publish to &local servers
prefAutoPublishLocalTime=Publishing inter&val (in seconds):
prefAutoPublishRemote=Automatically publish to rem&ote servers
prefAutoPublishRemoteTime=Publishing interv&al (in seconds):
prefAutoRestart=Automatically &restart servers when necessary
prefPromptIrreversible=Prompt before making &irreversible changes within an editor
prefShowOnActivity=Show &Servers view when server state changes
prefMachineSpeed=Server &timeout delay:
prefMachineSpeedVerySlow=Longer
prefMachineSpeedSlow=Long
prefMachineSpeedAverage=Normal
prefMachineSpeedFast=Short
prefMachineSpeedVeryFast=Shorter

prefSaveEditorsGroup=Save dirty editors before starting server
prefSaveEditorsNever=&Never
prefSaveEditorsPrompt=Pro&mpt
prefSaveEditorsAutosave=Auto-sav&e
 
# Project properties preferences
prefProjectDescription=Set the runtime target and the default server for the project.
prefProject=Project:
prefProjectDefaultServer=De&fault server:
prefProjectNotModule=This project cannot be deployed to a server.
prefProjectNotConfigured=Not currently deployed to any servers
prefProjectNoServer=<None>

# Installed runtimes
preferenceRuntimesDescription=Add, remove, or edit installed server runtime definitions.\nThe checked runtime will be used by default when creating new projects.
preferenceRuntimesTable=&Installed server runtimes:


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

# General tasks
savingTask=Saving {0}.
loadingTask=Loading {0}.
performingTasks=Performing tasks.
launchingClientTask=Launching client

# --------------- 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

runtimeTargetCombo=&Target runtime:
runtimeTargetNone=<None>
runtimeTargetNewRuntime=&New...
runtimeTargetRuntimePreferences=Configure &Installed Runtimes...
runtimeTargetChildren=Target contained projects

# General dialogs
defaultDialogTitle=Server
dialogStoppingServer=Stopping server {0}.

# restart warning dialog
dialogModeWarningDebug=The server is not running in debug mode. You may restart the server in debug mode, continue without debugging, or cancel the operation.
dialogModeWarningProfile=The server is not running in profiling mode. You may restart the server in profiling mode, continue without profiling, or cancel the operation.
dialogModeWarningRestart=Restart
dialogModeWarningContinue=Continue

# 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

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

# Confirm runtime removal
dialogRuntimeInUse=The runtime is currently being used and deleting it will cause compilation or runtime problems. Delete the runtime anyway?

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

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

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

# runtime composite
runtimeTypeCompDescription=Runtimes are used at build time to compile projects.
runtimeTypeCompTree=Select the type of &runtime that you want to define:
serverTypeCompDescription=Select the &server type:
name=Name
vendor=Vendor
version=Version
host=Host name
moduleSupport=Module Support
viewBy=&View By:

# installable server composite
installableServerCompTree=Select the type of &server support to install:
installableServerCompDescription=Server support available to install.
installableServerLink=Don't see your server listed? Click here

# 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:
serverLaunchHost=Host name:

# Error Messages
errorDialogTitle=Server Error
errorServerAlreadyRunning=Server already running
errorNoServerSelected=No server selected
errorInvalidServer=Invalid server
errorCouldNotCreateServerProject=Could not create server project
errorCouldNotCreateServerProjectStatus=Could not create server project: {0}
errorNoModules=Did not find anything to deploy to a server
errorNoServer=Could not find a server to run the selection
errorNoClient=Could not find a client that is able to launch the selection
errorCouldNotSavePreference=Could not save server preference information.
errorEditorCantSave=Can't save the server resource for the following reason(s):
errorEditor=Could not open editor because {0} is not a valid server or server configuration.
errorVersionLevel=The server does not support version {1} of the {0} specification.
errorMissingConfiguration=The server configuration is missing or invalid

# Info messages
infoNoRuntimesFound=No server runtimes 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...

jobUpdateStatus=Updating server status...

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

serverEditorOverviewPageTitle=Server Overview
serverEditorOverviewGeneralSection=General
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:
serverEditorOverviewRuntimeEdit=Edit
serverEditorOverviewRuntimeCommand=set runtime

serverEditorOverviewAutoPublishSection=Automatic Publishing
serverEditorOverviewAutoPublishDescription=Override when the server is automatically published to.
serverEditorOverviewAutoPublishDefault=Use default publishing settings
serverEditorOverviewAutoPublishDefaultEdit=Edit
serverEditorOverviewAutoPublishOverride=Override default settings
serverEditorOverviewAutoPublishOverrideInterval=Publishing interval (in seconds):
serverEditorOverviewAutoPublishDisable=Never publish automatically
serverEditorOverviewAutoPublishCommand=modify publish settings
serverEditorOverviewOpenLaunchConfiguration=Open launch configuration
serverEditorOverviewAutoPublishInvalid=The automatic publish setting is invalid. It must be a 10 seconds or more.

# 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

preferenceInternetDescription=General internet settings are available in the contained preference pages.
 