# /**
#  * Copyright (c) 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 Example Installer
providerName=Eclipse Modeling Project

_UI_EMFExampleCategory_name = Eclipse Modeling Framework

_UI_ActivitiesWizard_name = Capabilities Example
_UI_ActivitiesWizard_desc = Create a plug-in project that uses capabilities to filter EMF's UI contributions from the IDE
_UI_ActivitiesProject_desc = This project contains a plug-in manifest declaring activities for EMF, allowing products to filter its UI contributions from the IDE. 

_UI_LibraryModelWizard_name = Extended Library Model Example
_UI_LibraryModelWizard_desc = Create the plug-in projects that EMF would generate from the extended library model
_UI_LibraryModelProject_desc = This project contains the extended library model and the implementation generated from it.  
_UI_LibraryEditProject_desc = This project contains the item providers generated to support viewing and editing instances of the extended library model.
_UI_LibraryEditorProjector_desc = This project contains the sample editor generated from the extended library model.

_UI_JavaModelWizard_name = Java Model Example
_UI_JavaModelWizard_desc = Create plug-in projects implementing an EMF-based Java model
_UI_JavaModelProject_desc = This project contains an EMF model describing the Java language and an implementation generated from it. The resource implementation for the model is able to load from Java source files.
_UI_JavaEditProject_desc = This project contains the item providers generated to support viewing and editing instances of the Java model.
_UI_JavaEditorProjector_desc = This project contains the sample editor generated from the Java model.

_UI_HTMLExporterWizard_name = Model Exporter Example
_UI_HTMLExporterWizard_desc = Create a plug-in project that contributes an exporter to EMF's model converter framework
_UI_HTMLExporterProject_desc = This project contains a model exporter implementation that creates HTML pages to describe an existing model. JET templates are used to generate these HTML pages.

_UI_ValidatorGeneratorWizard_name = Generator Extension Example
_UI_ValidatorGeneratorWizard_desc = Create a plug-in project that extends the EMF generator
_UI_ValidatorGeneratorProject_desc = This project extends the EMF generator to produce additional artifacts, including a textual model description and sample validator interfaces.    
