###############################################################################
# Copyright (c) 2000, 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 Corporation - initial API and implementation
#     Trevor S. Kaufman - <endante@gmail.com> - bug 156152
###############################################################################
###############################################
# Message catalog for org.eclipse.team.ui
###############################################

information=Information messages were reported during this operation

ConfigureProjectAction_configureProject=Configure Project
ConfigureProjectWizard_configureProject=Share Project
ConfigureSynchronizeScheduleComposite_0=Pin {0} Synchronization?
ConfigureSynchronizeScheduleComposite_1=This {0} synchronization is not pinned which means it may be removed the next time a synchronize of the same type is performed. Do you want to pin it to prevent it from being replaced by a future synchronize?
ConfigureProjectWizard_description=Select the repository plug-in that will be used to share the selected project.
ConfigureProjectWizard_title=Share Project
ConfigureProjectWizardMainPage_selectRepository=Select a repository type:


IgnorePreferencePage_description=Use this page to specify a list of resource name patterns to exclude from version control.
IgnorePreferencePage_add=Add &Pattern...
IgnorePreferencePage_enterPatternLong=Enter a name or path pattern (* = any string, ? = any character):
IgnorePreferencePage_enterPatternShort=Add Ignore Pattern
IgnorePreferencePage_ignorePatterns=&Ignore Patterns:
IgnorePreferencePage_patternExistsLong=The entered pattern already exists.
IgnorePreferencePage_patternExistsShort=Pattern Already Exists
IgnorePreferencePage_remove=&Remove


simpleInternal=Internal error
exception=An exception occurred




SyncInfoCompareInput_localLabel=Local File
SyncInfoCompareInput_localLabelExists=Local File {0}
SyncInfoCompareInput_localLabelAuthorExists=Local File {0} ({1})
SyncInfoCompareInput_remoteLabel=Remote File
SyncInfoCompareInput_baseLabel=Common Ancestor
SyncInfoCompareInput_remoteLabelExists=Remote File {0}
SyncInfoCompareInput_remoteLabelAuthorExists=Remote File {0} ({1})
SyncInfoCompareInput_baseLabelExists=Common Ancestor {0}
SyncInfoCompareInput_baseLabelAuthorExists=Common Ancestor {0} ({1})
SyncInfoCompareInput_title={0}
SyncInfoCompareInput_0=File Changed
SyncInfoCompareInput_1=File has changed outside of this compare editor. What do you want to do?
SyncInfoCompareInput_2=Save
SyncInfoCompareInput_3=Opening Compare Editor
SyncInfoCompareInput_tooltip={0}: {1}

TeamAction_internal=Internal error occurred.

TextPreferencePage_add=Add &Extension...
TextPreferencePage_0=Add &Name...
TextPreferencePage_2=The extension cannot contain any wildcards
TextPreferencePage_3=The extension cannot contain the . character.
TextPreferencePage_5=The file name cannot contain *
TextPreferencePage_6=New File Type
TextPreferencePage_7=Enter a file name:
TextPreferencePage_1=Note that some of these entries are built in and can only be changed, but not removed.
TextPreferencePage_change=&Change
TextPreferencePage_enterExtensionLong=Please enter a file extension:
TextPreferencePage_enterExtensionShort=Enter File Extension
TextPreferencePage_extensionExistsLong=The entered extension already exists.
TextPreferencePage_extensionExistsShort=Extension Already Exists
TextPreferencePage_ExtensionNotCompleted=The extension pattern is not completed
TextPreferencePage_remove=&Remove


SynchronizationViewPreference_defaultPerspectiveNone=None
SynchronizationViewPreference_defaultPerspectiveDescription=This setting controls which perspective to open when resources are synchronized.\nTo indicate that a perspective should not be opened select 'None'.
SynchronizationViewPreference_defaultPerspectiveLabel=&Perspective:


ExportProjectSetMainPage_Select_the_projects_to_include_in_the_project_set__2=&Select the projects to include in the Team Project Set:
ExportProjectSetMainPage_Project_Set_File_Name__3=Select the export destination:
ExportProjectSetMainPage_WorkspaceDialogMessage=Export Team Project Set to Workspace
ExportProjectSetMainPage_WorkspaceDialogFilename=&Filename
ExportProjectSetMainPage_Browse_4=B&rowse...
ExportProjectSetMainPage_SelectAll=S&elect All
ExportProjectSetMainPage_SelectButton=Select the &working sets to include in the Team Project Set:
ExportProjectSetMainPage_Browse=Bro&wse ...
ExportProjectSetMainPage_You_have_specified_a_folder_5=You have specified a folder
ExportProjectSetMainPage_A_project_must_be_selected=A project must be selected.
ExportProjectSetMainPage_A_working_set_must_be_selected=A working set must be selected.
ExportProjectSetMainPage_None_of_the_selected_working_sets_have_an_available_project_to_export=None of the selected working sets have an available project to export.
ExportProjectSetMainPage_WorkspaceDialogTitleMessage=Select a folder in the workspace and enter a filename.
ExportProjectSetMainPage_WorkspaceDialogErrorNoFilename=Enter a filename.
ExportProjectSetMainPage_WorkspaceDialogErrorFilenameSegments=Filename cannot contain any segments.
ExportProjectSetMainPage_Project_Set_Files_3=Team Project Set Files (*.psf)
ExportProjectSetMainPage_WorkspaceDialogTitle=Team Project Set Save Location
ExportProjectSetMainPage_default=projectSet.psf
ExportProjectSetMainPage__File_name__1=&File name:
ExportProjectSetMainPage_WorkspaceButton=W&orkspace
ExportProjectSetMainPage_ExportWorkingSets=E&xport working sets
ExportProjectSetMainPage_Initial_description=Define which projects or working sets should be exported into the team project file.
ExportProjectSetMainPage_specifyFile=Please specify the destination file.

ImportProjectSetMainPage_Project_Set_File=F&ile
ImportProjectSetMainPage_Project_Set_Url=&URL
ImportProjectSetMainPage_Browse_3=B&rowse...
ImportProjectSetMainPage_Browse=Br&owse...
ImportProjectSetMainPage_The_given_URL_cannot_be_loaded=File from given URL cannot be loaded
ImportProjectSetMainPage_The_specified_file_does_not_exist_4=The specified file does not exist
ImportProjectSetMainPage_You_have_specified_a_folder_5=You have specified a folder
ImportProjectSetMainPage_workingSetNameEmpty=The working set name must not be empty
ImportProjectSetMainPage_createWorkingSetLabel=&Create a working set containing the imported projects
ImportProjectSetMainPage_workingSetLabel=&Working Set Name:
ImportProjectSetMainPage_AddToWorkingSet=&Add the imported team project set to a working set
ImportProjectSetMainPage_runInBackground=Run the import in the bac&kground
ImportProjectSetMainPage_jobName=Importing project set...
ImportProjectSetMainPage_specifyFile=Please specify a file to import.
ImportProjectSetMainPage_specifyURL=Please specify an URL to import.
ImportProjectSetMainPage_selectWorkingSet=Select a working set.
ImportProjectSetMainPage_projectSetFileInvalid=The specified file is not a valid Team Project Set file.
ImportProjectSetDialog_duplicatedWorkingSet_title=Working Set Exists
ImportProjectSetDialog_duplicatedWorkingSet_message=Working Set ''{0}'' already exists. What would you like to do?
ImportProjectSetDialog_duplicatedWorkingSet_replace=&Replace
ImportProjectSetDialog_duplicatedWorkingSet_merge=&Merge
ImportProjectSetDialog_duplicatedWorkingSet_skip=&Skip
ImportProjectSetDialog_duplicatedWorkingSet_applyToAll=&Apply to all working sets in this import
ImportProjectSetDialog_malformed_url=Malformed URL

ProjectSetContentHandler_Element_provider_must_be_contained_in_element_psf_4=Element provider must be contained in element psf
ProjectSetContentHandler_Element_project_must_be_contained_in_element_provider_7=Element project must be contained in element provider

ProjectSetExportWizard_Project_Set_1=Team Project Set
ProjectSetExportWizard_Export_a_Project_Set_3=Export a Team Project Set
ProjectSetExportWizard_Question_4=Question
ProjectSetExportWizard_Target_directory_does_not_exist__Would_you_like_to_create_it__5=Target directory does not exist. Would you like to create it?
ProjectSetExportWizard_Export_Problems_6=Export Problems
ProjectSetExportWizard_An_error_occurred_creating_the_target_directory_7=An error occurred creating the target directory
ProjectSetExportWizard_Question_8=Question
ProjectSetExportWizard_Target_already_exists__Would_you_like_to_overwrite_it__9=Target already exists. Would you like to overwrite it?
ProjectSetImportWizard_Project_Set_1=Team Project Set
ProjectSetImportWizard_0=Projects for repository type {0} could not be loaded as the type could not be found.
ProjectSetImportWizard_2=An error occurred while parsing the project set file: {0}
ProjectSetImportWizard_1=The following errors occurred while importing projects. Some projects may not be loaded.
ProjectSetImportWizard_3=An error occurred while performing the project set import: {0}
ProjectSelectionPage_0={0} does not directly support multiple project sharing. Select a project and click Share Project to share each project individually
ProjectSelectionPage_1={0} Project Selection Page
ProjectSelectionPage_2=&Share Project...
ProjectSetImportWizard_Import_a_Project_Set_3=Import a Team Project Set
ProjectSetImportWizard_workingSetExistsTitle=Working Set Exists
ProjectSetImportWizard_workingSetExistsMessage=Working set ''{0}'' already exists. Overwrite?

ImportProjectSetMainPage_allFiles=All Files (*.*)
ImportProjectSetAction_0=An error occurred importing this project set.
ImportProjectSetMainPage_Project_Set_Files_2=Team Project Set Files (*.psf)

SyncViewPreferencePage_lastRefreshRunNever=Never

###############################################
# Misc
###############################################

SynchronizeView_13=\ items selected
SynchronizeView_14=Error opening perspective
SynchronizeView_16=Error opening view
SynchronizeView_statusLine={0} [{1}]
SynchronizeView_linkWithEditor=Lin&k with Editor
SynchronizeView_linkWithEditorDescription=Link with active editor
SynchronizeView_linkWithEditorTooltip=Link with Editor and Selection
SynchronizeView_fileMustNotBeNull=File must not be null
SynchronizeView_noActiveWorkbenchPage=No active workbench page

StatisticsPanel_outgoing=Outgoing
StatisticsPanel_conflicting=Conflicting
StatisticsPanel_incoming=Incoming
StartupPreferencePage_0=Startup
StartupPreferencePage_1=Preferences that determine what happens after a Platform startup
StartupPreferencePage_2=How should this synchronization be initialized after a restart
StartupPreferencePage_3=Automatically populate this synchronization
StartupPreferencePage_4=Automatically synchronize this synchronization
StartupPreferencePage_5=Do nothing until population is manually requested
StatisticsPanel_noWorkingSet=<No Working Set>
StatisticsPanel_numbersTooltip=The number of ''{0}'' changes in the entire workspace.
StatisticsPanel_numberTotalSingular={0} change
StatisticsPanel_numberTotalPlural={0} changes

SyncViewerPreferencePage_0=Choose the presentation to be used when displaying Workspace projects
SyncViewerPreferencePage_1=&Flat
SyncViewerPreferencePage_2=T&ree
SyncViewerPreferencePage_3=&Compressed Folders
SyncViewerPreferencePage_6=&Team
SyncViewerPreferencePage_7=General Version Control Preferences:
SyncViewerPreferencePage_13=Open the associated perspective when a synchronize operation completes
SyncViewerPreferencePage_14=Al&ways
SyncViewerPreferencePage_15=Perspectives
SyncViewerPreferencePage_16=Pro&mpt
SyncViewerPreferencePage_19=&Show all synchronization information in a resource\'s text label
SyncViewerPreferencePage_42=&Never
SyncViewerPreferencePage_43=Show the &file author in compare editors
SyncViewerPreferencePage_44=When &editing file in non-shared projects, automatically make files writable if prompting is not possible
SyncViewerPreferencePage_45=Re&use open compare editors when opening comparisons
SyncViewerPreferencePage_46=Run Project Set import in the &background
SyncViewerPreferencePage_47=&Apply patch in Synchronize view

PreferencePageContainerDialog_6=Synchronize Preferences

RefreshSubscriberJob_2a=No Changes
RefreshSubscriberJob_2b=Show ''{0}'' in Synchronize View
RefreshSubscriberJob_3=An error occurred while performing a scheduled synchronization

ReplaceLocalHistory_0=&Replace
ReplaceLocalHistory_1=Replace with Local History
SynchronizeManager_7=Error notifying of added/removal of synchronization
SynchronizeManager_8=Error initializing Synchronization
SynchronizeManager_9=Synchronization with id {0} is not in the registry
SynchronizeManager_10=Error saving synchronization
TeamSubscriberSyncPage_labelWithSyncKind={0} {1}
AbstractSynchronizeParticipant_4=Cannot initialize synchronization. Wrong descriptor type

SynchronizeManager_11=Error creating Synchronization {0}:
AbstractSynchronizeParticipant_5=Exception notifying participant listeners of changes.
AbstractSynchronizationLabelProvider_0={0} [{1}]

ChangesSection_filterHides=The current ''{0}'' mode is empty. {1}
ChangesSection_filterHidesSingular=However there is {0} change in the ''{1}'' mode.
ChangesSection_filterHidesPlural=However there are {0} changes in the ''{1}'' mode.
ChangesSection_filterChange=Change to ''{0}'' mode.
ChangesSection_noChanges=No changes in ''{0}''.
Utils_22=Incoming
Utils_23=Outgoing
Utils_24=Incoming/Outgoing
Utils_25=Conflicting
Utils_26=unknown mode
Utils_19=1 item
Utils_18={0} items
Utils_17=Could not open editor of type {0}
RefreshCompleteDialog_4=Synchronize Complete - {0}
RefreshCompleteDialog_4a=Scheduled Synchronize Complete - {0}
RefreshCompleteDialog_changesSingular={0}: {1} change found ({2}{3}{4}).
RefreshCompleteDialog_changesPlural={0}: {1} changes found ({2}{3}{4}).
RefreshCompleteDialog_newChangesSingular={0}: {1} new change found ({2}{3}{4}).
RefreshCompleteDialog_newChangesPlural={0}: {1} new changes found ({2}{3}{4}).
RefreshCompleteDialog_incomingChanges=incoming {0}
RefreshCompleteDialog_outgoingChanges=outgoing {0}
RefreshCompleteDialog_6={0}: No changes found.
ConfigureRefreshScheduleDialog_0=Configure Synchronize Schedule - {0}
ConfigureRefreshScheduleDialog_1=You can configure how to automatically synchronize ''{0}'' in the background on this dialog.
ConfigureRefreshScheduleDialog_2=The last synchronize started at: {0}
ConfigureRefreshScheduleDialog_3=&Synchronize automatically
ConfigureRefreshScheduleDialog_3a=Synchronize &at:
ConfigureRefreshScheduleDialog_4=&Repeat every:
ConfigureRefreshScheduleDialog_5=hour(s)
ConfigureRefreshScheduleDialog_6=minute(s)
ConfigureRefreshScheduleDialog_7=Number must be a positive number greater than 0
ConfigureMultipleProjectsWizard_0=Unshared Projects
ConfigureMultipleProjectsWizard_1=There are still projects that have not been shared. Finishing the wizard now will leave them in that state.
RefreshSchedule_changesSingular=\ ({0} change found)
RefreshSchedule_changesPlural=\ ({0} changes found)
RefreshSchedule_7=\ (No changes found)
RefreshSchedule_9=hours
RefreshSchedule_10=minutes
RefreshSchedule_11=hour
RefreshSchedule_12=minute
RefreshSchedule_13=Every {0} {1}
RefreshSchedule_14=Scheduled Synchronize
RefreshSchedule_15={0} {1}
RefreshSchedule_16=Run Once
ChangesSection_8=Show Errors
ChangesSection_9=Reset View
ChangesSection_10=Errors have occurred calculating the synchronization state for {0}
ChangesSection_11=Errors Populating View
ChangesSection_12=Multiple errors occurred while attempting to populate the view.

OpenComparedDialog_noChangeTitle=Operation Complete
OpenComparedDialog_noChangesMessage=No Changes Found.
GlobalRefreshAction_4=Synchronize...
GlobalRefreshAction_5=Synchronize {0}
ParticipantCompareDialog_1=&Remember this result by placing it in the Synchronize view
ParticipantCompareDialog_2=Confirm Save
ParticipantCompareDialog_3=Do you want to save changes?
SynchronizeManager_27=Confirm Open Perspective
SynchronizeManager_30=The Synchronize View is associated with the {0} perspective. Do you want to open that perspective now?
SynchronizeManager_31=&Remember my decision
SynchronizeManager_32 =The Synchronize View is associated with the {0} perspective.\n\n{1}\n\nDo you want to open this perspective now?
ParticipantPagePane_0=Error creating Synchronize Page
Participant_synchronizing=Synchronizing
ParticipantPageSaveablePart_0=Changes
Participant_synchronizingDetails=Synchronizing {0}
Participant_synchronizingMoreDetails=Synchronizing {0} ({1})
Participant_synchronizingResources=Synchronizing {0} ({1} items)
ParticipantPageCompareEditorInput_0=&Save
GlobalRefreshResourceSelectionPage_1=Synchronize
GlobalRefreshResourceSelectionPage_2=Select the resources to synchronize or select a scope to automatically select a group of resources.
GlobalRefreshResourceSelectionPage_3=Synchronize
GlobalRefreshResourceSelectionPage_5=Available resources to Synchronize:
GlobalRefreshResourceSelectionPage_6=Scope
GlobalRefreshResourceSelectionPage_7=W&orkspace
GlobalRefreshResourceSelectionPage_8=&Selected Resources
GlobalRefreshResourceSelectionPage_10=&Working Set:
GlobalRefreshResourceSelectionPage_11=&Choose...
GlobalRefreshResourceSelectionPage_12=Select &All
GlobalRefreshResourceSelectionPage_13=&Deselect All
GlobalRefreshParticipantSelectionPage_0=Synchronize
GlobalRefreshParticipantSelectionPage_1=Select the type of synchronization
GlobalRefreshParticipantSelectionPage_2=Synchronize
GlobalRefreshParticipantSelectionPage_3=Available synchronization types:

GlobalRefreshSubscriberPage_0=Synchronize
GlobalRefreshSubscriberPage_1=Synchronize {0}
GlobalRefreshSubscriberPage_2=Select the resources or working sets to be synchronized.

SynchronizeManager_18=Could not cast {0} as ISynchronizeView
GlobalSynchronizeWizard_11=Synchronize
SynchronizeManager_19=Could not create synchronization: {0}
SynchronizeModelProvider_0=Synchronize View: Processing label changes
SynchronizeModelUpdateHandler_0=Errors occurred while updating problem markers
SynchronizationLabelProvider_0={0} (Initializing)
SynchronizationCompareAdapter_0=Workspace
WorkspaceScope_0=Workspace
WorkingSetScope_0=Workspace
WorkingSetsDialog_Title=Select a Working Set
WorkingSetsDialog_Message=Select an existing working set or enter a new name to create a Resource Working Set
WorkingSetsDialog_Label=Working Set:
SubscriberParticipant_namePattern={0} ({1})
SubscriberParticipantWizard_0=There are no {0} resources to synchronize
SubscriberParticipantWizard_1=Before you can synchronize resources you will have to import resources into your workspace using the ''{0}'' wizard.

RemoveFromView_warningTitle=Confirm Remove
RemoveFromView_warningMessage=The selected resources will be removed from the view. A resource will reappear if it is modified or if its synchronization state changes.
RemoveFromView_warningDontShow=Don't show me this again
ResourceMappingSelectionArea_0=&Select All
ResourceMappingSelectionArea_1=&Deselect All
RevisionAnnotationController_0=Could not find an appropriate editor for showing the revision ruler
ResourceMarkAsMergedHandler_0=Marking 1 resource as merged.
ResourceMarkAsMergedHandler_1=Marking {0} resources as merged.
ResourceModelLabelProvider_0={0} - {1}
ResourceModelPreferencePage_0=Workspace Model Preferences
ResourceMappingOperation_0=Selection Adjustment Required
ResourceMergeHandler_0=Overwriting 1 resource.
ResourceMergeHandler_1=Overwriting {0} resources.
ResourceMergeHandler_2=Merging 1 resource.
ResourceMergeHandler_3=Merging {0} resources.
ResourceMergeHandler_4=Overwrite Local Changes?
ResourceMergeHandler_5=Do you want to overwrite local changes?
ResourceMergeHandler_6=No Changes
ResourceMergeHandler_7=There are no changes to merge.
ResourceMappingMergeOperation_0=No Incoming Changes
ResourceMappingMergeOperation_1=There are no incoming changes for the selected elements
ResourceMappingMergeOperation_2=&Done
ResourceMappingMergeOperation_3=Multiple potential side effects of this operation have been detected.
ResourceMappingMergeOperation_4=Preview the merge before it is performed

CompressedFoldersModelProvider_0=&Compressed Folders
HierarchicalModelProvider_0=&Tree
UIProjectSetSerializationContext_0=Project {0} exists in the workspace. Overwrite {0}?
UIProjectSetSerializationContext_1=Overwrite projects?
UIProjectSetSerializationContext_2=Project {0} exists in the file system. Overwrite {1}?
RemoveSynchronizeParticipantAction_0=Remove Pinned Synchronization?
RemoveSynchronizeParticipantAction_1=The current synchronization is pinned. Are you sure you want to remove it?
RemoveSynchronizeParticipantAction_2={0} contains unsaved changes. Would you like to save them?
RemoveSynchronizeParticipantAction_3=Save Changes
RemoveSynchronizeParticipantAction_4=There are unsaved changes.
RemoveSynchronizeParticipantAction_5=Save Changes

ConfigureProjectWizard_showAll=&Show All Wizards
ImportProjectSetMainPage_description=Import the team project file.
ExportProjectSetMainPage_description=Export selected resources into the team project file.
ExportProjectSetMainPage_warning=Some projects from the selected working sets cannot be exported.
ExportProjectSetMainPage_DeselectAll=&Deselect All
ExportProjectSetMainPage_FileButton=F&ile
ExportProjectSetMainPage_EditButton=Edit...

DefaultUIFileModificationValidator_0=Read-only Files Encountered
DefaultUIFileModificationValidator_1=Some of the files being modified by the current operation are read-only. Do you wish to make them writable?
DefaultUIFileModificationValidator_2=The following files are read-only:
DefaultUIFileModificationValidator_3=Read-only File Encountered
DefaultUIFileModificationValidator_4=File ''{0}'' is read-only. Do you wish to make it writable?


CopyToClipboardAction_1=&Copy
CopyToClipboardAction_2= Copy
CopyToClipboardAction_3=Problem Copying to Clipboard
CopyToClipboardAction_4=There was a problem when accessing the system clipboard. Retry?

PasteAction_1=&Paste Patch
PasteAction_2=Paste a Patch
PasteAction_3=Cannot paste the clipboard contents.
PasteAction_4=Clipboard does not contain a valid patch.

FlatModelProvider_6=Sort &Resources By
FlatModelProvider_7=&Name
FlatModelProvider_8=&Path
FlatModelProvider_9=&Parent Name
FlatModelProvider_0=Flat

ChangeLogModelProvider_0a=Sort Incoming &Change Sets By
ChangeLogModelProvider_1a=&Comment
ChangeLogModelProvider_2a=&Date
ChangeLogModelProvider_3a=&User
ChangeLogModelProvider_0=&New Change Set...
ChangeLogModelProvider_12=Reassign Changes &To
ChangeLogModelProvider_13=Assign Changes &To
ChangeLogModelProvider_5=Commit &Sets
ChangeLogModelProvider_6=Ed&it Change Set...
ChangeLogModelProvider_7=Make Changes Unassigned
ChangeLogModelProvider_9=Mark Change Set as De&fault
ChangeLogModelProvider_10=Don't Use a De&fault Change Set
ChangeLogModelManager_0=Show Change Sets
ChangeSetActionGroup_0=Confirm Remove
ChangeSetActionGroup_1=Are you sure you want to remove {0}?
ChangeSetActionGroup_2=No Set
CommitSetDiffNode_0={0} (default)
FileTypeTable_0=Binary
FileTypeTable_1=ASCII Text
FileTypeTable_2=Yes
FileTypeTable_3=No
FileTypeTable_4=Name/Extension
FileTypeTable_5=Content
FileTypeTable_6=Remember decision?
OpenWithActionGroup_0=Open Wit&h

nameAndRevision={0} {1}
internal=An internal error has occurred, consult the error log for details.
TeamCompareEditorInput_repository=Repository: {0} {1}
TeamCompareEditorInput_titleAncestor=Compare {0} {1}-{2} and {3}
TeamCompareEditorInput_titleNoAncestor=Compare {0} {1} and {2}
TeamCompareEditorInput_titleNoAncestorDifferent=Compare {0} {1} and {2} {3}

TeamCompareEditorInput_comparing=Comparing...
TeamCompareEditorInput_different=Cannot compare resources of different kind.
TeamCompareEditorInput_new=File is new
TeamCompareEditorInput_deleted=File has been deleted
TeamContentProviderDescriptor_1=Attribute {0} of extension point {1} missing for extension with identifier {2}
TeamContentProviderDescriptor_2=Wrong number of {0} elements for extension with identifier {1}.

TeamCompareEditorInput_fileProgress=Comparing file: {0}

GenericHistoryView_ShowCommentViewer=Show Comment Viewer
GenericHistoryView_PinCurrentHistory=Pin current history view
GenericHistoryTableProvider_Revision=Revision
GenericHistoryTableProvider_Comment=Comment
GenericHistoryView_GenericFileHistoryFetcher=Fetching File History
GenericHistoryView_Refresh=Refresh
GenericHistoryView_0=Pin this History View
GenericHistoryView_1=Show {0}
GenericHistoryView_2=Show Previous Histories
GenericHistoryView_GetPredecessor=Get Predecessor
GenericHistoryView_LinkWithEditor=Link with Editor
GenericHistoryView_RefreshTooltip=Refresh
GenericHistoryView_LinkWithTooltip=Link with Editor and Selection
GenericHistoryTableProvider_Author=Author
GenericHistoryView_ShowTagViewer=Show Tag Viewer
GenericHistoryView_GetDirectDescendents=Get Direct Descendents
GenericHistoryView_ErrorFetchingEntries=Error fetching entries for {0}
GenericHistoryTableProvider_RevisionTime=Revision Time
GenericHistoryView_WrapComments=Wrap Comments
OpenRevisionAction_DeletedRevisionTitle=Deleted Revision
OpenRevisionAction_DeletedRevisionMessage=This revision represents a deletion and cannot be opened.
MergeIncomingChangesAction_0=Merge Failures
AdditionalMappingsDialog_0=Additional elements must be included in the current operation due to the relationship between the selected elements and the files in which they are stored.
AdditionalMappingsDialog_1=These are the elements you &selected:
AdditionalMappingsDialog_2=These are the elements that will be included in the &operation:
LocalHistoryTableProvider_localRevision=<local revision>
LocalHistoryPage_openRevision=Open Revision
LocalHistoryPage_CompareAction=&Compare
LocalHistoryPage_OpenAction=&Open
LocalHistoryPage_OpenWithMenu=Open &With
LocalHistoryPage_OpenWithMenu_Other=Other...
LocalHistoryPage_OpenWithMenu_OtherDialogDescription=Choose the editor for opening {0}:
LocalHistoryPage_OpenWithMenu_DefaultEditorDescription=&Default Editor
LocalHistoryPage_OpenEditorError=A problem occurred while opening the editor
LocalHistoryPage_0=Local History ({0})
LocalHistoryPage_1=Workspace File
LocalHistoryPage_GetContents=Get Contents
LocalHistoryPage_fetchingLocalHistory=Fetching Local History
LocalHistoryPage_FetchLocalHistoryMessage=Fetching local history revisions
LocalHistoryPage_GroupRevisionsByDateAction=Group Revisions by Date
LocalHistoryPage_GroupRevisionsByDateTip=Group Revisions by Date
LocalHistoryPage_NoRevisionsFound=No revisions found
LocalHistoryPage_OverwriteMessage=Do you wish to overwrite the current revision with the selected revision?
LocalHistoryPage_CollapseAllAction=Collapse All
LocalHistoryPage_CollapseAllTip=Collapse All
LocalHistoryPage_CompareModeAction=Compare Mode
LocalHistoryPage_CompareModeTip=Compare Mode
LocalHistoryPage_OverwriteTitle=Overwrite Current Revision?

CompareFileRevisionEditorInput_compareResourceAndVersions=Compare {0} {1} and {2}
CompareFileRevisionEditorInput_repository={0} {1} ({2})
CompareFileRevisionEditorInput_repositoryWithoutAuthor={0} {1}
CompareFileRevisionEditorInput_workspace=Local: {0}
CompareFileRevisionEditorInput_workspace_authorExists=Local: {0} ({1})
CompareFileRevisionEditorInput_0=Local Revision
CompareFileRevisionEditorInput_1=Current Revision
CompareFileRevisionEditorInput_2=Current
CompareFileRevisionEditorInput_localRevision=Local history: {0} {1}
ShowLocalHistory_1=Problem showing Local History
ShowLocalHistory_0=No local history available for selected resource.
ShowLocalHistory_2=Show Local History
DiffTreeChangesSection_0=However {0} has changes in {1} mode.
DiffTreeChangesSection_1=There are no more {0} changes for {1}. {2}
DiffTreeChangesSection_10={0} All models contained in this synchronization are all disabled.
DiffTreeChangesSection_11={0} The models that contain the changes may be disabled.
DiffTreeChangesSection_12=Enable All Participating Models
DiffTreeChangesSection_13=Show All Models
DiffTreeChangesSection_14=Perform the chosen operation automatically on subsequent restarts
DiffTreeChangesSection_2=Change to {0}.
DiffTreeChangesSection_3=This view is not populated on startup. You can choose to populate {0} without contacting the server or to synchronize with the server.
DiffTreeChangesSection_4=Populate
DiffTreeChangesSection_5=Synchronize
DiffTreeChangesSection_6=Synchronizing {0}
DiffTreeChangesSection_7=Updating {0}
DiffTreeChangesSection_8=There is 1 hidden change.
DiffTreeChangesSection_9=There are {0} hidden changes.
ModelParticipantPageDialog_0=&Replace
ModelParticipantAction_0=Save Changes
ModelParticipantAction_1={0} has unsaved changes. Do you want to save them?
ModelCompareEditorInput_0=Mark &as Merged
ModelCompareEditorInput_1=&Merge
ModelCompareEditorInput_2=&Overwrite
ModelSelectionDropDownAction_0=All Models
ModelSelectionDropDownAction_1=Show {0}
ModelSelectionDropDownAction_2=Flat Presentation
ModelEnablementPreferencePage_0=Models
ModelEnablementPreferencePage_1=&Select the model types that should be available when synchronizing
ModelSynchronizeParticipant_0={0} failed to initialize due to missing data during restore.
ModelSynchronizeParticipant_1=Participant {0} is not capable of restoring its context
ModelElementSelectionPage_0=Synchronization Wizard
ModelElementSelectionPage_AllModelsDisabledTitle=Models Disabled
ModelElementSelectionPage_AllModelsDisabledMessage=All of the model types involved in this synchronization are disabled which means there are no elements to display. Would you like to enable them?
ModelMergeOperation_0=Confirm Merge
ModelMergeOperation_1=The following potential side effects have been identified. Would you like to continue with the merge?
ModelMergeOperation_2=Merges should only be attempted for operations that have a merge context
ModelMergeOperation_3=The &following items were selected
ShowModelProviderAction_0={0} for {1}
MergeAllActionHandler_0=Merging all changes in {0}
MergeAllActionHandler_1=Are you sure you want to merge {0} resources?
MergeAllActionHandler_2=Are you sure you want to merge {0} resource?
MergeAllActionHandler_3=Confirm Merge

HistoryPage_Today=Today
HistoryPage_Yesterday=Yesterday
HistoryPage_ThisMonth=This Month
HistoryPage_Previous=Older than This Month

OpenRevisionAction_DeletedRevTitle=Deleted Revision
OpenRevisionAction_ErrorTitle=Open Revision
OpenRevisionAction_ErrorMessage=An error occurred while trying to open the revision.
OpenRevisionAction_DeletedRevMessage=This revision represents a deletion and cannot be opened.

CompareRevisionAction_DeleteCompareMessage=One of the revisions represents a deletion and cannot be compared.
CompareRevisionAction_CompareWithCurrent=&Compare with Current Revision
CompareRevisionAction_CompareWithOther=&Compare with Each Other
CompareRevisionAction_Revision=Compare Current with {0}
CompareRevisionAction_Local=Compare Current with Local
CompareInputChangeNotifier_0=Updating Compare Editor
CompareInputChangeNotifier_1=Error updating compare editor
WorkingSetsDialog_TitleBar=Working Sets
WorkingSetsDialog_ErrorMessage=Please select or type in a working set
CompareLocalHistory_0=Compare with Local History
EditionHistoryPage_0=No differing versions of ''{0}'' were found in the local history
EditionHistoryPage_1=No differing versions of the element were found in the local history
EditionHistoryPage_2=Local History for ''{0}''
HistoryPageCompareEditorInput_0=&Replace
RegistryReader_0=Cannot create extension {0} {1}

TeamAction_errorTitle=Errors occurred
TeamAction_handlerNotEnabledTitle=Warning
TeamAction_handlerNotEnabledMessage=The action doesn't apply to the current selection.
SaveableCompareEditorInput_0=Show In

NotFound={0} not found
SaveablesCompareEditorInput_twoWayTitle=Compare (''{0}'' - ''{1}'')
SaveablesCompareEditorInput_twoWayTooltip=Two-way compare of ''{0}'' with ''{1}''
SaveablesCompareEditorInput_threeWayTitle=Compare (''{0}'' - ''{1}'' - ''{2}'')
SaveablesCompareEditorInput_threeWayTooltip=Three-way compare of ''{1}'' and ''{2}'' relative to common ancestor ''{0}''

SelectAncestorDialog_title=Select Common Ancestor
SelectAncestorDialog_message=Which resource would you like to use as the common ancestor in the three-way compare?
SelectAncestorDialog_option=''{0}''
#
# PatchParsedPage
#
PatchParsedPage_title=Patch Parsed
PatchParsedPage_description=The patch has been processed.
PatchParsedPage_clickFinishToGoToSynchronizeView=Click finish button to go to Synchronize view.
#
# PatchInaccessibleProjectsPage
#
PatchInaccessibleProjectsPage_title=Inaccessible Projects
PatchInaccessibleProjectsPage_message=Select projects to open before applying the patch. Inaccessible projects will not appear in the Synchronize view.
PatchInaccessibleProjectsPage_projectDoesNotExistInWorkspace={0} (Project does not exist in workspace)
PatchInaccessibleProjectsPage_selectExisting=Select Existing
PatchInaccessibleProjectsPage_deselectAll=Deselect All
PatchInaccessibleProjectsPage_openingProjects=Opening projects
#
# IgnoreLeadingPathSegmentsDialog
#
IgnoreLeadingPathSegmentsDialog_title=Ignore Leading Path Segments
IgnoreLeadingPathSegmentsDialog_message=Enter path segments to ignore (0..{0}):
IgnoreLeadingPathSegmentsDialog_notANumber=Not a number
IgnoreLeadingPathSegmentsDialog_numberOutOfRange=Number out of range
#
# FuzzFactorDialog
#
FuzzFactorDialog_title=Fuzz Factor
FuzzFactorDialog_message=Enter Fuzz Factor:
FuzzFactorDialog_guess=&Guess
FuzzFactorDialog_notANumber=Not a number
FuzzFactorDialog_numberOutOfRange=Number out of range
