# 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 IDE
providerName=Eclipse Modeling Project

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.
