###############################################################################
# Copyright (c) 2003, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.ui/ui/org/eclipse/jem/internal/ui/proxy/remote/Attic/messages.properties,v $
# $Revision: 1.4 $  $Date: 2004/08/27 15:35:42 $
#

LocalLaunchProjectTab.name                        = &Project
LocalLaunchProjectTab.Project                     = &Project
LocalLaunchProjectTab.Browse                      = &Browse...
LocalLaunchProjectTab.Project_Selection           = Project Selection
LocalLaunchProjectTab.ChooseProject               = Choose a &project to for the launch:
LocalLaunchProjectTab.ProjectNotExist_ERROR_      = IWAV0174E Project "{0}" doesn't exist.
LocalLaunchProjectTab.ProjectNotOpen_ERROR_       = IWAV0175E Project "{0}" is not open.
LocalLaunchProjectTab.ProjectValidateError_ERROR_ = IWAV0176E Project validation error. Msg is "{0}."
