# Copyright (c) 2014 Eike Stepper (Loehne, Germany) 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
#
# Contributors:
#    Eike Stepper - initial API and implementation

pluginName = Oomph Project Configuration
providerName = Eclipse Oomph Project


_UI_AllPreferencesManaged_diagnostic = The preferences for {0} are not managed by a preference profile or preference profile reference
_UI_UnmanagedProperty_diagnostic = The property {0} is not managed by a preference profile or preference profile reference
_UI_NonUniquePropertyApplication_diagnostic = The property {0} is non-uniquely applied by {1} along with {3} to project {2}
_UI_OverlappingPreferenceProfile_diagnostic = The profile {0} overlaps with {1}
_UI_OverlappingPreferenceProfileProperty_diagnostic = The profile {0} specifies overlapping properties that are also applied for {1}

_UI_InconsistentPropertyValue_diagnostic = The property {0} has value {1} but the managing property {2} has value {3}
