# /**
#  * Copyright (c) 2002-2010 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=EMF Code Generation

featureText=EMF Code Generation\n\
Version: {featureVersion}\n\
Build: {0}\n\
Commit: {1}\n\
\n\
(c) Copyright Eclipse contributors and others. 2002, 2018.  All rights reserved.\n\
\n\
EMF is a Java/XML framework for generating tools and other\n\
applications based on simple class models.\n\
Visit http://www.eclipse.org/emf/
