###############################################################################
# Copyright (c) 2004 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
###############################################################################

# --------------- General UI ---------------

runtimeName=Na&me:
browse=B&rowse...
install=Download and Ins&tall...
installDir=Tomcat installation &directory:
installedJRE=&JRE:
installedJREs=&Installed JREs...
selectInstallDir=Select Tomcat installation directory.
runtimeDefaultJRE=Workbench default JRE

# New Tomcat server wizard
wizardTitle=Tomcat Server
wizardDescription=Specify the installation directory

# --------------- Editors ---------------

# General text used in both editors
editorRemove=Remove
editorAdd=Add...
editorEdit=Edit...
editorBrowse=Browse...

# --- Configuration Editor ---
configurationEditorWebModulesPageTitle=Web Modules
configurationEditorWebModulesSection=Web Modules
configurationEditorWebModulesDescription=Configure the Web Modules on this server.
configurationEditorMimeMappingsSection=MIME Mappings
configurationEditorMimeMappingsDescription=Configure MIME type mappings.
configurationEditorPortsSection=Ports
configurationEditorPortsDescription=Modify the server ports.

# Fields
configurationEditorPortNameColumn=Port Name
configurationEditorPortValueColumn=Port Number
configurationEditorPathColumn=Path
configurationEditorDocBaseColumn=Document Base
configurationEditorProjectColumn=Module
configurationEditorReloadColumn=Auto Reload
configurationEditorProjectMissing={0} missing
configurationEditorReloadEnabled=Enabled
configurationEditorReloadDisabled=Disabled
configurationEditorAddProjectModule=Add Web Module...
configurationEditorAddExternalModule=Add External Web Module...

# Add/Edit Mime Mapping dialog
configurationEditorMimeMapppingDialogTitleEdit=Edit MIME Mapping
configurationEditorMimeMapppingDialogTitleAdd=Add MIME Mapping
configurationEditorMimeMapppingDialogMimeType=MIME &type:
configurationEditorMimeMapppingDialogMimeExtension=MIME &extension:

# Add/Edit Web Module dialog
configurationEditorWebModuleDialogTitleEdit=Edit Web Module
configurationEditorWebModuleDialogTitleAdd=Add Web Module
configurationEditorWebModuleDialogProjects=&Modules:
configurationEditorWebModuleDialogPath=P&ath:
configurationEditorWebModuleDialogDocumentBase=&Document base:
configurationEditorWebModuleDialogReloadEnabled=Auto r&eloading enabled
configurationEditorWebModuleDialogSelectDirectory=Select the Web module directory.
errorMissingWebModule=The Web module at the following location cannot be found: {0}.

# --- Server Editor ---
serverEditorLocationsSection=Server Locations
serverEditorLocationsDescription=Specify the server and deploy paths. Relative server paths are relative to the workspace. Relative deploy paths are relative to the server path. These settings can be changed only when the server is synchronized with no modules present, or has never been published. 
serverEditorLocationsDescription2=Specify the server path (i.e. catalina.base) and deploy path. Relative server paths are relative to the workspace. Relative deploy paths are relative to the server path. These settings can be changed only when the server is synchronized with no modules present, or has never been published. 
serverEditorGeneralSection=Server Options
serverEditorGeneralDescription=Enter settings for the server.

# Link Fields 
serverEditorSetInternalServerDirLink=Set server path to internally supplied location
serverEditorSetInternalServerDirLink2=Set server path to internally supplied location (currently set)
serverEditorSetInstallServerDirLink=Set server path to the location of the Tomcat installation
serverEditorSetInstallServerDirLink2=Set server path to the location of the Tomcat installation (currently set)
serverEditorSetDefaultDeployDirLink=Set deploy path to the default value
serverEditorSetDefaultDeployDirLink2=Set deploy path to the default value (currently set)

# Fields
serverEditorServerDir=Server path:
serverEditorDeployDir=Deploy path:
serverEditorSecure=Enable security
serverEditorDebugMode=Enable Tomcat debug mode (v4.x and above only)
serverEditorTestEnvironment=Run modules directly from the workspace (do not modify the Tomcat installation)
errorServerDirIsRoot=The server path may not be set to the the root of your workspace.
errorServerDirUnderRoot=The server path may not be under the \"{0}\" folder of your workspace unless it is the internally supplied path.
errorDeployDirNotSpecified=A deploy path must be specified.

# Browse for Server dialog
serverEditorBrowseServerMessage=Select a server directory.

# Browse for Deploy dialog
serverEditorBrowseDeployMessage=Select a deploy directory.

# --- Clean Work Directory ---
confirmCleanWorkDirTitle=Confirm Clean
cleanServerStateChanging=The state of {0} is in transition or unknown.  Try again when the server has reached a stable state.
cleanModuleWorkDir=Clean work directory for module {0} on {1}.
cleanServerWorkDir=Clean work directories for all Web applications on {0}.
cleanServerRunning=The server must be stopped to clean the work directory.  Clicking OK will include stopping and restaring the server.
cleanServerTask=Cleaning server work directory...

# --- Error Strings ---
errorDefaultDialogTitle=Tomcat Server Error

# --- Clean Work Directory Errors ---
errorCleanModuleTitle=Clean Module Work Directory Error
errorCleanServerTitle=Clean Server Work Directory Error
errorCouldNotCleanModule=Could not clean {0} work directory on {1}.
errorCouldNotCleanServer=Could not clean work directory on {0}.
errorCouldNotCleanStateChange=Clean aborted because the server changed state after confirmation dialog was displayed.
errorCouldNotCleanCantStop="Server can not be stopped at this time.  Try again when the server is stopped or can be stopped.
errorCouldNotCleanStopFailed=Server failed to stop.  Try again when the server is stopped or can be stopped.

errorCleanFailedModule=Clean failed for {0} work directory on {1}.
errorCleanFailedServer=Clean failed for work directory on {0}.
errorCantIdentifyWebApp=Selected module could not be associated with a Web application on the server.
errorCantIdentifyWebAppWasRunning=Selected module could not be associated with a Web application on the server.  Server will not be restarted.
errorErrorDuringClean=An error occurred while cleaning the work directory.
errorErrorDuringCleanWasRunning=An error occurred while cleaning the work directory.  Server will not be restarted.

errorCleanNoRestartModule=Module {0} was successfully cleaned, but server is unable to restart.
errorCleanNoRestartServer=Server {0} was successfully cleaned, but is unable to restart.
errorCleanCantRestart=Server is unable to restart at this time.
errorCleanRestartFailed=Server restart was not successful or did not complete in the expected amount of time.