##
#  Copyright (c) 2009 Thales Corporate Services S.A.S.
#  All rights reserved. This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License v1.0
#  which accompanies this distribution, and is available at
#  http://www.eclipse.org/legal/epl-v10.html
# 
#  Contributors:
#      Thales Corporate Services S.A.S - initial API and implementation
##

pluginName= EGF Core UI (Incubation)
providerName= Eclipse Modeling Project

egf.preferences.keyword.general= EGF
egf.preferences.general= EGF

egf.preferences.model= Model

egf.preferences.production= Production
egf.editor.contributor= EGF Editor contributor
