/**********************************************************************
 * Copyright (c) 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
 **********************************************************************/
package org.eclipse.wst.server.ui.internal;

import org.eclipse.osgi.util.NLS;
/**
 * Translated messages.
 */
public class Messages extends NLS {
	public static String dialogMonitorDescription;
	public static String dialogMonitorAddDescription;
	public static String errorVersionLevel;
	public static String loadingTask;
	public static String createServerProjectDialogMessage;
	public static String defaultServerProjectName;
	public static String terminateServerDialogMessage;
	public static String actionMonitorPort;
	public static String deleteServerDialogTitle;
	public static String deleteServerDialogMessage;
	public static String deleteServerDialogMessageMany;
	public static String deleteServerDialogLooseConfigurations;
	public static String deleteServerDialogRunningServer;
	public static String deleteServerDialogRunningServerStop;
	public static String deleteServerTask;
	public static String errorCouldNotCreateServerProjectStatus;
	public static String dialogStoppingServer;
	public static String savingTask;
	public static String editorSaveErrorDialog;
	public static String editorSaveErrorMessage;
	public static String editorReadOnlyFiles;
	public static String errorEditor;
	public static String editorUndoDisabled;
	public static String editorUndoEnabled;
	public static String editorRedoDisabled;
	public static String editorRedoEnabled;
	public static String editorResourceDeleteTitle;
	public static String editorResourceDeleteServerMessage;
	public static String editorResourceDeleteSave;
	public static String resourceDirtyDialogMessage;
	public static String wizSelectClientTitle;
	public static String wizSelectClientDescription;
	public static String resourceDirtyDialogTitle;
	public static String resourceDirtyDialogContinue;
	public static String wizNewRuntimeWizardTitle;
	public static String serverLaunchDescription;
	public static String serverLaunchServer;
	public static String serverLaunchHost;
	public static String serverLaunchRuntime;
	public static String errorNoServerSelected;
	public static String errorServerAlreadyRunning;
	public static String errorInvalidServer;
	public static String serverLaunchConfigurationTab;
	public static String wizSelectClientMessage;
	public static String errorCouldNotCreateServerProject;
	public static String errorDialogTitle;
	public static String editorValidateEditFailureMessage;
	public static String prefProjectNotModule;
	public static String prefProject;
	public static String prefProjectDefaultServer;
	public static String prefProjectNotConfigured;
	public static String prefProjectNoServer;
	public static String propServerInfoName;
	public static String propServerInfoType;
	public static String propServerInfoVendor;
	public static String errorCouldNotSavePreference;
	public static String preferenceRuntimesDescription;
	public static String add;
	public static String edit;
	public static String remove;
	public static String search;
	public static String dialogRuntimeSearchMessage;
	public static String dialogRuntimeSearchTitle;
	public static String dialogRuntimeSearchProgress;
	public static String infoNoRuntimesFound;
	public static String wizEditRuntimeWizardTitle;
	public static String preferenceRuntimesTable;
	public static String dialogRuntimeInUse;
	public static String defaultDialogTitle;
	public static String preferenceRuntimesTitleLong;
	public static String prefAutoPublish;
	public static String prefAutoPublishLocal;
	public static String prefAutoPublishLocalTime;
	public static String prefAutoPublishRemote;
	public static String prefAutoPublishRemoteTime;
	public static String prefPromptIrreversible;
	public static String prefLaunchMode;
	public static String prefLaunchModeRestart;
	public static String prefLaunchModeContinue;
	public static String prefLaunchModePrompt;
	public static String prefLaunchMode2;
	public static String prefLaunchMode2Restart;
	public static String prefLaunchMode2Continue;
	public static String prefLaunchMode2Breakpoints;
	public static String prefLaunchMode2Prompt;
	public static String prefBreakpoints;
	public static String prefBreakpointsAlways;
	public static String prefBreakpointsNever;
	public static String prefBreakpointsPrompt;
	public static String prefRestart;
	public static String prefRestartAlways;
	public static String prefRestartNever;
	public static String prefRestartPrompt;
	public static String prefShowOnActivity;
	public static String prefSyncStartup;
	public static String prefSaveEditors;
	public static String prefSaveEditorsAlways;
	public static String prefSaveEditorsNever;
	public static String prefSaveEditorsPrompt;
	public static String prefMachineSpeed;
	public static String prefMachineSpeedUnlimited;
	public static String prefMachineSpeedVerySlow;
	public static String prefMachineSpeedSlow;
	public static String prefMachineSpeedAverage;
	public static String prefMachineSpeedFast;
	public static String prefMachineSpeedVeryFast;
	public static String actionNew;
	public static String actionNewServer;
	public static String actionDebugToolTip;
	public static String actionDebug;
	public static String actionStartToolTip;
	public static String actionStart;
	public static String actionProfileToolTip;
	public static String actionProfile;
	public static String actionRestartToolTip;
	public static String actionRestart;
	public static String actionPublishToolTip;
	public static String actionPublish;
	public static String actionPublishCleanToolTip;
	public static String actionPublishClean;
	public static String actionRename;
	public static String actionDelete;
	public static String actionRemove;
	public static String dialogRemoveModuleConfirm;
	public static String terminateServerDialogTitle;
	public static String actionDebugOnServer;
	public static String actionProfileOnServer;
	public static String actionRunOnServer;
	public static String actionRestartModule;
	public static String actionUpdateStatus;
	public static String actionMoveServerToMetadata;
	public static String actionMoveServerToWorkspace;
	public static String dialogAddRemoveModulesNone;
	public static String actionSetNewServer;
	public static String errorNoArtifact;
	public static String errorNoModules;
	public static String dialogModeWarningRun;
	public static String dialogModeWarningDebug;
	public static String dialogModeWarningProfile;
	public static String dialogModeWarningRestart;
	public static String dialogModeWarningBreakpoints;
	public static String dialogModeWarningContinue;
	public static String dialogBreakpoints;
	public static String dialogBreakpointsReenable;
	public static String dialogBreakpointsContinue;
	public static String dialogRemember;
	public static String dialogRestart;
	public static String dialogRestartRestart;
	public static String dialogRestartContinue;
	public static String dialogPublishClean;
	public static String errorNoServer;
	public static String errorRootModule;
	public static String hostname;
	public static String wizModuleTitle;
	public static String wizModuleDescription;
	public static String wizModuleMessage;
	public static String wizModuleAvailableList;
	public static String wizModuleDeployedList;
	public static String wizModuleAdd;
	public static String wizModuleRemove;
	public static String wizModuleAddAll;
	public static String wizModuleRemoveAll;
	public static String wizTaskTitle;
	public static String wizTaskDescription;
	public static String wizErrorInvalidFolder;
	public static String wizErrorClosedProject;
	public static String createServerProjectDialogTitle;
	public static String wizNewServerTitle;
	public static String wizNewServerDescription;
	public static String wizNewServerSelect;
	public static String wizNewServerManual;
	public static String wizSelectServerPreferred;
	public static String wizNewServerExisting;
	public static String wizNewServerRuntime;
	public static String wizNewServerRuntimeCreate;
	public static String wizErrorServerCreationError;
	public static String wizRunOnServerTitle;
	public static String wizDebugOnServerTitle;
	public static String wizProfileOnServerTitle;
	public static String wizNewRuntimeTitle;
	public static String wizNewRuntimeDescription;
	public static String performingTasks;
	public static String wizModuleWizardTitle;
	public static String wizNewServerWizardTitle;
	public static String wizSelectClientWizardTitle;
	public static String wizTaskWizardTitle;
	public static String viewBy;
	public static String wizDescription;
	public static String dialogMonitorTitle;
	public static String dialogMonitorMonitorPort;
	public static String dialogMonitorColumnStatus;
	public static String dialogMonitorColumnType;
	public static String dialogMonitorColumnPort;
	public static String dialogMonitorColumnMonitorPort;
	public static String dialogMonitorColumnContentType;
	public static String dialogMonitorContentType;
	public static String dialogMonitorContentTypeAll;
	public static String dialogMonitorContentTypeWeb;
	public static String dialogMonitorContentTypeWebServices;
	public static String dialogMonitorNone;
	public static String start;
	public static String stop;
	public static String started;
	public static String stopped;
	public static String columnName;
	public static String columnType;
	public static String runtimeTypeCompTree;
	public static String runtimeTypeCompDescription;
	public static String name;
	public static String vendor;
	public static String version;
	public static String moduleSupport;
	public static String installedRuntimes;
	public static String wizNewServerSelectExisting;
	public static String host;
	public static String elementUnknownName;
	public static String serverTypeCompLabel;
	public static String viewServers;
	public static String viewNoModules;
	public static String actionProperties;
	public static String actionOpen;
	public static String viewServer;
	public static String viewStatus;
	public static String viewSync;
	public static String actionStopToolTip;
	public static String actionStop;
	public static String actionModifyModulesToolTip;
	public static String actionModifyModules;
	public static String actionMonitor;
	public static String viewInitializing;
	public static String viewSyncOkay;
	public static String viewSyncRestart;
	public static String viewSyncPublish;
	public static String viewSyncRestartPublish;
	public static String viewSyncPublishing;
	public static String viewSyncOkay2;
	public static String viewSyncRestart2;
	public static String viewSyncPublish2;
	public static String viewSyncRestartPublish2;
	public static String viewSyncPublishing2;
	public static String editorServerEditor;
	public static String editorPromptIrreversible;
	public static String editorRenameFiles;
	public static String errorEditorCantSave;
	public static String editorReadOnly;
	public static String editorWritable;
	public static String editorResourceModifiedTitle;
	public static String editorReadOnlyMessage;
	public static String editorServerModifiedMessage;
	public static String editorResourceWarnTitle;
	public static String editorResourceWarnMessage;
	public static String serverEditorOverviewPageTitle;
	public static String serverEditorOverviewGeneralSection;
	public static String serverEditorOverviewGeneralDescription;
	public static String serverEditorOverviewServerName;
	public static String serverEditorOverviewServerHostname;
	public static String serverEditorOverviewRuntime;
	public static String serverEditorOverviewRuntimeEdit;
	public static String serverEditorOverviewServerConfigurationPath;
	public static String serverEditorOverviewServerConfigurationBrowse;
	public static String serverEditorOverviewServerConfigurationBrowseMessage;
	public static String serverEditorOverviewAutoPublishSection;
	public static String serverEditorOverviewAutoPublishDescription;
	public static String serverEditorOverviewAutoPublishDefault;
	public static String serverEditorOverviewAutoPublishDefaultEdit;
	public static String serverEditorOverviewAutoPublishDisable;
	public static String serverEditorOverviewAutoPublishOverride;
	public static String serverEditorOverviewAutoPublishOverrideInterval;
	public static String serverEditorOverviewAutoPublishCommand;
	public static String serverEditorOverviewAutoPublishInvalid;
	public static String serverEditorOverviewServerHostnameCommand;
	public static String serverEditorOverviewServerNameCommand;
	public static String serverEditorOverviewRuntimeCommand;
	public static String serverEditorOverviewOpenLaunchConfiguration;
	public static String errorMissingConfiguration;
	public static String viewStatusStarting4;
	public static String viewStatusStarted2;
	public static String viewStatusStopping4;
	public static String viewStatusStopped2;
	public static String viewStatusStarting1;
	public static String viewStatusStarting2;
	public static String viewStatusStarting3;
	public static String viewStatusStopping1;
	public static String viewStatusStopping2;
	public static String viewStatusStopping3;
	public static String viewStatusStartedDebug;
	public static String viewStatusStartedProfile;
	public static String viewStatusStarted;
	public static String viewStatusStopped;
	public static String actionStopToolTip2;
	public static String actionStop2;
	public static String launchingClientTask;
	public static String wizNewInstallableServerTitle;
	public static String wizNewInstallableServerDescription;
	public static String wizNewInstallableServerMessage;
	public static String wizNewInstallableServerConfirm;
	public static String wizNewInstallableServerJob;
	public static String wizNewInstallableServerRestart;
	public static String installableServerCompTree;
	public static String installableServerLink;
	public static String wizLicenseTitle;
	public static String wizLicenseDescription;
	public static String wizLicenseAccept;
	public static String wizLicenseDecline;
	public static String wizLicenseNone;
	public static String jobInitializing;
	public static String jobRestarting;
	public static String clientDefaultName;
	public static String clientDefaultDescription;

	public static String errorStartingMonitor;
	public static String audioPrefSelectFile;
	public static String audioPrefEnable;
	public static String audioPrefVolume;
	public static String audioPrefSounds;
	public static String audioPrefSound;
	public static String audioPrefFile;
	public static String audioPrefPlay;
	public static String audioPrefBrowse;
	public static String audioPrefReset;
	public static String audioUnknown;
	public static String audioNone;
	public static String audioDefault;

	public static String preferenceInternetDescription;
	public static String internalWebBrowserName;

	static {
		NLS.initializeMessages(ServerUIPlugin.PLUGIN_ID + ".internal.Messages", Messages.class);
	}
}