################################################################################
# Copyright (c) 2013, 2016 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 - bug 493921
#	  Simon Delisle - bug 495753
################################################################################
## note : apostrophes need to be doubled in these messages or they'll be ignored
TableMergeViewer.directResourceContentsLabel = resource contents
TableMergeViewer.featureMapEntryKeyLabel = feature map entry key : EStructuralFeature

duplicate.extension = The extension {0} is registered twice

SynchronizerDialog.hyperlink.message = <a>See EMF Compare preferences</a>
SynchronizerDialog.notAskAgain.label = Do not ask me again.
FilterActionMenu.tooltip = Filters
FilterAction.synchronization.dialog.title = Filters preference
FilterAction.synchronization.dialog.message = Would you like to remember the selected filters for next comparison?
GroupAction.synchronization.dialog.title = Group preference
GroupAction.synchronization.dialog.message = Would you like to remember the selected group for next comparison?

GroupActionMenu.tooltip = Groups

KindGroupProvider.addition.label = Additions
KindGroupProvider.deletion.label = Deletions
KindGroupProvider.change.label = Changes
KindGroupProvider.move.label = Moves

ThreeWayComparisonGroupProvider.conflicts.label = Conflicts
ThreeWayComparisonGroupProvider.left.label = Left Side
ThreeWayComparisonGroupProvider.right.label = Right Side

BasicDifferenceGroup.name = Group

InteractiveFilterUIContent.sync.behavior.group.label = Remember selected filters
InteractiveFilterUIContent.sync.behavior.label = Remember user-selected filters in future comparisons:


# Messages for preference pages.

ConfigurationUIRegistryEventListener.incorrectIdParameter.message = Id does not match any item to configure.
ConfigurationUIRegistryEventListener.incorrectConfiguratorParameter.message = The element is not an instance of IConfigurationUIFactory

# Messages for preference pages.

InteractiveUIContent.defaultConfiguration.label = The selected engine has no configuration option
InteractiveUIContent.configurationComposite.label = Configuration
InteractiveUIContent.descriptionComposite.label = Description
InteractiveUIContent.incorrectSelection.title = Incorrect selection
InteractiveUIContent.incorrectSelection.message = At least one item has to be selected.

GroupsInteractiveContent.SYNC_BEHAVIOR_GROUP_LABEL = Remember selected groups
GroupsInteractiveContent.SYNC_BEHAVIOR_LABEL = Remember user-selected group in future comparisons:
GroupsInteractiveContent.ALWAYS_COMBO_LABEL = Always
GroupsInteractiveContent.NEVER_COMBO_LABEL = Never
GroupsInteractiveContent.ASK_EACH_TIME_LABEL = Ask each time

PostProcessorPreferencePage.preferencePage.description = Select active post processors:

GroupsPreferencePage.viewerDescription.label = Rank each group by priority (Highest ranked enabled element will be use as default):
GroupsPreferencePage.twoWayComparisonTab.label = 2 way comparison
GroupsPreferencePage.threeWayComparisonTab.label = 3 way comparison

FiltersPreferencePage.INTRO_SELECT_TEXT = Select the filters that should be enabled by default\:
FiltersPreferencePage.activateIntro.text = Deactivating filters entirely prevents them from being applied and hides them from the list of available filters in the drop-down filter menu in the compare editor. If a filter is deactivated below, but enabled in the Enabled/Disabled tab, the filter will be deactivated and hidden.
FiltersPreferencePage.INTRO_DEACTIVATE_TEXT = Select the filters that should be active (the others will be completely ignored)\:
FiltersPreferencePage.activate.tab.label = Activate/Deactivate
FiltersPreferencePage.select.tab.label = Enable/Disable
FiltersPreferencePage.selectIntro.text = You can configure whether filters should be enabled or disabled by default. You can still enable or disable them using the drop-down filter menu in the compare editor. Note that 'disabled' filters may still have an impact on the differences shown in the compare editor.

EnginesPreferencePage.differenceEngine.tab.label = Difference
EnginesPreferencePage.equivalenceEngine.tab.label = Equivalence
EnginesPreferencePage.requirementEngine.tab.label = Requirement
EnginesPreferencePage.conflictDetector.tab.label = Conflict
EnginesPreferencePage.matchEngine.tab.label = Match
EnginesPreferencePage.matchEngineIntro.text = Select active matching engines:
EnginesPreferencePage.diffEngineIntro.text = Select the difference engine to use:
EnginesPreferencePage.equiEngineIntro.text = Select the equivalence engine to use:
EnginesPreferencePage.reqEngineIntro.text = Select the requirement engine to use:
EnginesPreferencePage.conflictDetectorIntro.text = Select the conflict detector to use:

AdapterFactoryPreferencePage.itemProviderGroup.text = Item Providers
AdapterFactoryPreferencePage.descriptionGroup.text = Description
AdapterFactoryPreferencePage.preferencePage.description = Select active item providers used in the comparison editor:

LoggingPreferencePage.preferencePage.description = Logging in EMFCompare
LoggingPreferencePage.log.level = Log level:
LoggingPreferencePage.log.file = Log file:
LoggingPreferencePage.log.file.size = Maximum file size (MB):
LoggingPreferencePage.log.backup.count = Max number of backup log files:
LoggingPreferencePage.filebutton.label = Select...
LoggingPreferencePage.error.message = Empty or invalid information

EMFComparePreferencePage.intro.text = Expand the tree to edit preferences for a specific feature.

DefaultMatchEngineConfiguratorUI.useIdentifier.label =  Select if identifiers should be used:
DefaultMatchEngineConfiguratorUI.whenAvailable.label = When available: The engine will use some heuristics when identifiers are missing
DefaultMatchEngineConfiguratorUI.only.label = Only: Objects without identifiers will never be matched.
DefaultMatchEngineConfiguratorUI.never.label = Never: Objects will be matched with some heuristics regardless of having identifiers.

ContentCustomizationRegistry.invalidRanking = Ranking of resolver ''{0}'' is not a valid integer : ''{1}''.
ContentCustomizationRegistry.invalidContextTester = IContextTester named ''{0}'' could not be instantiated.
ContentCustomizationRegistry.invalidProvider = Provider named ''{0}'' could not be instantiated.

