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

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

# Browse for Deploy dialog
configurationEditorBrowseDeploy=Browse
configurationEditorBrowseDeployMessage=Select a deploy directory.

# --- Server Editor ---
serverEditorGeneralSection=Server
serverEditorGeneralDescription=Enter settings for the server.

# Fields
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)
serverEditorDeployDir=Deploy directory:
serverEditorSpecialFieldsLabel=The field above may be changed only when the server is synchronized with no modules added.
errorDeployDirNotSpecified=A Deploy directory must be specified.

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