###############################################################################
# Copyright (c) 2010, 2011 SAP AG 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:
#     Kaloyan Raev (SAP AG) - initial API and implementation
###############################################################################
Bundle-Name = OSGi Bundle Facet UI (Incubation)
Bundle-Vendor = Eclipse Web Tools Platform

convert.action.label = Convert to OSGi Bundle Projects...

run.on.server = Run on Server
debug.on.server = Debug on Server
profile.on.server = Profile on Server
