###############################################################################
# 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
###############################################################################
Could_not_find_root_object_ERROR_=IWAE0001E Could not find root object in resource: {0}
An_error_occurred_while_sa_ERROR_=IWAE0002E An error occurred while saving.
Cannot_run_J2EEUIWorkingCo_ERROR_=IWAE0003E Cannot run J2EEUIWorkingCopyManager operation because the Workspace tree is locked.
Unable_to_save_read_only_f_ERROR_=IWAE0004E Unable to save read-only file: {0}
The_following_resources_ne_UI_=The following resources need to be saved but are currently shared, do you want to save now?
Cannot_load_EJBFile_because_EJBEditModel_is_null_UI_=Cannot load EJBFile because EJBEditModel is null
WARNING_METAFOLDER_MISSING_UI_=WARNING_METAFOLDER_MISSING
Cannot_load_EJBFile_because_ejbNature_asEJBJarFile___returns_null_UI_=Cannot load EJBFile because ejbNature.asEJBJarFile() returns null
EJBProjectResources_getEJBJar_EJBEditModel__UI_=EJBProjectResources.getEJBJar(EJBEditModel)
Cannot_load_EJBJar_because_model_is_null_UI_=Cannot load EJBJar because model is null
Cannot_load_EJBFile_because_EJBNatureRuntime_is_null_UI_=Cannot load EJBFile because EJBNatureRuntime is null
WARNING_FILE_MISSING_UI_=WARNING_FILE_MISSING
CoreException_could_not_initialize_Web_Service_class_path_variables_ERROR_=IWAE0005E CoreException could not initialize Web Service class path variables
__Start_build_project_INFO_=IWAE0006I : Start build project
__Bad_builder_order_for_project_INFO_=IWAE0007I : Bad builder order for project
__No_imported_classes_folder__quitting_INFO_=IWAE0008I : No imported classes folder, quitting
__Full_first_build_INFO_=IWAE0009I : Full/first build
__Considering_delta_INFO_=IWAE0010I : Considering delta
__Delta_build_INFO_=IWAE0011I : Delta build
Minimizing_project_UI_=Minimizing project
No_library_folder_UI_=No library folder
Not_a_J2EE_project_UI_=Not a Java EE project
No_source_types_UI_=No source types
Some_source_types_have______in_their_name_ERROR_=IWAE0012E Some source types have \'$\' in their name
RAR_File=RAR File
Error_opening_archive_for_export_2=Error opening archive for export
Error_getting_project_nature_runtime_3=Error getting project nature runtime
Error_occurred_loading_ra_xml__4=Error occurred loading ra.xml:
Creating_Connector_Project_5=Creating Connector Project
Error_getting_project_nature_runtime_6=Error getting project nature runtime
Error_occurred_saving_the_manifest_7=Error occurred saving the manifest
_UI_ParamValue_type=Param:
J2EEModulePostImportHelper_0=WEB
J2EEModulePostImportHelper_1=EJB
J2EEModulePostImportHelper_2=ApplicationClient
J2EEModulePostImportHelper_3=Connector
J2EEDeployOperation_UI_0=Deploying selected modules
J2EEDeployOperation_UI_1=Fatal Exception occured
J2EEDeployOperation_UI_Null_Status=Deployed successfully.
J2EEDeployOperation_1_UI_=Deploying {0} Using {1}
J2EEDeployOperation_2_UI_=Deployment from {0} completed successfully
J2EEDeployOperation_3_UI_=Deployment from {0} had errors: {1} \r\n
J2EEDeployOperation_4_UI_=Deploying {0}
NESTED_JAVA_OUTPUT_ERROR=Nested Java output paths defined in .wtpmodules file are not allowed.


