###############################################################################
# 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
# https://www.eclipse.org/legal/epl-2.0/
#
# Contributors:
# IBM Corporation - initial API and implementation
# Oracle - EJB Timer
###############################################################################
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:
NO_INTERFACE=No-&interface View
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
ASYNC=As&ynchronous

timerWizardTitle=Create EJB Timer Callback
timerWizardDescription=Create Java class with an added EJB Timer Callback method.
timerScheduleLabel=Schedule: 
NON_PERSISTENT=&Non-persistent
