###############################################################################
# Copyright (c) 2003, 2005 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
###############################################################################
Create_Two_Children_UI_=Create Two Children
Create_Child_UI_=Create Child
Name_UI_=Name
The_name_property_UI_=The name property
Type_UI_=Type
The_type_property_UI_=The type property
Home_UI_=Home
The_home_property_UI_=The home property
Remote_UI_=Remote
The_remote_property_UI_=The remote property
_UI_EJBLocalRef_localHome_feature_desc=The local home property
_UI_EJBLocalRef_local_feature_desc=The local property
Link_UI_=Link
The_link_property_UI_=The link property
Description_UI_=Description
The_description_property_UI_=The description property
Client_UI_=Client
The_client_property_UI_=The client property
WebApp_UI_=WebApp
The_webApp_property_UI_=The webApp property
Ejb_UI_=Ejb
The_ejb_property_UI_=The EJB property
Value_UI_=Value
The_value_property_UI_=The value property
Auth_UI_=Auth
The_auth_property_UI_=The auth property
RoleName_UI_=RoleName
The_roleName_property_UI_=The roleName property
Application_UI_=Application
The_application_property_UI_=The application property
Servlet_UI_=Servlet
The_servlet_property_UI_=The servlet property
EJB_Reference_UI_=EJB Reference
_UI_EJBLocalRef_type=EJB Local Reference
New_UI_=Add
Delete_UI_=Remove
Delete_EJB_references_UI_=Delete EJB references
Variable_UI_=Variable
Delete_environment_entries_UI_=Delete environment entries
(New_Variable)_UI_=(New Variable)
New_environment_entry_UI_=New environment entry
Delete_resource_references_UI_=Delete resource references
Reference_Name_UI_=Reference Name
Authentication_UI_=Authentication
(New_ResourceRef)_UI_=(New ResourceRef)
New_resource_reference_UI_=New resource reference
Security_Roles_UI_=Security Roles
(New_Security_Role)_UI_=(New Security Role)
New_security_role_UI_=New security role
Delete_security_roles_UI_=Delete security roles
Bad_parent_ERROR_=IWAE0001E Bad parent
Choose_Icons_UI_=Choose Icons
Preview_UI_=Preview
Browse..._UI_=Browse...
Resource_must_exist._ERROR_=IWAE0002E Resource must exist.
Resource_must_be_accessibl_ERROR_=IWAE0003E Resource must be accessible.
What_resources_do_you_want_UI_=What resources do you want to export?
Where_do_you_want_to_expor_UI_=Where do you want to export resources to?
Options__UI_=Options:
Export_source_files_UI_=Export source files
Create_directory_structure_UI_=Create directory structure
Create_directories_for_sel_UI_=Create directories for selected folders
Import_into_new_or_existin_UI_=Import into new or existing Enterprise Application project
Create_complete_container__UI_=Create complete folder structure
File_Selection_UI_=File Selection
Select_a_file__UI_=Select a file:
Label_Ear_Project_Name_UI=Enterprise application project name:
Label_Where_To_Import_UI_=Where do you want the imported resources to go?
Overwrite_existing_resources_UI_=Overwrite existing resources without warning
Overwrite_existing_resources_export_UI_=Overwrite existing files without warning
(New_EJB_Ref)_UI_=(New EJB Ref)
Small_(16x16)__UI_=Small (16x16):
Large_(32x32)__UI_=Large (32x32):
Choose_Small_Icon_UI_=Choose Small Icon
Select_the_Small_Icon_UI_=Select the Small Icon
Choose_Large_Icon_UI_=Choose Large Icon
Select_the_Large_Icon_UI_=Select the Large
Icon29concat=Create a new child for the selected {0}.
1concat_UI_=Create a new child for the selected {0}.
3concat_UI_=BasicAuthData {0}
4concat_UI_=EjbRefBinding {0}
## on the following line, do not translate:   CHILD_CLASS_NAME  ##
5concat_UI_=Create a child of type #CHILD_CLASS_NAME# for the selected {0}.
6concat_UI_=ResourceRefBinding {0}
9concat_EXC_=IWAE0004E Failed to load image for ''{0}''
11concat_ERROR_=IWAE0005E Cannot find the image for the file: {0}
12concat_ERROR_=IWAE0006E Problems with URL format of the image file: {0}
28concat_UI_={0} is an invalid character in a resource name.
29concat_UI_=Enterprise Application project contains invalid character {0}.
30concat_UI_=Enterprise Application must be absolute. Use /{0}.
13concat_UI_={0} is an invalid character in a resource name.
14concat_UI_=Enterprise Application project contains invalid character {0}.
15concat_UI_=Enterprise Application must be absolute. Use /{0}.
16concat_UI_=Create a child of type {0} for the selected {1}.
18concat_UI_=Create {0}
19concat_UI_=Create two new children for the selected {0}.
20concat_UI_=Create two new children of type {0} for the selected {1}.
21concat=Create Two {0}s
Undo@Ctrl+Z_UI_=Undo@Ctrl+Z
{0}_change_UI_={0} change
Project_and_EAR_names_can__UI_=Destination Project and Enterprise Application names cannot be the same
You_must_specify_an_EAR_pr_UI_=You must specify an Enterprise Application project that exists or should be created
Invalid_EAR_project_name_UI_=Invalid Enterprise Application project name
Project_exist,_but_it_is_n_UI_=Project exist, but it is not an Enterprise Application project
EAR_Project_Name__UI_=Enterprise application project name:
Create_Child_UI__UI_=Create Child
UserId_UI_=UserId
The_userId_property_UI_=The userId property
Password_UI_=Password
The_password_property_UI_=The password property
JndiName_UI_=JndiName
The_jndiName_property_UI_=The jndiName property
## on the following line, do not translate:  bindingEjbRef  ##
The_bindingEjbRef_property_UI_=The bindingEjbRef property
## on the following line, do not translate: bindingResourceRef  ##
The_bindingResourceRef_pro_UI_=The bindingResourceRef property
## do not translate the following line ##
DefaultAuth_UI_=DefaultAuth
## on the following line, do not translate:  defaultAuth ##
The_defaultAuth_property_UI_=The defaultAuth property
## on the following line, do not translate:   CHILD_CLASS_NAME  ##
Create_#CHILD_CLASS_NAME#_UI_=Create #CHILD_CLASS_NAME#
Question_UI_=Question
Resource__UI_=Resource {0} already exists.  Would you like to overwrite it?
New_EJB_reference_UI_=New EJB reference
The_EJB_property_UI_=The EJB property
An_error_occurred_reading__ERROR_=IWAE0007E An error occurred reading the meta-data in Enterprise Application project {0}:
Error_in_EAR_project_UI_=Error in Enterprise Application project
Manifest_Class-Path__UI_=Manifest Class-Path:
Module_Dependencies_UI_=Module Dependencies
Select_dependent_JARs_for__UI_=Select dependent JARs for the module within the Enterprise Application project.
Project_name__UI_=Project name:
NO_EAR_JARDEP_FOR_MOD_UI_=Selected module not associated with an Enterprise Application module.
EAR_Project_Name__UI__UI_=Enterprise application project name:
Project_UI_=Project
Available_dependent_JARs__UI_=Available dependent JARs:
Project_{0}_is_not_referen_ERROR_=IWAE0008E Project {0} is not referenced by any Enterprise Application project.
Unable_to_edit_module_depe_UI_=Unable to edit module dependencies
Define_Java_Build_Settings_UI_=Define Java Build Settings
Specify_the_source_and_out_UI_=Specify the source and output folders, as well as the Java classpath in the appropriate order.
Enter_a_valid_project_name_UI_=Enter a valid project name
Project_name_has_invalid_c_UI_=Project name has invalid characters
Project_does_not_exist_or__UI_=Project does not exist or Invalid project nature. Enter a valid project name
EAR_Project_Name_UI_=Enterprise application project name:
Invalid_destination_projec_UI_=Invalid destination project
Cannot_import_into_a_close_UI_=Cannot import into a closed project
Project_name_must_be_speci_UI_=Project name must be specified
Select_an_EAR_Project_UI_=Select an Enterprise Application project
The_project_is_referenced__ERROR_=IWAE0009E The project is referenced by more than one Enterprise Application project.  Please select the primary Enterprise Application project.
An_internal_error_occurred_ERROR_=IWAE0010E An internal error occurred:
2concat_INFO_=IWAE0011I The file {0} is read-only and cannot be saved.  Would you like to make it editable and save anyway?
Information_UI_=Information
The_chosen_operation_is_no_INFO_=IWAE0012I The chosen operation is not currently available.
Save_problems_UI_=Save problems
Save_could_not_be_complete_INFO_=IWAE0013I Save could not be completed.  Some related files may have already been saved.\n\nReason
Yes_UI_=Yes
Yes_To_All_UI_=Yes To All
No_UI_=No
Saving_Read-Only_File_UI_=Saving Read-Only File
A_source_folder_must_be_sp_UI_=A source folder must be specified
EAR_project_is_not_open_UI_=Enterprise Application project is not open
1concat_EXC_=IWAE0014E Invalid initial delay: {0}
2concat_EXC_=IWAE0015E Invalid delay: {0}
Information_UI__UI_=Information
Error_UI_=Error
Confirm_UI_=Confirm
Can't_start_a_TimerQueue_t_EXC_=IWAE0016E Can't start a TimerQueue that is already running
Module_Dependency_Dialog_Title_UI_=Module Dependencies Dialog
JAR/Module_UI_=JAR/Module
Must_be_an_Connector_Cli1_UI_=Must be a Connector project.
Must_be_an_Application_Cli_UI_=Must be an Application Client, EJB, or Web project.
Must_be_an_EJB_project._UI_=Must be an EJB project.
Selection_must_be_a_Web_pr_UI_=Selection must be a Web project.
Must_be_an_Enterprise_Appl_UI_=Must be an Enterprise Application project.
Must_be_an_Application_Cli1_j2ee13_UI_=Must be an J2EE 1.3 Application Client project.
Must_be_an_Application_Cli1_UI_=Must be an Application Client project.
Select_the_highest_J2EE_version_that_is_to_be_used__UI_=&Highest J2EE version used for development:
Unexpected_IO_exception_occurred_creating_xml_document_1_EXC_=IWAE0017E Unexpected IO exception occurred creating xml document
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)
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
Source_1=Source
Error_creating_nested_text_editor_2=Error creating nested text editor
Redirecting_Editor_1=Redirecting Editor
Problems_Opening_Editor_2_ERROR_=IWAE0018E Problems Opening Editor
The_selected_input_is_not_valid_for_this_type_of_editor.__Redirecting_to_the_XML_editor_3_ERROR_=IWAE0019E The selected input is not valid for this type of editor.  Redirecting to the XML editor.
REDIRECT_TEXT_EDITOR_UI_=The selected input is not valid for this type of editor.  Redirecting to the text editor.
REDIRECT_TEXT_EDITOR_BINARY_PROJECT_UI_=The selected input is not valid for this type of editor.  For binary projects, you can open the editor read-only from the deployment descriptor node in the Project Navigator or J2EE Hierarchy view.  Redirecting to the text editor.
Error_checking_out_files_10=Error checking out files
Inconsistent_files_detected_11=Inconsistent files detected
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?
Project_should_not_be_null_1_EXC_=IWAE0021E Project should not be null
Non-project_in_selection_2_EXC_=IWAE0022E Non-project in selection
Project_should_not_be_null_1_ERROR_=IWAE0023E Project should not be null
Non-project_in_selection_2_ERROR_=IWAE0024E Non-project in selection
Up_1=&Up
Down_2=&Down
Select_All_3=Select &All
Deselect_All_4=D&eselect All
Project_3=Project
Enterprise_Application_Project_4=Enterprise application project:
New_ejb_project_and__ear_project_cannot_have_the_same_non_default_location_5_UI_=New EJB project and  EAR project cannot have the same non default location
New_ejb_project_and__ear_project_cannot_have_the_same_non_default_location_6_UI_=New EJB project and  EAR project cannot have the same non default location
Project_already_exists,_enter_a_new_project_name_to_create_a_new_EJB_project_7_UI_=Project already exists, enter a new project name to create a new EJB project
Project_already_exists,_enter_a_new_project_name_to_create_a_new_EAR_project_8_UI_=Project already exists, enter a new project name to create a new EAR project
Jar_file_name_must_be_entered_9_UI_=JAR file name must be entered
New_project_name__1=New project name:
New_project_location__2=New project location:
New_4=New
Existing_5=Existing
Existing_project_name__6=Existing project name:
Select_Project_7=Select Project
Project_does_not_exist_8=Project does not exist
Not_a_project_9=Not a project
Select_a_project_10=Select a project
DefaultEAR_1=DefaultEAR
Default13EAR_2=Default13EAR
Enterprise_Application_Project_3=Enterprise application project:
New_ejb_project_and_the_new_ear_project_cannot_have_the_same_non_default_location_4_ERROR_=IWAE0025E New EJB project and the new EAR project cannot have the same non default location
New_project_location__1=New project location:
MapInfoPath.applyPath()_-_Could_not_successfully_apply_path_1_EXC_=IWAE0026E MapInfoPath.applyPath() - Could not successfully apply path
Enter_a_valid_name=Enter a valid {0} name
The_non_default_location___1=The non default location: {0} for module {1} is in use.
The_project_location_in_use_UI=The non default location: {0} for {1} is in use.
Inconsistent_File_1=Inconsistent File
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?
The_following_workspace_file_is_inconsistent_with_the_editor_1=The following workspace file is inconsistent with the editor: {0} \n
EAR_project_1=EAR project:
EJB_project_2=EJB project
EXPORT_SOURCE_ZIP_UI_=Also export a source ZIP file
EAR_project_UI_=EAR project:
Project_and_EAR_project_non_default_location_UI_=Project and EAR project cannot have the same non default location
Invalid_non_default_location_UI_=Invalid non default location
Project_Main_UI_=Project
There_are_no_projects_available_that_match_the_selection_criteria._1=There are no projects available that match the selection criteria.
Incompatible_EAR_and_Web_Project_Level_1=Incompatible EAR and Web Project Level
You_have_selected_a_1.2_level_EAR.__Your_Web_Project_J2EE_level_will_be_changed_to_1.2.__Would_you_like_to_proceed_ERROR_2=IWAE0027E You have selected a 1.2 level EAR.  Your Web Project's J2EE level will be changed to 1.2.  Would you like to proceed?
J2EE_Level_4=J2EE Level
Project_1=Project
J2EE_Level_2=J2EE Level
Please_choose_a_J2EE_1.2_level_project_3=Please choose a J2EE 1.2 level project
Please_choose_a_J2EE_1.3_level_project_4=Please choose a J2EE 1.3 level project
Problems_Opening_Editor_2=Problems Opening Editor
The_selected_input_is_not_valid_for_this_type_of_editor.__Redirecting_to_the_XML_editor._ERROR_=IWAE0028E The selected input is not valid for this type of editor.  Redirecting to the XML editor.
Enterprise_Application_Project__2=Enterprise application Project:
Context_root__3=Context root:
CANT_IMPORT_TO_BINARY_PROJECT_UI_=Cannot import into the existing project "{0}" because the project is binary.
One_or_more_referenced_Web_Library_Projects_do_not_exist=One or more Web Library Projects referenced by {0} do not exist or are closed.\n\nDo you want to continue without exporting these Web Library Projects?
Warning_1=Warning
Project_Doc_Root=Context root:
NO_EAR_JARDEP_UI_=Project is not associated with an Enterprise Application project.
The_description_property_of_the_identity_2=The description property of the identity
The_role_name_property_of_the_identity_4=The role name property of the identity
The_identity_of_the_run_as_specified_identity_2=The identity of the run as specified identity
The_description_property_of_the_security_identity_2=The description property of the security identity
Binary_Project_1=Binary Project
Include_project_build_paths_and_meta-data_files_1=Include project build paths and meta-data files
new_EAR_project_1=new EAR project
_ERROR_The_jar_file_does_not_exist_2=IWAE0029E The JAR file does not exist
_ERROR_The_J2EE_level_of_the_Jar_file_does_not_match_the_Project_level_3=IWAE0030E The J2EE level of the JAR file does not match the Project level
_ERROR_The_J2EE_level_of_the_jar_file_does_not_match_the_Enterprise_Application_level_4=IWAE0031E The J2EE level of the JAR file does not match the Enterprise Application level
The_action_cannot_be_performed_on_the_selection,_which_is_part_of_a_binary_project_UI_=The action cannot be performed on the selection, which is part of a binary project.
destination_project_1=destination project
CUSTOM_DELETE_MIX_MATCH_UI_=The custom J2EE delete options are not available for the selected J2EE projects.  The standard delete options will be used.
PROJECT_NOT_ACCESSIBLE=The project {0} is not accessible.
IMPORT_FAILED_UI_=Import Failed
ERROR_READING_MANIFEST_DIALOG_TITLE=Error Reading Manifest
SAVE_MANIFEST_WITH_ERROR=The manifest file contains errors and can not be parsed.  The file will be saved but the Java build path will not be updated.  Following are common limitations which can cause problems:
ERROR_READING_MANIFEST_DIALOG_MESSAGE_EDITOR=The manifest file contains errors and can not be parsed.  Other pages cannot be used until these errors are corrected.  Following are common limitations which can cause problems:
ERROR_READING_MANIFEST_DIALOG_MESSAGE_PROP_PAGE=The manifest file contains errors and can not be parsed.  Following are common limitations which can cause problems:
MANIFEST_PROBLEM_1=* Lines in the file must be no greater than 72 bytes. Continuation of long lines is indicated by a new line and a space.
MANIFEST_PROBLEM_2=* The last line in the file must end with a new line or it will not be parsed.
MANIFEST_PROBLEM_3=* Blank lines with extra white space may cause parse to fail.
MANIFEST_PROBLEM_4=* The attributes must be formatted correctly.  Refer to the manifest and JAR file specification for more information.
ERROR_OCCURRED_TITLE=Error
ERROR_OCCURRED_MESSAGE=An internal error occurred performing the selected action.
SAVE_ON_BINARY_PROJECT_TITLE_UI_=Binary Projects
SAVE_ON_BINARY_PROJECT_MESSAGE_UI_=Cannot edit binary projects. All changes will be lost when you click OK. Are you sure you want to continue?
The_JAR_file_does_not_exist=The JAR file does not exist.
The_J2EE_level_of_the_Jar_file_does_not_match_the_Project_level._7=The J2EE level of the JAR file does not match the project level.
Project_already_exists.=Project {0} already exists.
Enterprise_Application_Project_does_not_exist.=Enterprise Application project {0} does not exist.
Enterprise_Application_Project_name_must_be_specified.=Enterprise Application project name must be specified.
An_Enterprise_Application_Project_with_the_name_already_exists_in_the_workspace.=Enterprise Application project {0} already exists.
Context_Root_cannot_be_emp_UI_=Context Root cannot be empty
Project_With_Same_Name_Exists_UI_=The project named \"{0}\" already exists.
Use_default_label_1=Use default
Must_be_an_J2EE13_EAR_Project_UI_=Must be an J2EE 1.3 level EAR Project
Assembly_Application_Project_Suffix=EAR
Assembly_EJBJAR_Project_Suffix=EJB
Assembly_Web_Project_Suffix=Web
Assembly_ClientJAR_Project_Suffix=Client
Assembly_Connector_Project_Suffix=Connector
Advanced..._UI=Advanced...
Project_Location_UI_=Project location:
DD_GENERAL_NAME=Deployment Descriptor
Destination__1=Destination:
Resource__2=Resource:
The_file_does_not_exist._1=The file does not exist.
Resource__2=Resource:
Must_be_an_J2EE12_Module_Only_UI_=Must be a J2EE 1.2 Level module file only.
Project_location__1=Project location:
Project__1=Project:
Browse..._2=Browse...
New..._3=New...
Invalid_EAR_For_Selected_Module=The J2EE level of the Enterprise Application project is not valid for the selected module file
Invalid_Project_For_Selected_Module=The J2EE level of the destination project is not valid for the selected module file
Invalid_EAR_Name_For_Project_Creation=The J2EE level of the exisiting EAR project: {0} does not match the J2EE level of the project being creation
J2EEImportWizardPage1.EAR_project=EAR project:
J2EEImportWizardPage1.The_file_does_not_exist=The file does not exist.
NewJ2EEProjectCreationPage.Project_name=Project name:
NewJ2EEProjectCreationPage.Project_location=Project location:
NewJ2EEProjectCreationPage.EAR_project=EAR project:
Proj_EAR_Proj_Name_Cannot_Be_Same_UI_=Project and EAR project names cannot be same
Enable_Label_UI_=Enable server targeting support
Disable_Label_UI_=Disable server targeting support
Change_Module_Server_Target_Dialog_Message_UI_=EAR target server: "{0}" \nModule target server: "{1}"\n\nChange module target server to EAR target server?
Change_EAR_Server_Target_Dialog_Message_UI_=Selected module target server: "{0}"\nExisting EAR target server: "{1}" \n\nChange EAR target server to selected module target server?
CREATE_EJB_CLIENT_JAR_UI_=Create EJB client JAR projects for new EJB projects
Change_Server_Target_Dialog_Title_UI_=Change Target Server
Modify_Server_Target_Title_UI_=Modify Target Server
Server_Target_UI_=Target server:
Server_Target_Desc_UI_=Select a target server for the \"{0}\" project.
Server_Target_Checkbox_Label_UI_=Update EAR modules and utility projects to the selected target server
Server_Target_Change_Desc_UI_=The target server "{0}" of the existing EAR project "{1}" is incompatible \nwith the module project being created. \n\nDo you want to change the target server of the EAR project to the module target server:\n\n{2} ?
EJB_CLIENT_RADIO_UI_=References to EJB JARs with EJB Client JARs
USE_EJB_SERVER_JARs_UI_=Use EJB JARs
USE_EJB_CLIENT_JARs_UI_=Use EJB client JARs
USE_BOTH_UI_=Allow both
EJB_CLIENT_JARS_UI_=EJB Client JARs
JAR_DEPS_CLIENT_UI_=Java JAR Dependencies for references to EJB JARs:
USE_EJB_JAR_UI=Use EJB JAR
USE_EJB_JAR_DESC_UI=All referencing modules and JARs depend on the EJB JAR.  This is compatible with WebSphere 4.x, 5.x, and most application servers.
USE_EJB_CLIENT_JAR_UI_=Use EJB Client JAR, if it exists
USE_EJB_CLIENT_JAR_DESC_UI=All referencing modules and JARs depend on the EJB client JAR.  This is best practice, but is only compatibile with WebSphere 5.1 and any application servers that support EJB client JAR deployment.
NONE_SERVER_TARGET_STRING_UI_=No target server specified
Server_Invalid_For_Exisitng_EAR_UI_=Selected target server "{0}" is invalid for the existing EAR project "{1}"
Cannot_Set_Server_Target_UI_=Could not set server target\n\n
_UI_EJBLocalRef_localHome_feature=Local Home
_UI_EJBLocalRef_local_feature=Local
_UI_EJBLocalRef_type=Local Ref
_UI_QName_type=QName:
_UI_CompatibilityDescriptionGroup_description_feature=Description
_UI_CompatibilityDescriptionGroup_description_feature_desc=
_UI_CompatibilityDescriptionGroup_displayName_feature=Display name
_UI_CompatibilityDescriptionGroup_displayName_feature_desc=
_UI_CompatibilityDescriptionGroup_smallIcon_feature=Small icon
_UI_CompatibilityDescriptionGroup_smallIcon_feature_desc=
_UI_CompatibilityDescriptionGroup_largeIcon_feature=Large icon
_UI_CompatibilityDescriptionGroup_largeIcon_feature_desc=
MessageDestination_UI_=Message Destination
MessageDestinationRefItemProvider_UI_0=MessageDestRef
INCREMENTAL_DEPLOYMENT_LABEL=Perform Incremental Deployment
GROUP_DEPLOYMENT_LABEL=Deployment

_UI_QName_localPart_feature=Local Part
_UI_QName_localPart_feature_desc=The QName local part.
_UI_QName_namespaceURI_feature=Namespace URI
_UI_QName_namespaceURI_feature_desc=The QName namespace URI
Usage_UI_=Usage
The_usage_property_UI_=The usage property
_UI_ParamValue_description_feature=Description
_UI_ParamValue_name_feature=Name
_UI_ParamValue_value_feature=Value
_UI_ParamValue_type=Param

