# 
# Copyright (c) 2011 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 - Added command, menu and handler for converting projects to Xtend/Xpand-enabled plug-in projects
# 
# </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 CodeGen Xpand UI Plug-in (Incubation)
providerName=Eclipse Modeling Project

sphinx.examples.codegen.xpand.ui.commands.convertToXtendXpandEnabledPluginProject.name=Convert to Xpand/Xtend-enabled Plug-in Project
sphinx.examples.codegen.xpand.ui.commands.convertToXtendXpandEnabledPluginProject.label=Convert to Xpand/Xtend-enabled Plug-in Project

sphinx.examples.codegen.xpand.ui.decorators.outletFolder.label=Xpand Outlet Folder Decorator
sphinx.examples.codegen.xpand.ui.decorators.outletFolder.description=Decorates icons of folders that are used as outlets for Xpand.

sphinx.examples.codegen.xpand.ui.preferencePages.outlets.name=Outlets
sphinx.examples.codegen.xpand.ui.propertyPages.outlets.name=Outlets
