# Copyright (c) 2003, 2013 IBM Corporation, Embarcadero Technologies, CEA, and others.
# 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: 
#   IBM - initial API and implementation
#   Kenn Hussey (Embarcadero Technologies) - 204200
#   Kenn Hussey - 314388, 341158
#   Kenn Hussey - 351776
#   Christian W. Damus (CEA) - 227616
#

# NLS_MESSAGEFORMAT_VAR

# feature.properties
# contains externalized strings for feature.xml
# "%foo" in feature.xml corresponds to the key "foo" in this file
# java.io.Properties file (ISO 8859-1 with "\" escapes)

# "feature.label" property - name of the feature
feature.label = UML 2.x Metamodel Edit Support

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

# "update.label" property - label for the update site
update.label = Eclipse Modeling Project Updates

# "description" property - description of the feature
description = Model edit-providers for the UML 2.x metamodel.  These support editors (graphical and otherwise) for UML models.
