# Copyright (c) 2015, 2018 Obeo.
# 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
# https://www.eclipse.org/legal/epl-2.0
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors: Obeo - initial API and implementation

pluginName=EEF Properties UI
providerName=Eclipse Modeling Project
eefTabDescriptorProviderExtensionPoint.name = EEF Tab Descriptor Provider
eefTabDescriptorFilterExtensionPoint.name = EEF Tab Descriptor Filter

DescriptorRegistryEventListener_missingAttribute=The attribute {1} is missing from the configuration element {0}. 
DescriptorRegistryEventListener_extensionAlreadyContributed=The extension {0} has already been contributed.
DescriptorRegistryEventListener_cannotInstantiateExtension=The extension {0} cannot be instantiated.

EEFTabbedPropertyRegistry_MissingSectionDescriptorId=The section descriptor does not have an identifier, it cannot be used.

EEFTopNavigationElement_noPropertiesAvailable=No properties available
EEFTabbedPropertyList_propertiesNotAvailable=Properties not available
