###############################################################################
# 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 pro&ject:
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 fi&le:
37=Application Client pro&ject:
38=Import
39=Import an Enterprise Application project based on selected resources.
40=Enterprise Application Import
41=EAR fi&le:
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. Unselected modules will be imported as JARs in the EAR.
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=Over&write 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 pro&ject:

#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=Br&owse...
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}
RefactoringNoInit=Refactoring not initialized properly
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 with configured runtime or installed facets.

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

NewApplClientModuleAction_UI_0=Application Client Module
NewContextRoot=New context root:
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=Over&write 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=Cop&y 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
RenameDotDotDot=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
RenameContextRoot=Rename Context Root
RenameContextRootFromXtoY=Rename context root from "{0}" to "{1}"
Also_rename_module_and_utility_Java_projects_13=Also rename module and utility Java projects
Project_already_exists.=Project {0} already exists.
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
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:
J2EEModuleDependencies.label_accessibility=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 fol&der:
BROWSE_BUTTON_LABEL=Browse...
BROWSE_BUTTON_LABEL_O=Br&owse...
BROWSE_BUTTON_LABEL_W=Bro&wse...
BROWSE_BUTTON_LABEL_E=Brows&e...
JAVA_PACKAGE_LABEL=Java pac&kage:
CLASS_NAME_LABEL=Class na&me:
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=abs&tract
JAVA_CLASS_FINAL_CHECKBOX_LABEL=fina&l
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=In&herited abstract methods
ADD_BUTTON_LABEL=&Add...
REMOVE_BUTTON=&Remove
YES_BUTTON=Yes
NO_BUTTON=No
OK_BUTTON=OK
OpenJ2EEResourceAction.0=Open
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
JAVA_EE_PREFERENCE_PAGE_NAME=General settings for Java EE development:
JAVA_EE_PREFERENCE_PAGE_JET_TEMPLATE=JET templates
JAVA_EE_PREFERENCE_PAGE_DYN_TRANSLATION_BTN_NAME=Use dynamic translation of JET templates
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:
HOVER_HELP_FOR_DISABLED_LIBS=This library has been added to the project by using the project tree or\nthe file system. If you want to move/remove it, use the same approach.
