/*******************************************************************************
 * Copyright (c) 2005, 2012 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 * IBM - Initial API and implementation
 * Trevor S. Kaufman - <endante@gmail.com> - bug 156152
 *******************************************************************************/
package org.eclipse.team.internal.ui;

import org.eclipse.osgi.util.NLS;

public class TeamUIMessages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.team.internal.ui.messages";//$NON-NLS-1$

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, TeamUIMessages.class);
	}

	public static String ConfigureMultipleProjectsWizard_0;

	public static String ConfigureMultipleProjectsWizard_1;

	public static String ProjectSelectionPage_0;

	public static String ProjectSelectionPage_1;

	public static String ProjectSelectionPage_2;

	public static String TextPreferencePage_ExtensionNotCompleted;

	public static String CompareInputChangeNotifier_0;

	public static String CompareInputChangeNotifier_1;

	public static String CompareLocalHistory_0;

	public static String DiffTreeChangesSection_10;

	public static String DiffTreeChangesSection_11;

	public static String DiffTreeChangesSection_12;

	public static String DiffTreeChangesSection_13;

	public static String DiffTreeChangesSection_14;

	public static String DiffTreeChangesSection_3;

	public static String DiffTreeChangesSection_4;

	public static String DiffTreeChangesSection_5;

	public static String DiffTreeChangesSection_6;

	public static String DiffTreeChangesSection_7;

	public static String DiffTreeChangesSection_8;

	public static String DiffTreeChangesSection_9;

	public static String EditionHistoryPage_0;

	public static String EditionHistoryPage_1;

	public static String EditionHistoryPage_2;

	public static String ExportProjectSetMainPage_Browse;

	public static String ExportProjectSetMainPage_DeselectAll;

	public static String ExportProjectSetMainPage_EditButton;

	public static String ExportProjectSetMainPage_ExportWorkingSets;

	public static String ExportProjectSetMainPage_FileButton;

	public static String ExportProjectSetMainPage_SelectAll;

	public static String ExportProjectSetMainPage_SelectButton;

	public static String ExportProjectSetMainPage_WorkspaceButton;

	public static String ExportProjectSetMainPage_WorkspaceDialogErrorFilenameSegments;

	public static String ExportProjectSetMainPage_WorkspaceDialogErrorNoFilename;

	public static String ExportProjectSetMainPage_WorkspaceDialogFilename;

	public static String ExportProjectSetMainPage_WorkspaceDialogMessage;

	public static String ExportProjectSetMainPage_WorkspaceDialogTitle;

	public static String ExportProjectSetMainPage_WorkspaceDialogTitleMessage;

	public static String GenericHistoryView_1;

	public static String GenericHistoryView_2;

	public static String HistoryPageCompareEditorInput_0;

	public static String ImportProjectSetMainPage_AddToWorkingSet;
	public static String ImportProjectSetMainPage_Project_Set_File;
	public static String ImportProjectSetMainPage_Project_Set_Url;

	public static String ImportProjectSetMainPage_Browse;

	public static String ImportProjectSetDialog_duplicatedWorkingSet_title;
	public static String ImportProjectSetDialog_duplicatedWorkingSet_message;
	public static String ImportProjectSetDialog_duplicatedWorkingSet_replace;
	public static String ImportProjectSetDialog_duplicatedWorkingSet_merge;
	public static String ImportProjectSetDialog_duplicatedWorkingSet_skip;
	public static String ImportProjectSetDialog_duplicatedWorkingSet_applyToAll;
	public static String ImportProjectSetDialog_malformed_url;

	public static String information;

	public static String ConfigureProjectAction_configureProject;
	public static String ConfigureProjectWizard_configureProject;
	public static String ConfigureSynchronizeScheduleComposite_0;
	public static String ConfigureSynchronizeScheduleComposite_1;
	public static String ConfigureProjectWizard_description;
	public static String ConfigureProjectWizard_title;
	public static String ConfigureProjectWizardMainPage_selectRepository;

	public static String IgnorePreferencePage_description;
	public static String IgnorePreferencePage_add;
	public static String IgnorePreferencePage_enterPatternLong;
	public static String IgnorePreferencePage_enterPatternShort;
	public static String IgnorePreferencePage_ignorePatterns;
	public static String IgnorePreferencePage_patternExistsLong;
	public static String IgnorePreferencePage_patternExistsShort;
	public static String IgnorePreferencePage_remove;

	public static String LocalHistoryPage_0;

	public static String LocalHistoryPage_1;

	public static String LocalHistoryPage_CollapseAllAction;

	public static String LocalHistoryPage_CollapseAllTip;

	public static String LocalHistoryPage_CompareAction;

	public static String LocalHistoryPage_CompareModeAction;

	public static String LocalHistoryPage_CompareModeTip;

	public static String LocalHistoryPage_FetchLocalHistoryMessage;

	public static String LocalHistoryPage_GetContents;

	public static String LocalHistoryPage_GroupRevisionsByDateAction;

	public static String LocalHistoryPage_GroupRevisionsByDateTip;

	public static String LocalHistoryPage_NoRevisionsFound;

	public static String LocalHistoryPage_OpenAction;

	public static String LocalHistoryPage_OpenWithMenu;

	public static String LocalHistoryPage_OpenWithMenu_Other;

	public static String LocalHistoryPage_OpenWithMenu_OtherDialogDescription;

	public static String LocalHistoryPage_OpenWithMenu_DefaultEditorDescription;

	public static String LocalHistoryPage_OpenEditorError;

	public static String LocalHistoryPage_OverwriteMessage;

	public static String LocalHistoryPage_OverwriteTitle;

	public static String MergeAllActionHandler_0;

	public static String MergeAllActionHandler_1;

	public static String MergeAllActionHandler_2;

	public static String MergeAllActionHandler_3;

	public static String ModelCompareEditorInput_0;

	public static String ModelCompareEditorInput_1;

	public static String ModelCompareEditorInput_2;

	public static String ModelElementSelectionPage_AllModelsDisabledMessage;

	public static String ModelElementSelectionPage_AllModelsDisabledTitle;

	public static String ModelEnablementPreferencePage_0;

	public static String ModelEnablementPreferencePage_1;

	public static String ModelMergeOperation_3;

	public static String ModelSelectionDropDownAction_2;

	public static String ParticipantPageCompareEditorInput_0;

	public static String RegistryReader_0;

	public static String ReplaceLocalHistory_0;

	public static String ReplaceLocalHistory_1;

	public static String ResourceMarkAsMergedHandler_0;

	public static String ResourceMarkAsMergedHandler_1;

	public static String ResourceMergeHandler_0;

	public static String ResourceMergeHandler_1;

	public static String ResourceMergeHandler_2;

	public static String ResourceMergeHandler_3;

	public static String ResourceMergeHandler_4;

	public static String ResourceMergeHandler_5;

	public static String ResourceMergeHandler_6;

	public static String ResourceMergeHandler_7;

	public static String ResourceModelLabelProvider_0;

	public static String ResourceModelPreferencePage_0;

	public static String RevisionAnnotationController_0;

	public static String SaveableCompareEditorInput_0;
	public static String SaveablesCompareEditorInput_twoWayTitle;
	public static String SaveablesCompareEditorInput_twoWayTooltip;
	public static String SaveablesCompareEditorInput_threeWayTitle;
	public static String SaveablesCompareEditorInput_threeWayTooltip;

	public static String ShowLocalHistory_0;

	public static String ShowLocalHistory_2;

	public static String simpleInternal;
	public static String exception;

	public static String StartupPreferencePage_0;

	public static String StartupPreferencePage_1;

	public static String StartupPreferencePage_2;

	public static String StartupPreferencePage_3;

	public static String StartupPreferencePage_4;

	public static String StartupPreferencePage_5;

	public static String SyncInfoCompareInput_localLabel;
	public static String SyncInfoCompareInput_localLabelExists;
	public static String SyncInfoCompareInput_localLabelAuthorExists;
	public static String SyncInfoCompareInput_remoteLabel;
	public static String SyncInfoCompareInput_baseLabel;
	public static String SyncInfoCompareInput_remoteLabelExists;
	public static String SyncInfoCompareInput_remoteLabelAuthorExists;
	public static String SyncInfoCompareInput_baseLabelExists;
	public static String SyncInfoCompareInput_baseLabelAuthorExists;
	public static String SyncInfoCompareInput_title;
	public static String SyncInfoCompareInput_0;
	public static String SyncInfoCompareInput_1;
	public static String SyncInfoCompareInput_2;
	public static String SyncInfoCompareInput_3;
	public static String SyncInfoCompareInput_tooltip;

	public static String SyncViewerPreferencePage_43;
	public static String SyncViewerPreferencePage_44;
	public static String SyncViewerPreferencePage_45;
	public static String SyncViewerPreferencePage_46;
	public static String SyncViewerPreferencePage_47;

	public static String TeamAction_internal;
	public static String TextPreferencePage_add;
	public static String TextPreferencePage_0;
	public static String TextPreferencePage_2;
	public static String TextPreferencePage_3;
	public static String TextPreferencePage_5;
	public static String TextPreferencePage_6;
	public static String TextPreferencePage_7;
	public static String TextPreferencePage_1;
	public static String TextPreferencePage_change;
	public static String TextPreferencePage_enterExtensionLong;
	public static String TextPreferencePage_enterExtensionShort;
	public static String TextPreferencePage_extensionExistsLong;
	public static String TextPreferencePage_extensionExistsShort;
	public static String TextPreferencePage_remove;
	public static String SynchronizationViewPreference_defaultPerspectiveNone;
	public static String SynchronizationViewPreference_defaultPerspectiveDescription;
	public static String SynchronizationViewPreference_defaultPerspectiveLabel;

	public static String ExportProjectSetMainPage_Select_the_projects_to_include_in_the_project_set__2;
	public static String ExportProjectSetMainPage_Project_Set_File_Name__3;
	public static String ExportProjectSetMainPage_Browse_4;
	public static String ExportProjectSetMainPage_You_have_specified_a_folder_5;
	public static String ExportProjectSetMainPage_A_project_must_be_selected;
	public static String ExportProjectSetMainPage_A_working_set_must_be_selected;
	public static String ExportProjectSetMainPage_None_of_the_selected_working_sets_have_an_available_project_to_export;
	public static String ExportProjectSetMainPage_Initial_description;
	public static String ExportProjectSetMainPage_specifyFile;

	public static String ImportProjectSetMainPage_Browse_3;
	public static String ImportProjectSetMainPage_The_given_URL_cannot_be_loaded;
	public static String ImportProjectSetMainPage_The_specified_file_does_not_exist_4;
	public static String ImportProjectSetMainPage_You_have_specified_a_folder_5;
	public static String ImportProjectSetMainPage_workingSetNameEmpty;
	public static String ImportProjectSetMainPage_createWorkingSetLabel;
	public static String ImportProjectSetMainPage_workingSetLabel;
	public static String ImportProjectSetMainPage_runInBackground;
	public static String ImportProjectSetMainPage_jobName;
	public static String ImportProjectSetMainPage_specifyFile;
	public static String ImportProjectSetMainPage_specifyURL;
	public static String ImportProjectSetMainPage_selectWorkingSet;
	public static String ImportProjectSetMainPage_projectSetFileInvalid;

	public static String ProjectSetContentHandler_Element_provider_must_be_contained_in_element_psf_4;
	public static String ProjectSetContentHandler_Element_project_must_be_contained_in_element_provider_7;

	public static String ProjectSetExportWizard_Project_Set_1;
	public static String ProjectSetExportWizard_Export_a_Project_Set_3;
	public static String ProjectSetExportWizard_Question_4;
	public static String ProjectSetExportWizard_Target_directory_does_not_exist__Would_you_like_to_create_it__5;
	public static String ProjectSetExportWizard_Export_Problems_6;
	public static String ProjectSetExportWizard_An_error_occurred_creating_the_target_directory_7;
	public static String ProjectSetExportWizard_Question_8;
	public static String ProjectSetExportWizard_Target_already_exists__Would_you_like_to_overwrite_it__9;

	public static String ProjectSetImportWizard_Project_Set_1;
	public static String ProjectSetImportWizard_0;
	public static String ProjectSetImportWizard_2;
	public static String ProjectSetImportWizard_1;
	public static String ProjectSetImportWizard_3;
	public static String ProjectSetImportWizard_Import_a_Project_Set_3;
	public static String ProjectSetImportWizard_workingSetExistsTitle;
	public static String ProjectSetImportWizard_workingSetExistsMessage;

	public static String ExportProjectSetMainPage_Project_Set_Files_3;
	public static String ExportProjectSetMainPage_default;
	public static String ExportProjectSetMainPage_warning;
	public static String ImportProjectSetMainPage_allFiles;
	public static String ImportProjectSetMainPage_Project_Set_Files_2;
	public static String ExportProjectSetMainPage__File_name__1;
	public static String ImportProjectSetAction_0;

	public static String SyncViewPreferencePage_lastRefreshRunNever;

	//
	// Misc
	//

	public static String SynchronizeView_13;
	public static String SynchronizeView_14;
	public static String SynchronizeView_16;
	public static String SynchronizeView_statusLine;
	public static String SynchronizeView_linkWithEditor;
	public static String SynchronizeView_linkWithEditorDescription;
	public static String SynchronizeView_linkWithEditorTooltip;
	public static String SynchronizeView_fileMustNotBeNull;
	public static String SynchronizeView_noActiveWorkbenchPage;

	public static String StatisticsPanel_outgoing;
	public static String StatisticsPanel_incoming;
	public static String StatisticsPanel_conflicting;
	public static String StatisticsPanel_noWorkingSet;
	public static String StatisticsPanel_numbersTooltip;
	public static String StatisticsPanel_numberTotalSingular;
	public static String StatisticsPanel_numberTotalPlural;

	public static String SyncViewerPreferencePage_0;
	public static String SyncViewerPreferencePage_1;
	public static String SyncViewerPreferencePage_2;
	public static String SyncViewerPreferencePage_3;
	public static String SyncViewerPreferencePage_6;
	public static String SyncViewerPreferencePage_7;
	public static String SyncViewerPreferencePage_13;
	public static String SyncViewerPreferencePage_14;
	public static String SyncViewerPreferencePage_15;
	public static String SyncViewerPreferencePage_16;
	public static String SyncViewerPreferencePage_19;
	public static String SyncViewerPreferencePage_42;

	public static String PreferencePageContainerDialog_6;

	public static String RefreshSubscriberJob_2a;
	public static String RefreshSubscriberJob_2b;
	public static String RefreshSubscriberJob_3;

	public static String SynchronizeManager_7;
	public static String SynchronizeManager_8;
	public static String SynchronizeManager_9;
	public static String SynchronizeManager_10;
	public static String TeamSubscriberSyncPage_labelWithSyncKind;
	public static String AbstractSynchronizeParticipant_4;

	public static String SynchronizeManager_11;
	public static String AbstractSynchronizeParticipant_5;
	public static String ChangesSection_filterHides;
	public static String ChangesSection_filterHidesSingular;
	public static String ChangesSection_filterHidesPlural;
	public static String ChangesSection_filterChange;
	public static String ChangesSection_noChanges;

	public static String Utils_17;
	public static String Utils_18;
	public static String Utils_19;
	public static String Utils_22;
	public static String Utils_23;
	public static String Utils_24;
	public static String Utils_25;
	public static String Utils_26;
	public static String RefreshCompleteDialog_4;
	public static String RefreshCompleteDialog_4a;
	public static String RefreshCompleteDialog_changesSingular;
	public static String RefreshCompleteDialog_changesPlural;
	public static String RefreshCompleteDialog_newChangesSingular;
	public static String RefreshCompleteDialog_newChangesPlural;
	public static String RefreshCompleteDialog_incomingChanges;
	public static String RefreshCompleteDialog_outgoingChanges;
	public static String RefreshCompleteDialog_6;
	public static String ConfigureRefreshScheduleDialog_0;
	public static String ConfigureRefreshScheduleDialog_1;
	public static String ConfigureRefreshScheduleDialog_2;
	public static String ConfigureRefreshScheduleDialog_3;
	public static String ConfigureRefreshScheduleDialog_3a;
	public static String ConfigureRefreshScheduleDialog_4;
	public static String ConfigureRefreshScheduleDialog_5;
	public static String ConfigureRefreshScheduleDialog_6;
	public static String ConfigureRefreshScheduleDialog_7;
	public static String RefreshSchedule_changesSingular;
	public static String RefreshSchedule_changesPlural;
	public static String RefreshSchedule_7;
	public static String RefreshSchedule_9;
	public static String RefreshSchedule_10;
	public static String RefreshSchedule_11;
	public static String RefreshSchedule_12;
	public static String RefreshSchedule_13;
	public static String RefreshSchedule_14;
	public static String RefreshSchedule_15;
	public static String RefreshSchedule_16;
	public static String ChangesSection_8;
	public static String ChangesSection_9;
	public static String ChangesSection_10;
	public static String ChangesSection_11;
	public static String ChangesSection_12;

	public static String OpenComparedDialog_noChangeTitle;
	public static String OpenComparedDialog_noChangesMessage;
	public static String GlobalRefreshAction_4;
	public static String GlobalRefreshAction_5;
	public static String ParticipantCompareDialog_1;
	public static String ParticipantCompareDialog_2;
	public static String ParticipantCompareDialog_3;
	public static String SynchronizeManager_27;
	public static String SynchronizeManager_30;
	public static String SynchronizeManager_31;
	public static String SynchronizeManager_32;
	public static String ParticipantPagePane_0;
	public static String Participant_synchronizing;
	public static String ParticipantPageSaveablePart_0;
	public static String Participant_synchronizingDetails;
	public static String Participant_synchronizingMoreDetails;
	public static String Participant_synchronizingResources;
	public static String GlobalRefreshResourceSelectionPage_1;
	public static String GlobalRefreshResourceSelectionPage_2;
	public static String GlobalRefreshResourceSelectionPage_3;
	public static String GlobalRefreshResourceSelectionPage_5;
	public static String GlobalRefreshResourceSelectionPage_6;
	public static String GlobalRefreshResourceSelectionPage_7;
	public static String GlobalRefreshResourceSelectionPage_8;
	public static String GlobalRefreshResourceSelectionPage_10;
	public static String GlobalRefreshResourceSelectionPage_11;
	public static String GlobalRefreshResourceSelectionPage_12;
	public static String GlobalRefreshResourceSelectionPage_13;
	public static String GlobalRefreshParticipantSelectionPage_0;
	public static String GlobalRefreshParticipantSelectionPage_1;
	public static String GlobalRefreshParticipantSelectionPage_2;
	public static String GlobalRefreshParticipantSelectionPage_3;

	public static String GlobalRefreshSubscriberPage_0;
	public static String GlobalRefreshSubscriberPage_1;
	public static String GlobalRefreshSubscriberPage_2;

	public static String SynchronizeManager_18;
	public static String GlobalSynchronizeWizard_11;
	public static String SynchronizeManager_19;
	public static String SynchronizeModelProvider_0;
	public static String SynchronizeModelUpdateHandler_0;

	public static String WorkingSetsDialog_ErrorMessage;

	public static String WorkingSetsDialog_Label;

	public static String WorkingSetsDialog_Message;

	public static String WorkingSetsDialog_Title;

	public static String WorkingSetsDialog_TitleBar;
	public static String WorkspaceScope_0;
	public static String WorkingSetScope_0;
	public static String SubscriberParticipant_namePattern;
	public static String SubscriberParticipantWizard_0;
	public static String SubscriberParticipantWizard_1;

	public static String RemoveFromView_warningTitle;
	public static String RemoveFromView_warningMessage;
	public static String RemoveFromView_warningDontShow;
	public static String ResourceMappingSelectionArea_0;
	public static String ResourceMappingSelectionArea_1;

	public static String CompressedFoldersModelProvider_0;
	public static String HierarchicalModelProvider_0;
	public static String UIProjectSetSerializationContext_0;
	public static String UIProjectSetSerializationContext_1;
	public static String UIProjectSetSerializationContext_2;
	public static String RemoveSynchronizeParticipantAction_0;
	public static String RemoveSynchronizeParticipantAction_1;

	public static String ConfigureProjectWizard_showAll;
	public static String ImportProjectSetMainPage_description;
	public static String ExportProjectSetMainPage_description;

	public static String DefaultUIFileModificationValidator_0;
	public static String DefaultUIFileModificationValidator_1;
	public static String DefaultUIFileModificationValidator_2;
	public static String DefaultUIFileModificationValidator_3;
	public static String DefaultUIFileModificationValidator_4;


	public static String CopyToClipboardAction_1;
	public static String CopyToClipboardAction_2;
	public static String CopyToClipboardAction_3;
	public static String CopyToClipboardAction_4;

	public static String PasteAction_1;
	public static String PasteAction_2;
	public static String PasteAction_3;
	public static String PasteAction_4;

	public static String FlatModelProvider_6;
	public static String FlatModelProvider_7;
	public static String FlatModelProvider_8;
	public static String FlatModelProvider_9;
	public static String FlatModelProvider_0;

	public static String ChangeLogModelProvider_0a;
	public static String ChangeLogModelProvider_1a;
	public static String ChangeLogModelProvider_2a;
	public static String ChangeLogModelProvider_3a;
	public static String ChangeLogModelProvider_0;
	public static String ChangeLogModelProvider_12;
	public static String ChangeLogModelProvider_13;
	public static String ChangeLogModelProvider_5;
	public static String ChangeLogModelProvider_6;
	public static String ChangeLogModelProvider_7;
	public static String ChangeLogModelProvider_9;
	public static String ChangeLogModelProvider_10;
	public static String ChangeLogModelManager_0;
	public static String ChangeSetActionGroup_0;
	public static String ChangeSetActionGroup_1;
	public static String ChangeSetActionGroup_2;
	public static String CommitSetDiffNode_0;
	public static String FileTypeTable_0;
	public static String FileTypeTable_1;
	public static String FileTypeTable_2;
	public static String FileTypeTable_3;
	public static String FileTypeTable_4;
	public static String FileTypeTable_5;
	public static String FileTypeTable_6;
	public static String OpenWithActionGroup_0;

	public static String nameAndRevision;
	public static String internal;

	public static String TeamCompareEditorInput_repository;
	public static String TeamCompareEditorInput_titleAncestor;
	public static String TeamCompareEditorInput_titleNoAncestor;
	public static String TeamCompareEditorInput_titleNoAncestorDifferent;
	public static String TeamCompareEditorInput_different;

	public static String TeamCompareEditorInput_comparing;
	public static String TeamCompareEditorInput_new;
	public static String TeamCompareEditorInput_deleted;

	public static String TeamCompareEditorInput_fileProgress;

	public static String GenericHistoryView_Refresh;
	public static String GenericHistoryView_GetDirectDescendents;
	public static String GenericHistoryView_GetPredecessor;
	public static String GenericHistoryView_ShowCommentViewer;
	public static String GenericHistoryView_WrapComments;
	public static String GenericHistoryView_ShowTagViewer;
	public static String GenericHistoryView_GenericFileHistoryFetcher;
	public static String GenericHistoryView_LinkWithEditor;
	public static String GenericHistoryTableProvider_Revision;
	public static String GenericHistoryTableProvider_RevisionTime;
	public static String GenericHistoryTableProvider_Author;
	public static String GenericHistoryTableProvider_Comment;
	public static String OpenRevisionAction_DeletedRevisionTitle;
	public static String OpenRevisionAction_DeletedRevisionMessage;
	public static String GenericHistoryView_ErrorFetchingEntries;
	public static String TeamContentProviderDescriptor_1;
	public static String TeamContentProviderDescriptor_2;
	public static String MergeIncomingChangesAction_0;
	public static String AdditionalMappingsDialog_0;
	public static String AdditionalMappingsDialog_1;
	public static String AdditionalMappingsDialog_2;
	public static String ResourceMappingMergeOperation_0;
	public static String ResourceMappingMergeOperation_1;
	public static String ResourceMappingMergeOperation_2;
	public static String ResourceMappingOperation_0;
	public static String AbstractSynchronizationLabelProvider_0;

	public static String ResourceMappingMergeOperation_3;

	public static String ResourceMappingMergeOperation_4;


	public static String GenericHistoryView_PinCurrentHistory;

	public static String GenericHistoryView_0;

	public static String LocalHistoryTableProvider_localRevision;
	public static String LocalHistoryPage_openRevision;
	public static String LocalHistoryPage_fetchingLocalHistory;

	public static String CompareFileRevisionEditorInput_compareResourceAndVersions;
	public static String CompareFileRevisionEditorInput_repository;
	public static String CompareFileRevisionEditorInput_repositoryWithoutAuthor;
	public static String CompareFileRevisionEditorInput_workspace;
	public static String CompareFileRevisionEditorInput_workspace_authorExists;
	public static String CompareFileRevisionEditorInput_localRevision;

	public static String ShowLocalHistory_1;

	public static String DiffTreeChangesSection_0;

	public static String DiffTreeChangesSection_1;

	public static String DiffTreeChangesSection_2;

	public static String ModelParticipantPageDialog_0;

	public static String ModelElementSelectionPage_0;

	public static String ModelSelectionDropDownAction_0;

	public static String ModelSelectionDropDownAction_1;

	public static String RemoveSynchronizeParticipantAction_2;

	public static String RemoveSynchronizeParticipantAction_3;

	public static String RemoveSynchronizeParticipantAction_4;

	public static String RemoveSynchronizeParticipantAction_5;

	public static String SynchronizationLabelProvider_0;

	public static String ModelMergeOperation_0;

	public static String ModelMergeOperation_1;

	public static String ModelMergeOperation_2;

	public static String ModelSynchronizeParticipant_0;

	public static String ModelSynchronizeParticipant_1;

	public static String ModelParticipantAction_0;

	public static String ModelParticipantAction_1;

	public static String ShowModelProviderAction_0;

	public static String GenericHistoryView_RefreshTooltip;

	public static String GenericHistoryView_LinkWithTooltip;

	public static String CompareFileRevisionEditorInput_0;

	public static String CompareFileRevisionEditorInput_1;

	public static String CompareFileRevisionEditorInput_2;

	public static String SynchronizationCompareAdapter_0;

	public static String HistoryPage_Today;
	public static String HistoryPage_Yesterday;
	public static String HistoryPage_ThisMonth;
	public static String HistoryPage_Previous;

	public static String OpenRevisionAction_DeletedRevTitle;
	public static String OpenRevisionAction_ErrorTitle;
	public static String OpenRevisionAction_ErrorMessage;
	public static String OpenRevisionAction_DeletedRevMessage;

	public static String CompareRevisionAction_DeleteCompareMessage;
	public static String CompareRevisionAction_CompareWithCurrent;
	public static String CompareRevisionAction_CompareWithOther;
	public static String CompareRevisionAction_Revision;
	public static String CompareRevisionAction_Local;

	public static String TeamAction_errorTitle;
	public static String TeamAction_handlerNotEnabledTitle;
	public static String TeamAction_handlerNotEnabledMessage;

	public static String SelectAncestorDialog_title;
	public static String SelectAncestorDialog_message;
	public static String SelectAncestorDialog_option;

	public static String PatchParsedPage_title;
	public static String PatchParsedPage_description;
	public static String PatchParsedPage_clickFinishToGoToSynchronizeView;

	public static String PatchInaccessibleProjectsPage_title;
	public static String PatchInaccessibleProjectsPage_message;
	public static String PatchInaccessibleProjectsPage_projectDoesNotExistInWorkspace;
	public static String PatchInaccessibleProjectsPage_selectExisting;
	public static String PatchInaccessibleProjectsPage_deselectAll;
	public static String PatchInaccessibleProjectsPage_openingProjects;

	public static String IgnoreLeadingPathSegmentsDialog_title;
	public static String IgnoreLeadingPathSegmentsDialog_message;
	public static String IgnoreLeadingPathSegmentsDialog_notANumber;
	public static String IgnoreLeadingPathSegmentsDialog_numberOutOfRange;

	public static String FuzzFactorDialog_title;
	public static String FuzzFactorDialog_message;
	public static String FuzzFactorDialog_guess;
	public static String FuzzFactorDialog_notANumber;
	public static String FuzzFactorDialog_numberOutOfRange;

	public static String NotFound;

}
