###############################################################################
# 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:
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.
