###############################################################################
# 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}
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=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
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.
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:
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.
OUTPUTFOLDER=Output Folder: