# <copyright>
#
# Copyright (c) 2008-2015 See4sys, itemis 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:
#     See4sys - Initial API and implementation
#     itemis - [480135] Introduce metamodel and view content agnostic problem decorator for model elements
#
# </copyright>

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName=Sphinx Examples Explorer Plug-in (Incubation)
providerName=Eclipse Modeling Project

sphinx.examples.explorer.views.modelExplorer.name=Model Explorer
sphinx.emf.explorer.modelExplorerProblemDecorator.label=Model Problem Decorator
sphinx.emf.explorer.modelExplorerProblemDecorator.description=Decorates model elements affected by problem markers with appropriate problem indicators.