##
#  Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
#
#  This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License 2.0
#  which accompanies this distribution, and is available at
#  https://www.eclipse.org/legal/epl-2.0
#
#  SPDX-License-Identifier: EPL-2.0
# 
#  Contributors:
#      Thales Corporate Services S.A.S - initial API and implementation
##

pluginName= EGF Core UI
providerName= Eclipse Modeling Project

egf.preferences.keyword.general= EGF
egf.preferences.general= EGF
egf.preferences.editors= Editors
egf.preferences.model= Model

egf.preferences.production= Production
egf.editor.contributor= EGF Editor contributor

egf.editor.menu.contributor= EGF Editor menu contributor
egf.editor.listener.contributor= EGF Editor listener contributor
editor.property.contributor=EGF Editor property editor's contributor

EGFFcoreActionSet_label= EGF Fcore
EGFFcoreActionSet_description= EGF Fcore Action Set

openFcore.label= Open EGF Fcore&...
openFcore.description= Opens an EGF Fcore

ActionDefinition_openFcore_name = Open EGF Fcore
ActionDefinition_openFcore_description= Open an EGF Fcore in the Workbench

copyQualifiedName.label= Cop&y Qualified Name

copyEObjectQualifiedName.name=EObject
copyEObjectQualifiedName.Tooltip=Copy an EObject fully qualified name to the system clipboard

copyEObjectMetaClassQualifiedName.name=EObject Resource Meta-Class
copyEObjectMetaClassQualifiedName.Tooltip=Copy an EObject Resource Meta-Class fully qualified name to the system clipboard

copyEObjectStaticMetaClassQualifiedName.name=EObject Static Meta-Class
copyEObjectStaticMetaClassQualifiedName.Tooltip=Copy an EObject Static Meta-Class fully qualified name to the system clipboard
