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

# --------------- Tasks (progress monitors) ---------------
savingTask=Saving {0}
deletingTask=Deleting {0}

taskPerforming=Performing Tasks
taskModifyModules=Adding and/or removing projects.

publishing=Publishing to {0}...
publishingStatus=Publishing results
publishingStop=Disconnecting from server

publishingModule=Publishing: {0}
publishedModule={0} published successfully

publishingCancelled=Publishing cancelled

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

# Error Messages
errorPublishing=Could not publish to the server.
errorNoConfiguration=The server has no configuration.
errorLoading=Error loading from {0}.
errorSaving=Could not save to {0}.
errorModuleRestartFailed=Could not restart the module.
errorWorkingCopyTimestamp=Could not save because the file has been modified since the start of editting.
errorRuntimeName=Enter a name for the runtime.
errorDuplicateRuntimeName=Name is already in use.
errorStartTimeout=Timeout waiting for {0} to start. Server did not start after {1}s. 
errorStartFailed=Server {0} failed to start.

# Default server creation names
# {0} will be replaced by a number if the given name is already being used
defaultServerProjectName=Servers{0}
defaultRuntimeName={0}
defaultRuntimeName2={0} ({1})
defaultServerName={0} @ {1}
defaultServerName2={0} @ {1} ({2})
defaultServerName3={0}
defaultServerName4={0} ({1})

# Used when a name can't be found
defaultVendor=Basic
defaultVersion=Basic
moduleTypeUnknown=Unknown module

canStartOk=The server can be started.
canStopOk=The server can be stopped.
canRestartOk=The server can be restarted.
canPublishOk=The server can be published to.
canRestartModuleOk=The module can be restarted.
canStartErrorState=The server cannot be started because it is current starting or stopping.
errorLaunchMode=The server does not support the given launch mode.
errorRestartNotStarted=Cannot restart the server because it is not currently running.
errorPublishStarting=Cannot publish to the server because it is currently starting or stopping.
errorPublishNoConfiguration=Cannot publish to the server because the configuration is missing.
errorStopAlreadyStopped=The server cannot be stopped because it is already stopped.
errorRestartModule=The module cannot be restarted.