# /**
#  * Copyright (c) 2002-2011 IBM Corporation and others.
#  * 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
#  * http://www.eclipse.org/legal/epl-v20.html
#  * 
#  * Contributors: 
#  *   IBM - Initial API and implementation
#  */

# NLS_MESSAGEFORMAT_VAR

# "featureName" property - name of the feature
featureName=EMF Edit UI for GWT

# "providerName" property - name of the company that provides the feature
providerName=Eclipse Modeling Project

# "description" property - description of the feature
description=Support for integrating EMF Edit with GWT's UI framework.

EMFUpdateSiteName=Eclipse Modeling Framework Updates
