###############################################################################
# Copyright (c) 2003, 2004 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

