##
#  Copyright (c) 2009-2010 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 Pattern UI
providerName = Eclipse Modeling Project

EGFPatternBuilder = EGF Pattern Builder
patternEditorLabel = Pattern Editor
patternTemplateEditorLabel = Pattern Templates Editor
egf.preferences.trace= Pattern Trace