###############################################################################
# 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=Download 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
prefSyncStartup=S&ynchronize servers on startup

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:
serverTypeCompLabel=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 &server support 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...

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