###############################################################################
# Copyright (c) 2020 Eclipse contributors and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
###############################################################################
EarlyStart_valueMustBeOneOf=The value ''{0}'' of the property {1} must be one of {2}
EarlyStart_valueMustBeNonNegative="The value ''{0}'' of the property {1} must be a non-negative long value
EarlyStart_jobName=Deferred Early Start

FindAndReplaceTarget_selectedElements=Selec&ted elements
FindAndReplaceTarget_replaceAllCommand=Replace All
FindAndReplaceTarget_labelsAndAttributes=Labels and attributes
FindAndReplaceTarget_labels=Labels
FindAndReplaceTarget_attributes=Attributes
FindAndReplaceTarget_modifiableAttributes=Modifiable attributes

OomphEditingDomainActionBarContributor_findOrReplace=Find/Replace...
OomphEditingDomainActionBarContributor_collapseAll_action=Collapse All
OomphEditingDomainActionBarContributor_collapseAll_tooltip=Collapse all expanded elements

OomphPropertySheetPage_copyValue=Copy &Value

RemoteResourcesPreferencePage_useOfflineCache_label=Use offline cache
RemoteResourcesPreferencePage_useOfflineCache_tooltip=Use locally cached versions of remote resources whenever possible
RemoteResourcesPreferencePage_showOfflineToolbar_label=Show offline tool bar
RemoteResourcesPreferencePage_showOfflineToolbar_tooltip=Show the offline toolbar contribution in the main toolbar
RemoteResourcesPreferencePage_refreshRemoteCache=Refresh Remote Cache...