###############################################################################
# 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 fi&le:
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
NewEJBModuleAction_UI_0=EJB Project
pageTitle=EJB Module
pageDescription=Configure EJB module settings.
configFolderLabel=Config Folder

NEW_JAVA_CLASS_DESTINATION_WIZARD_PAGE_DESC=Specify class file destination.
NEW_JAVA_CLASS_OPTIONS_WIZARD_PAGE_DESC=Specify modifiers, interfaces to implement, and method stubs to generate.
ADD_SESSION_BEAN_WIZARD_PAGE_DESC=Enter Session Bean specific information.

STATE_TYPE_LABEL=State &type:
CREATE_BUSINESS_INTERFACE=Create business interface
HOMECOMPONENTINTERFACE=H&ome and Component interfaces (EJB 2.x)
REMOTE_BUSINESS_INTERFACE=&Remote
REMOTE_BUSINESS_INTERFACE_E=R&emote
REMOTE_BUSINESS_INTERFACE_LABEL=Remote Business Interface:
REMOTE_HOME_INTERFACE_LABEL=Remote Home Interface:
LOCAL_BUSINESS_INTERFACE=&Local
LOCAL_BUSINESS_INTERFACE_LABEL=Local Business Interface:
LOCAL_HOME_INTERFACE_LABEL=Local Home Interface:
LOCAL_COMPONENT_INTERFACE_CODE=L
LOCAL_HOME_INTERFACE_CODE=LH
REMOTE_COMPONENT_INTERFACE_CODE=R
REMOTE_HOME_INTERFACE_CODE=RH
LOCAL_COMPONENT_INTERFACE_TOOLTIP=Local Component interface
LOCAL_HOME_INTERFACE_TOOLTIP=Local Home interface
REMOTE_COMPONENT_INTERFACE_TOOLTIP=Remote Component interface
REMOTE_HOME_INTERFACE_TOOLTIP=Remote Home interface
EJB_NAME=Bean na&me:
TRANSACTION_TYPE_CONTAINER=Container
TRANSACTION_TYPE_BEAN=Bean
STATE_TYPE_STATELESS=Stateless
STATE_TYPE_STATEFUL=Stateful
chooseInterface=Choose Interface
addAs=Add as:
MAPPED_NAME=Ma&pped name:
TRANSACTION_TYPE=&Transaction type:
BUSSINESS_INTERFACE=Business interfaces:
ADD_INTERFACES=Add...
REMOVE_INTERFACES=Remove
ADD_SESSION_BEAN_WIZARD_PAGE_TITLE=Create EJB 3.x Session Bean
ADD_MESSAGE_DRIVEN_BEAN_WIZARD_PAGE_TITLE=Create EJB 3.x Message-Driven Bean
ADD_MESSAGE_DRIVEN_BEAN_WIZARD_PAGE_DESC=Enter Message-Driven Bean specific information.
DESTINATION_LABEL=Destination &type:
DESTINATION_TYPE_QUEUE=Queue
DESTINATION_TYPE_TOPIC=Topic
JMS=&JMS
DESTINATION_NAME_LABEL=Destination n&ame:
MESSAGE_LISTENER_INTERFACE_HYPERLINK=Message &listener: 
MESSAGE_LISTENER_INTERFACE_HYPERLINK_TOOLTIP=Set message listener interface
CLICK_TO_SELECT=<click to select>
EJB_CLIENT_JAR_GROUP=EJB Client JAR