################################################################################
# Copyright (c) 2012, 2015 Obeo 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:
#     Obeo - initial API and implementation
#     Philip Langer - log entries for model merge
#     Stefan Dirix - Bug 456699
################################################################################
## ! note ! double the apostrophes if you need one in the printed String
EMFSynchronizationModel.resolving = Creating EMF Synchronization Model
EMFSynchronizationModel.minimizing = Minimizing synchronization model
EMFSynchronizationModel.creatingScope = Creating comparison scope
ModelResolver.resolvingLocalModel = Resolving local models

ModelResolverRegistry.invalidResolver = Model resolver ''{0}'' could not be instantiated.
ModelResolverRegistry.invalidRanking = Ranking of resolver ''{0}'' was not a valid integer : ''{1}''.

ModelDependencyProviderRegistry.invalidModelDependency = Dependency provider ''{0}'' could not be instantiated.

ModelResolver.coherenceWarning = Some models were accessible from multiple compared files and have been removed from the scope. This could break their references to the compared models as a result of merge operations.

resource.not.serializable = Resource is not serializable.

save.model.tooltip = Save Comparison Model
next.diff.tooltip = Next Difference
previous.diff.tooltip = Previous Difference
accept.change.tooltip = Accept Change
accept.all.changes.tooltip = Accept All Non-Conflicting Changes
reject.change.tooltip = Reject Change
reject.all.changes.tooltip = Reject All Non-Conflicting Changes
merged.to.left.tooltip = Copy Current Change From Right To Left
merged.to.right.tooltip = Copy Current Change From Left To Right
merged.all.to.left.tooltip = Copy All Non-Conflicting Changes From Right To Left
merged.all.to.right.tooltip = Copy All Non-Conflicting Changes From Left To Right
dropdown.left.to.right.text = Show consequences of merging from left to right
dropdown.right.to.left.text = Show consequences of merging from right to left
dropdown.accept.text = Show consequences of accepting change
dropdown.reject.text = Show consequences of rejecting change

undo.menu.item.text = Merge
redo.menu.item.text = Merge

CompareSelfWithAncestor = Cannot run a comparison between an object and one of its ancestors.

wait.viewer.desc = Please wait for the comparison computation to finish...
wait.viewer.title = Please wait...
no.differences.viewer.desc = No differences detected for this comparison.
no.differences.viewer.title = No differences detected.
no.visible.item.viewer.desc = No visible item with this set of filters/group.\nPlease enable/disable filters, or change group to see items.
no.visible.item.viewer.title = No visible item.
no.selected.item.viewer.desc = No selected item in the top panel.
no.selected.item.viewer.title = No selected item.

ModelResolutionPreferencesPage.disableResolvers = Disable model resolution
ModelResolutionPreferencesPage.disableThreading = Disable multi-threading during model resolution
ModelResolutionPreferencesPage.resolutionScope = Resolution scope:
ModelResolutionPreferencesPage.resolutionScope.description = The model resolvers will try and find cross referenced resources starting from the compared one in order to determine the logical model that needs to be compared along with it. This can be used to widen or reduce the scope in which EMF Compare will seek these linked resources.
ModelResolutionPreferencesPage.resolutionScope.workspace.label = Workspace
ModelResolutionPreferencesPage.resolutionScope.project.label = Project
ModelResolutionPreferencesPage.resolutionScope.container.label = Container
ModelResolutionPreferencesPage.resolutionScope.outgoing.label = Outgoing
ModelResolutionPreferencesPage.resolutionScope.workspace.description = Search for cross-references to (and from) the compared resource within all models from the workspace.
ModelResolutionPreferencesPage.resolutionScope.project.description = Search for cross-references to (and from) the compared resource within all models from its containing project.
ModelResolutionPreferencesPage.resolutionScope.container.description = Search for cross-references to (and from) the compared resource within all models from the same container.
ModelResolutionPreferencesPage.resolutionScope.outgoing.description = Only search for cross-references from the compared resource to its children (and recursively).
ModelResolutionPreferencesPage.resolutionScope.invalid = Invalid resolution scope value.

_UI_NoProblems_message = There are no problems with the computation of the comparison
_UI_DefaultProblem_message = Problems encountered. Click on each problem for further information. The computed comparison and the merge you will do on it may be inaccurate. We suggest you to fix the errors before doing any merge or to switch to text comparison (use 'Text Compare' below)
_UI_Cancel_message = Operation has been canceled. The computed comparison and the merge you will do on it may be inaccurate. We suggest you to be very careful or to switch to text comparison (use 'Text Compare' below)

EMFCompareStructureMergeViewer.title = Model differences
EMFCompareStructureMergeViewer.titleDesc = {0} of {1} differences are not merged \u2014 {2} differences filtered from view
EMFCompareStructureMergeViewer.tabItem.0.title = Differences
EMFCompareStructureMergeViewer.computingModelDifferences = Computing Model Differences
EMFCompareStructureMergeViewer.operationCanceled = Comparison computation has been canceled

ComparisonScopeBuilder.left = left
ComparisonScopeBuilder.right = right
ComparisonScopeBuilder.ancestor = ancestor
ComparisonScopeBuilder.resourceSetDiagnostic = Problems occurred while loading resources from the {0} side
ComparisonScopeBuilder.comparisonScopeDiagnostic = Problems occurred while creating the comparison scope

SynchronizationModel.diagnosticMesg = Problems occurred while computing the synchronization model

TextFallbackCompareViewer.title = Text Compare

EMFResourceMappingMerger.mergeFailedGeneric = Changes could not be merged automatically.
EMFResourceMappingMerger.mergeFailedInvalidMapping = Changes contain invalid resource mapping.
EMFResourceMappingMerger.mergeFailedConflicts = Conflicts found within this model.
EMFResourceMappingMerger.mergeIncomplete = Merge operation ended successfully, but the files could not be marked as merged automatically.
EMFResourceMappingMerger.startingModelMerge = Starting model merge operation with {0} model resource(s).
EMFResourceMappingMerger.successfulModelMerge = Model merge operation ended successfully with {0} model resource(s).

EMFCompareStructureMergeViewerContentProvider.deferredWorkbenchAdapter.label = the current comparison

LogicalModelViewHandlerRegistry.invalidHandler = Handler named ''{0}'' for Logical Model View could not be instantiated.
LogicalModelView.linkWithEditorAndSelection = Synchronize with Editor and Selection
LogicalModelView.computingLogicalModel = Computing logical model
LogicalModelView.listPresentation.title = List
LogicalModelView.treePresentation.title = Tree
LogicalModelView.errorDialog.title = EMF Compare - Logical Model View
LogicalModelView.errorDialog.message = Error while computing logical models. See error log for more details.
