###############################################################################
# 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
###############################################################################
pluginName=Apache Tomcat UI Support
providerName=IBM

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

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

# --- Configuration Editor ---
configurationEditorWebModulesPage=Modules
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=Project
configurationEditorReloadColumn=Auto Reload
configurationEditorProjectMissing={0} missing
configurationEditorReloadEnabled=Enabled
configurationEditorReloadDisabled=Disabled
configurationEditorAddProjectModule=Add Web Project...
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=Projects:
configurationEditorWebModuleDialogPath=Path:
configurationEditorWebModuleDialogDocumentBase=Document base:
configurationEditorWebModuleDialogAutoReload=Auto reloading:
configurationEditorWebModuleDialogReloadEnabled=Enabled
configurationEditorWebModuleDialogSelectDirectory=Select the Web module 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)


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

runtimeName=Na&me:
browse=B&rowse...
installDir=Tomcat installation &directory:
installedJRE=&JRE:
installedJREs=&Installed JREs...
selectInstallDir=Select Tomcat installation directory.

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