# /**
#  * Copyright (c) 2006-2008 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

pluginName = EMF Model Exporter Example
providerName = Eclipse Modeling Project

_UI_HTMLExporter_label = HTML
_UI_HTMLExporter_description = Export the model to HTML

_UI_HTMLImport_title = HTML Export
_UI_InvalidArtifactFileNameExtension_message = The artifact file name must end in '.html'
