###############################################################################
# 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
###############################################################################
1=Project location:
2=Target runtime:
3=J2EE version:
4=Failed to find the image "{0}".
5=New Enterprise Application Project
6=Enterprise Application Project
7=Create an Enterprise Application project containing one or more module projects.
8=EAR Module Projects
9=Select the module projects to add to the new EAR project from the list. \nSelect New Module button to create a new module project.
10=&Select All
11=&Deselect All
12=New &Module...
13=EAR project:
14=N&ew...
14a=Ne&w...
15=Add module to an EAR application.
16=New Module Project
17=Create a new module project for the selected module type
18=New Module Project
19=Create default module projects.
20=Application Client project:
21=EJB project:
22=Web project:
23=Connector project:
24=New Application Client Project
25=Application Client module
26=Create an Application Client project and add it to a new or existing Enterprise Application project
27=Module Dependencies
28=Select dependent JARs for the module within the Enterprise Application project.
29=Available dependent JARs:
30=Manifest Class-Path:
31=JAR/Module
32=Project:
33=New
34=Import an Application Client project from the file System
35=Application Client Import
36=Application Client file:
37=Application Client project:
38=Import
39=Import an Enterprise Application project based on selected resources.
40=Enterprise Application Import
41=EAR file:
42=Overwrite existing resources without warning.
43=Project import
44=Optimized: make binary projects for EJB, client, and utility JARs
45=Expanded: extract project contents for development
46=Import for partial EAR development
47=Select All
48=Deselect All
49=Utility JARs and web libraries
50=Select the utility JARs from the list to be imported as utility projects. Unselected JARs will be imported as \nutility JARs in the EAR.
51=Enter the new project name that will be created for the imported module file by selecting the second column of the table for edit.
52=EAR Module and Utility JAR Projects
53=Project locations
54=This is the parent directory for all referenced projects. A subdirectory will be created for each project.
55=Module Root Location:

57=Select the location directory
58=Modules in EAR
59=New Project Name
60=filenames
61=projectnames
62=Destination:
63=Overwrite existing file
64=Export source files
65=Application Client Export
66=Export Application Client project to the local file system.
67=Export
68=EAR Export
69=Export Enterprise Application project to the local file system.
70=Include project build paths and meta-data files
71=If you select this option, the exported EAR maintains project names and external classpath dependencies, which are useful for later importing the EAR into binary projects. If you select this option and later import the EAR, only binary projects are created.
72=Include
74=Allow nested projects overwrites (module and utility projects)
75=Delete project on overwrite
76=EAR project:

#migration strings
77=Error
78=An internal error occurred performing the selected action.
79=Binary Project
80=The action cannot be performed on the selection, which is part of a binary project.
81=Information
82=The chosen operation is not currently available.

90=Create an EJB Client JAR module to hold the client interfaces and classes.
91=Generate an annotated bean class
92=Add support for annotated Java classes
93=B&rowse...
94=Na&me:
95=Create a default Main class
96=Create a default stateless session bean
98=Generate a XDoclet annotated class

97=Select the utility JARs from the list to be imported as utility projects or jars.
99=Project Name:
100=Module Version:
101=Configure Application Client module settings.
102=Content Folder:
103=Target Runtime
Entity_UI_=Entity Beans(1.x-2.x)
Message_Driven_Beans_UI_=Message-Driven Beans
Session_Beans_UI_=Session Beans
EJB_Class_UI_=EJB Class: {0}
Home_Interface_UI_=Home Interface: {0}
Service_Endpoint_Interface_UI_=Service Endpoint Interface: {0}
Primary_Key_Class_UI_=Primary Key Class: {0}
Remote_Interface_UI_=Remote Interface: {0}
Local_Interface_UI_=Local Interface: {0}
Local_Home_Interface_UI_=Local Home Interface: {0}
Delete_UI_=Delete...
Project_should_not_be_null_1_EXC_=IWAE0021E Project should not be null
Non-project_in_selection_2_EXC_=IWAE0022E Non-project in selection
Problems_Opening_Editor_ERROR_=IWAE0052E Problems Opening Editor.
Utility_JARs_UI_=Utility JARs
Delete_1=Delete...
Delete_selected_project(s)_2=Delete selected project(s)
Remove_module(s)_from_all_Enterprise_Applications_3=Remove module(s) from all Enterprise Applications
Remove_module(s)_from_all_other_Enterprise_Applications_4=Remove module(s) from all other Enterprise Applications
Remove_module_dependencies_referencing_selected_project(s)_5=Remove module dependencies referencing selected project(s)
Delete_Module_Options_6=Delete Module Options
Delete_Enterprise_Application_Options_7=Delete Enterprise Application Options
Delete_could_not_be_completed_8=Delete could not be completed
Delete_error_9=Delete error
What_would_you_like_to_delete__10=What would you like to delete?
Delete_selected_Enterprise_Application_project(s)_only_11=Delete selected Enterprise Application project(s) only
Also_delete_module_and_utility_Java_projects_12=Also delete module and utility Java projects
Delete_selected_project(s)_only_13=Delete selected project(s) only
Also_delete_references_to_selected_project(s)_14=Also delete references to selected project(s)
CUSTOM_DELETE_MIX_MATCH_UI_=The custom Java EE delete options are not available for the selected Java EE projects.  The standard delete options will be used.
DEPLOY_DIALOG_TITLE=J2EE Deployment
DEPLOY_ERROR_TEXT=IWAE0001E Error:
DEPLOY_WARNING_TEXT=Warning:
DEPLOY_INFO_TEXT=IWAE0002I Info:
DEPLOY_OK_TEXT=Ok:
DEPLOYMENT_IN_PROGRESS=Deployment operation in progress...
DEPLOY_SUCCESS_REPORT=Deployment finished successfully.
DEPLOY_WARNINGS_REPORT=Deployment finished with warnings; see log files for details.
DEPLOY_ERRORS_REPORT=Deployment finished with errors; see log files for details.
DEPLOY_PROJECT_NOT_FOUND=Cannot get handle to the project.
DEPLOY_RUNTIME_NOT_FOUND=Target runtime not configured for project {0}.
DEPLOY_RUNTIME_CONFIGURED=Target runtime configured successfully for project {0}.
DEPLOY_PROJECT_NOT_SUPPORTED=Project {0} cannot be deployed on the configured target runtime.

NewModuleSelectionPage.appClient=Application Client
NewModuleSelectionPage.ejb=Enterprise Java Bean
NewModuleSelectionPage.web=Web
NewModuleSelectionPage.jca=Connector

NewApplClientModuleAction_UI_0=Application Client Module
NewEARModuleAction_UI_0=EAR Module
J2EEProjectCreationPage_UI_0=Hide &Advanced <<
J2EEProjectCreationPage_UI_1=Show &Advanced >>
J2EEUtilityJarImportPage_UI_0=Utility Jar Import
J2EEUtilityJarImportPage_UI_1=Import dependent Utility Jars for Java EE Enterprise Applications
J2EEUtilityJarImportPage_UI_2=Available Utility Jars Directory
J2EEUtilityJarImportPage_UI_3=External Jar Directory:
J2EEUtilityJarImportPage_UI_4=Linked Path Variable
J2EEUtilityJarImportPage_UI_5=Make these imported files team-shareable by creating or re-using a Linked Path Variable (LPV). Select an existing LPV or type a new name to create one to the directory above. Other teammates should define this value through Window > Preferences | Workbench > Linked Resources. This option is only available for linked imports.
J2EEUtilityJarImportPage_UI_6=Overwrite Existing Resources (projects and archives)
J2EEUtilityJarImportPage_UI_7=Select Utility Jar:
J2EEUtilityJarImportPage.0=Use Existing Linked Path Variable
J2EEUtilityJarImportPage.1=Linked Path Variable: 
EARImportProjectsPage_UI_0=include
EARImportProjectsPage_UI_1=file
EARImportProjectsPage_UI_2=project
EARImportProjectsPage_UI_3=Select New

J2EEUtilityJarImportTypePage_UI_0=Utility Jar Import
J2EEUtilityJarImportTypePage_UI_1=Import dependent Utility Jars for Java EE Enterprise Applications
J2EEUtilityJarImportTypePage_UI_2=Select import type
J2EEUtilityJarImportTypePage_UI_3=Create Java Projects from Utility Jars
J2EEUtilityJarImportTypePage_UI_4=Create linked Java Projects from Utility Jars
J2EEUtilityJarImportTypePage_UI_5=Copy Utility Jars into an existing EAR from an external location
J2EEUtilityJarImportTypePage_UI_6=Create Linked Utility Jars in an existing EAR from an external location
J2EEUtilityJarImportTypePage_UI_7=Project import options
J2EEUtilityJarImportTypePage_UI_8=Select EAR Project
J2EEUtilityJarImportTypePage_UI_9=EAR Project:
J2EEUtilityJarImportTypePage_UI_10=Create Binary Projects
J2EEUtilityJarImportTypePage_UI_11=Override Project Root (Specify location below)

Deployment_Descriptor_UI_=Deployment Descriptor

Rename_1=Rename
Rename_selected_project_2=Rename selected project
Rename_module_in_all_Enterprise_Applications_3=Rename module in all Enterprise Applications
Rename_module_in_all_other_Enterprise_Applications_4=Rename module in all other Enterprise Applications
Rename_module_dependencies_referencing_selected_project_5=Rename module dependencies referencing selected project
Rename_Module_Options_6=Rename Module Options
Rename_Enterprise_Application_Options_7=Rename Enterprise Application Options
Rename_could_not_be_completed_8=Rename could not be completed
Rename_error_9=Rename error
What_would_you_like_to_rename_this_to__10=What would you like to rename this to?
Context_Root__11=Context root:
Rename_selected_Enterprise_Application_project_only_12=Rename selected Enterprise Application project only
Also_rename_module_and_utility_Java_projects_13=Also rename module and utility Java projects
Project_already_exists.=Project {0} already exists.
Project_should_not_be_null_1_EXC_=IWAE0021E Project should not be null
Non-project_in_selection_2_ERROR_=IWAE0024E Non-project in selection


ERROR_OCCURRED_TITLE=Error
ERROR_OCCURRED_MESSAGE=An internal error occurred performing the selected action.

Import_Class_Files_UI=Import
FileImport.selectSource=Select a directory to import from.
Import_Classes=Import Class Files...
ClassesImport.fromDir=Import from Directory
ClassesImport.fromZip=Import from Zip or Jar
DataTransfer.browse=Browse...
DataTransfer.directory=Source:
DataTransfer.fileSystemTitle=Import Class Files
FileImport.importFileSystem=Import class files from the local file system.
FileImport.sourceEmpty=Source must not be empty.
FileImport.overwriteExisting=Overwrite existing resources without warning
DataTransfer.selectAll=Select All
DataTransfer.deselectAll=Deselect All
Import_Class_Files_UI=Import
FileImport.selectSource=Select a directory to import from.
Inconsistent_Files_3=Inconsistent Files
The_following_workspace_files_are_inconsistent_with_the_editor_4=The following workspace files are inconsistent with the editor: \n
Update_the_editor_with_the_workspace_contents__5=Update the editor with the workspace contents?
Error_checking_out_files_10=Error checking out files
Inconsistent_files_detected_11=Inconsistent files detected
Modules_UI_=Modules
Utility_Java_Projects_UI_=Project Utility JARs
The_following_files_are_inconsistent_with_the_file_system._Do_you_want_to_save_and_overwrite_these_files_on_the_file_system__12_WARN_=IWAE0020W The following files are inconsistent with the file system.\nDo you want to save and overwrite these files on the file system?
J2EE_Level=J2EE Level:
J2EE_12=1.2
J2EE_13=1.3
J2EE_14=1.4
J2EE_12_DESCRIPTION=J2EE 1.2 includes Servlet Specification level 2.2, JSP Specification level 1.1, and EJB Specification level 1.1.
J2EE_13_DESCRIPTION=J2EE 1.3 includes Connector Architecture Specification level 1.0, Servlet Specification level 2.3, JSP Specification level 1.2, and EJB Specification level 2.0.
J2EE_14_DESCRIPTION=J2EE 1.4 includes Connector Architecture Specification level 1.5, Servlet Specification level 2.4, JSP Specification level 1.3, and EJB Specification level 2.1.
EJB_LEVEL=EJB Level:
EJB_11=1.1
EJB_20=2.0
EJB_21=2.1
EJB_11_DESCRIPTION=EJB 1.1 includes Session Beans, BMP Beans and CMP 1.1 Beans.  EJB 1.1 modules may be included in either Java EE 1.2 or Java EE 1.3 Enterprise Applications.
EJB_20_DESCRIPTION=EJB 2.0 includes Message-Driven Beans, BMP Beans, and CMP 1.1 and CMP 2.0 Beans.  EJB 2.0 modules may only be included in Java EE 1.3 Enterprise Applications.
EJB_21_DESCRIPTION=EJB 2.1 includes Message-Driven Beans, BMP Beans, and CMP 1.1 and CMP 2.0 Beans.  EJB 2.1 modules may only be included in Java EE 1.4 Enterprise Applications.
WEB_LEVEL=Web Level:
WEB_22=2.2
WEB_23=2.3
WEB_24=2.4
WEB_22_DESCRIPTION=Web 2.2 includes Servlet specification 2.2 and JSP specification 1.1.
WEB_23_DESCRIPTION=Web 2.3 includes Servlet specification 2.3 and JSP specification 1.2.
WEB_24_DESCRIPTION=Web 2.4 includes Servlet specification 2.4 and JSP specification 2.0.
APP_CLIENT_LEVEL=Application Client Level:
APP_CLIENT_12_DESCRIPTION=Application 1.2 includes the Applciation client specification level 1.2.
APP_CLIENT_13_DESCRIPTION=Application 1.3 includes the Applciation client specification level 1.3.
APP_CLIENT_14_DESCRIPTION=Application 1.4 includes the Applciation client specification level 1.4.
CONNECTOR_LEVEL=Connector Architecture Level:
CONNECTOR_10=1.0
CONNECTOR_15=1.5
CONNECTOR_10_DESCRIPTION=Connector Architecture 1.0 modules may only be included in Java EE 1.3 Enterprise Applications.
CONNECTOR_15_DESCRIPTION=Connector Architecture 1.5 modules may only be included in Java EE 1.4 Enterprise Applications.
DESCRIPTION=Description:
WEB_CONTEXT_ROOT=Context Root:
WEB_CONTENT_FOLDER_NAME=Web content folder name:
FileImport.invalidSource = Source directory is not valid or has not been specified.
FileImport.importProblems = Import Problems
DataTransfer.information = Information
FileImport.noneSelected = There are no resources currently selected for import.
File_Selection_UI_=File Selection
Select_a_file__UI_=Select a file:
Flexible_Structure=Use flexible project structure
FlexibleProjectCreationWizard.mainPage.title=J2EE Project
FlexibleProjectCreationWizard.mainPage.desc=Create a Java EE project.
FlexibleProjectCreationWizard.title=J2EE Project
EARComponentCreationWizard.title=New EAR Application Project
EARComponentCreationWizard.mainPage.title=EAR Application Project
EARComponentCreationWizard.mainPage.desc=Create a EAR application.
EARComponentCreationWizard.secondPage.title=Enterprise Application
EARComponentCreationWizard.secondPage.desc=Configure enterprise application settings.
J2EEModuleDependencies.label=Java EE Module Dependencies:
AppClientComponentCreationWizard.title=New Application Client Project
AppClientComponentCreationWizard.mainPage.title=Application Client Project
AppClientComponentCreationWizard.mainPage.desc=Create a Application Client.
DefaultJ2EEComponentCreationWizard.title=Create default Java EE modules.
DefaultJ2EEComponentCreationWizard.page.title=New Java EE Module
DefaultJ2EEComponentCreationWizard.page.desc=Create a new Java EE module for the selected module type
DefaultJ2EEComponentCreationWizard.page.label.ejb=EJB module
DefaultJ2EEComponentCreationWizard.page.label.web=Web module
DefaultJ2EEComponentCreationWizard.page.label.jca=Connector module
DefaultJ2EEComponentCreationWizard.page.label.appclient=Application client module
DefaultJ2EEComponentCreationWizard.page.button.select=Create default modules

FOLDER_LABEL=Source folder:
BROWSE_BUTTON_LABEL=Browse...
JAVA_PACKAGE_LABEL=Java package:
CLASS_NAME_LABEL=Class name:
SUPERCLASS_LABEL=Superclass:
CONTAINER_SELECTION_DIALOG_TITLE=Container Selection
CONTAINER_SELECTION_DIALOG_DESC=Choose a Container:
CONTAINER_SELECTION_DIALOG_VALIDATOR_MESG=Choose a valid java source folder for the selected module.
PACKAGE_SELECTION_DIALOG_TITLE=Package Selection
PACKAGE_SELECTION_DIALOG_DESC=Choose a package:
PACKAGE_SELECTION_DIALOG_MSG_NONE=No packages to choose from
SUPERCLASS_SELECTION_DIALOG_TITLE=Superclass Selection
SUPERCLASS_SELECTION_DIALOG_DESC=Choose a superclass:
JAVA_CLASS_MODIFIERS_LABEL=Modifiers:
JAVA_CLASS_PUBLIC_CHECKBOX_LABEL=Public
JAVA_CLASS_ABSTRACT_CHECKBOX_LABEL=Abstract
JAVA_CLASS_FINAL_CHECKBOX_LABEL=Final
JAVA_CLASS_INTERFACES_LABEL=Interfaces:
JAVA_CLASS_METHOD_STUBS_LABEL=Which method stubs would you like to create?
JAVA_CLASS_MAIN_CHECKBOX_LABEL=public static void main(String[] args)
JAVA_CLASS_CONSTRUCTOR_CHECKBOX_LABEL=Constructors from superclass
JAVA_CLASS_INHERIT_CHECKBOX_LABEL=Inherited abstract methods
ADD_BUTTON_LABEL=Add...
REMOVE_BUTTON=Remove
YES_BUTTON=Yes
NO_BUTTON=No
OK_BUTTON=OK
CANCEL_BUTTON=Cancel
BINARY=Binary
INTERFACE_SELECTION_DIALOG_TITLE=Interface Selection
JAVAUTILITY_MAIN_PG_TITLE=Java Component
JAVAUTILITY_MAIN_PG_DESC=Create a Java Component
JAVAUTIL_COMPONENT_WIZ_TITLE=New Java Utility Module
AVAILABLE_J2EE_COMPONENTS= Available Java EE modules
EXTERNAL_JAR=Add External JARs...
PROJECT_JAR=Add JARs...
ADDVARIABLE=Add Variable...
CHANGE_LIB_DIR=Change &Library Directory...
NO_DD_MSG_TITLE=No Deployment Descriptor
GEN_DD_QUESTION=Changing the library directory must be reflected in the deployment descriptor. This EAR has no deployment descriptor yet and one will be generated now. Do you want to proceed?
CHANGE_LIB_DIR_HEAD=Change Library Directory
NEW_LIB_DIR_PROPMPT=New library directory location:
BLANK_LIB_DIR=Blank Library Directory
BLANK_LIB_DIR_CONFIRM=You've entered a blank library directory. In result, all the libraries will be packed in the root directory. In order to be able to pack any libraries in the library directory you must enter a non-blank library directory. Do you really want the library directory to be blank?
BLANK_LIB_DIR_WARN_QUESTION=The specified library directory is blank. In result, all the libraries will be packed in the root directory. Are you sure you want this? (If you want to leave the bundled libraries directory blank, click 'Yes'. If you want to change it, click 'No')
INVALID_PATH=Invalid Path
INVALID_PATH_MSG=The entered path is invalid for a library directory. Please enter a valid path, different from root!
DEPENDENCY_CONFLICT_TITLE=Dependencies Conflict
DEPENDENCY_CONFLICT_MSG_1=This JAR is a bundled library of an EAR project and is supposed to be packed in the EAR's library directory. It conflicts with the manifest class path dependency you are trying to create. If you create this dependency, the JAR will be packed in the root (not library) directory of the EAR. Are you sure you want to proceed?
DEPENDENCY_CONFLICT_MSG_2=This JAR is also a manifest class path dependency of a module in this EAR. It conflicts with packing the JAR in the library directory. If you want this JAR packed in the library directory, then it will be removed as a manifest class path dependency from all modules in this EAR. Are you sure you want to proceed?  
DO_NOT_SHOW_WARNING_AGAIN=Do not show this warning again 
SUPPORTMULTIPLEMODULES=Support Multiple Modules per project
SOURCEFOLDER=Source Folder:
