/**********************************************************************
 * Copyright (c) 2005, 2007 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 runOnServerLaunchConfigName;
	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 dialogRuntimeDeleteServers;
	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 actionStopModule;
	public static String actionStartModule;
	public static String actionRestartModule;
	public static String actionUpdateStatus;
	public static String actionSwitchServerLocation;
	public static String switchServerLocation;
	public static String switchServerLocationMetadata;
	public static String dialogAddRemoveModulesNone;
	public static String actionSetNewServer;
	public static String errorNoArtifact;
	public static String errorNoModules;
	public static String errorLaunchConfig;
	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 wizModuleRequiredModule;
	public static String wizModuleRequiredModules;
	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 wizModuleArtifactsDescription;
	public static String wizModuleArtifactsAvailableList;
	public static String wizModuleArtifactsNoSelectionError;
	public static String wizNewRuntimeTitle;
	public static String wizNewRuntimeDescription;
	public static String wizNewRuntimeCreateServer;
	public static String performingTasks;
	public static String wizModuleWizardTitle;
	public static String wizNewServerWizardTitle;
	public static String wizSelectClientWizardTitle;
	public static String wizTaskWizardTitle;
	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 installedRuntimes;
	public static String wizNewServerSelectExisting;
	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 viewState;
	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 installableServerLocal;
	public static String installableServerSearching;
	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 jobInitializingServersView;
	public static String jobRestarting;
	public static String clientDefaultName;
	public static String clientDefaultDescription;
	public static String moduleDecoratorProject;

	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);
	}
}