###############################################################################
# Copyright (c) 2003, 2006 IBM Corporation 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:
# IBM Corporation - initial API and implementation
###############################################################################
KEY_0=Failed to find the image "{0}".
KEY_1=New EJB Project
KEY_2=EJB version:
KEY_3=EJB Project
KEY_4=Create an EJB project and add it to a new or existing Enterprise Application.
KEY_5=Import an EJB jar from the file system
KEY_6=EJB Jar Import
KEY_7=EJB Jar file:
KEY_8=EJB Project:
KEY_9=EJB Jar Export
KEY_10=Export EJB project to the local file system.
KEY_11=EJB client JAR Creation
KEY_12=Use this wizard to create an EJB client JAR from your existing EJB
KEY_13=Client JAR URI:
KEY_14=Project name:
KEY_15=Project location:
KEY_16=EJB Project:
KEY_17=Delete Bean Only
KEY_18=Delete Bean Classes
KEY_19=Delete Access Bean
KEY_20=Delete Deployed Code
KEY_21=Select All
KEY_22=Deselect All
KEY_23=The selected enterprise bean cannot be deleted because it is involved in\nrelationships with other enterprise beans.  You must first delete these\nrelationships before deleting the bean.
KEY_24=Delete...
KEY_25=Cannot delete Enterprise Bean
KEY_26=Cannot delete the bean named "{0}" because it is in a binary project.
KEY_27=Delete Enterprise Bean(s)
KEY_28=What options would you like when deleting the selected\nEnterprise Bean(s)?
GroupedEJBJarItemProvider_UI_0=Session
GroupedEJBJarItemProvider_UI_1=Entity
GroupedEJBJarItemProvider_UI_2=Message
NewEJBProjectAction_UI_0=EJB Project
NewEJBModuleAction_UI_0=EJB Project
pageTitle=Ejb Module
pageDescription=Configure ejb module settings.
configFolderLabel=Config Folder:
