###############################################################################
# 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
###############################################################################
Creating__UI_=Creating:
Error_creating_an_EAR_proj_UI_=Error creating an Enterprise Application project.
JdkJarFileDoesNotExist_UI=The file {0} does not exist.
APP_PROJECT_ERROR_EXC_=IWAE0001E An error occurred accessing the Enterprise Application project.
UNKNOWN_UI_=??
Creating_Java_Project_UI_=Creating Java Project
Errors_occurred_deleting_module_dependencies_UI_=Errors occurred deleting module dependencies.
Can_not_remove_module_dependency_from_project_UI_=Can not remove module dependency from project {0} because the project is binary.
Errors_occurred_renaming_module_dependencies_UI_=Errors occurred renaming module dependencies.
Can_not_rename_module_dependency_from_project_UI_=Can not rename module dependency from project {0} because the project is binary.

J2EE_PROJECT_MIGRATION_TITLE_UI_=J2EE Project Migration
ENTERPRISE_APPLICATIONS_UI_=Enterprise Applications
WIZ_BAN_DESC_UI_=Select the {0} projects to be migrated.  If needed, the project structures will be migrated.
ENTERPRISE_APP_PROJECTS_UI_=Enterprise application projects:
MIGRATE_J2EE_SPEC_UI_=Migrate project from version level Java EE 1.2 to Java EE 1.3
MIGRATE_EJB_SPEC_UI_=Migrate project from version level EJB 1.1 to EJB 2.0
MIGRATE_MODULE_PROJECTS_UI_=Migrate module projects
APPLICATION_CLIENTS_UI_=Application Clients
APPLICATION_CLIENT_PROJECTS_UI_=Application client projects:
ENTERPRISE_BEANS_BAN_UI_=Enterprise Beans
EJB_PROJECTS_UI_=EJB projects:
ADD_LOCAL_CLIENT_VIEWS_CHECK_UI_=Add local client views
MIGRATE_CMP_BEANS_UI_=Migrate CMP 1.1 beans to CMP 2.0 beans
ADD_LOCAL_CLIENT_VIEWS_BAN_UI_=Add Local Client Views
SELECT_EJB_CLIENT_VIEWS_UI_=Select the enterprise beans that will have local client views added.
ENTERPRISE_BEANS_LIST_UI_=Enterprise beans:
DELETE_REM_CLIENT_VIEWS_UI_=Delete remote client views
LOCAL_CLIENT_VIEW_SCHEME_UI_=Local client view naming scheme:
REUSE_DELETED_CLIENT_VIEW_NAME_UI_=Reuse the deleted remote client view name
SPECIFY_SUFFIX_UI_=Specify suffix:
SUFFIX_EXAMPLE_UI_=(For example, enterprise bean \'foo\' will have local client views named: \'fooLocal\' and \'fooLocalHome\'.)
MIGRATION_SUCCESS_REPORT_UI_=Migration finished successfully.
MIGRATION_WARNINGS_REPORT_UI_=Migration finished with warnings; see log files for details.
MIGRATION_ERRORS_REPORT_UI_=Migration finished with errors; see log files for details.
PROJECT_STRUCTURE_SUCCESS_UI_=Project structure migration successful: {0}.
PROJECT_STRUCTURE_FAILED_UI_=Project structure migration failed: {0}.
PROJECT_NOT_NEED_MIGRATION_UI_=Project structure did not need migration: {0}.
J2EE_VERSION_SUCCESS_UI_=J2EE version level migration successful: {0}.
J2EE_VERSION_FAILED_UI_=J2EE version level migration failed: {0}.
J2EE_VERSION_NOT_NEED_MIGRATION_UI_=J2EE version level did not need migration: {0}.
LOCAL_CLIENT_ADD_SUCCESS_UI_=Local client views added successfully: {0}.
LOCAL_CLIENT_ADD_FAILED_UI_=Local client views failed on add: {0}.
LOCAL_CLIENT_VIEWS_EXIST_UI_=Local client views already exist: {0}.
REMOTE_CLIENT_DELETE_SUCCESS_UI_=Remote client views deleted successfully: {0}.
REMOTE_CLIENT_DELETE_FAILED_UI_=Remote client views failed on delete: {0}.
REMOTE_CLIENT_VIEWS_NOT_EXIST_UI_=Remote client views did not exist: {0}.
JAR_11_IMPORT_20_UI_=The 1.1 JAR is being imported into an EJB 2.0 module.  The deployment descriptor will be converted, but the CMP beans remain version 1.1.
CMP_11_IMPORT_20_UI_=The following CMP 1.1 beans are being imported into an EJB 2.0 module. The deployment descriptor will be converted, but the CMP beans remain version 1.1.
OLD_PROJECT_STRUCTURE_UI_=The J2EE project {0} has an old project structure, and should be migrated.
PROJECT_MUST_BE_SELECTED_UI_=A {0} project must be selected.
ENTERPRISE_APPLICATION_UI_=enterprise application
APPLICATION_CLIENT_UI_=application client
EJB_UI_=EJB
WEB_UI_=WEB
EJB_MUST_BE_SELECTED_UI_=An enterprise bean must be selected.
MIGRATE_UI_=Migrate...
MIGRATE_J2EE_PROJECTS_UI_=Migrate Java EE Projects...
OPEN_J2EE_MIGRATION_WIZARD_UI_=Open Java EE Migration Wizard...
MIGRATING_PROJECT_STRUCTURES_UI_=Migrating project structure...
MIGRATING_J2EE_VERSION_UI_=Migrating project Java EE version level...
ADDING_LOCAL_CLIENT_VIEWS_UI_=Adding local client views...
DELETING_REMOTE_CLIENT_VIEWS_UI_=Deleting remote client views...
MIGRATION_NOT_NEEDED_REPORT=Migration was not needed for the selected items.
MIGRATION_NOT_POSSIBLE_REPORT=Migration was not possible for the selected items.
SOURCE_FOLDER_RENAME_FAILED=Unable to rename the Java source folder {0}.
SOURCE_FOLDER_RENAME_SKIPPED=The Java source folders are not renamed when there is more than one source folder.
WEBCONTENT_FOLDER_RENAME_FAILED=Unable to rename the web content folder {0}.
WEBCONTENT_FOLDER_RENAME_SKIPPED=The web content folder {0} not renamed.
WEBPROJECT_VERSION_MIGRATE_FAILED=Unable to migrate the web project version.
ABS_PATHS_APP_EXT_REMOVED=Absolute paths were removed from the application extensions file in enterprise application project {0}.
PROJECT_REFERENCES_UPDATED=Project references were updated in enterprise application project {0}.
PROJECT_CLASSPATH_UPDATED=Project Java build path was updated for project {0}.
FAILED_MIGRATING_IMPORTED_CLASSES=Unable to migrate the imported_classes JAR file.  Exception: {0}
EXTRACTED_IMPORTED_CLASSES=Imported classes were extracted from file {0}.
IMPORTED_CLASSES_FILE_DELETED=Imported classes file {0} was deleted.
BACKEND_MIGRATION_FAILED=Unable to migrate the Map and Schema file structure in project {0}
BINARY_MIGRATION_FAILED=Unable to migrate binary project {0}.
COMPLETED_BACKEND_MIG=The backend (Map and Schema) meta-data of the {0} project migrated successfully.
NOT_NEEDED_DEPLOYMENT_DESC_MIG=The deployment descriptor was not found in the project {0}.
NOT_NEEDED_BACKEND_MIG=The old backend (Map and Schema) structure was not found in the project {0}.
MIGRATION_COMPLETE=Migration Complete
MIGRATION_ERRORS=Migration Errors
MIGRATION_NOT_NEEDED=Migration Not Needed
CONFIRMATION_TITLE=Confirm Migration
OPEN_EDITORS_TITLE=Open Editors
CONFIRM_MIGRATE_PROJECT_STRUCTURE=This will migrate the project structure for the selected items to the latest format.  Continue?
CONFIRM_MIGRATE_J2EE_13=This will migrate the project structure for the selected items if necessary, and migrate the Java EE version of the selected items from 1.2 to 1.3.  Continue?
INFORM_OPEN_EDITORS=Open editors exist in the workbench.  Please close all editors before running migration.
WEBCONTENT_LIBPATH_UPDATE_FAILED=Unable to remove JAR file from classpath.
FAILED_DEPLOY_DELETE=Failed deleting deploy code in {0} project.
COMPLETED_DEPLOY_DELETE=Completed delete of deploy code in {0} project.
FAILED_LOCAL_CLIENT_CREATE=Failed creating local client view for {0}.
COMPLETED_LOCAL_CLIENT_CREATE=Completed creation of a local client view for {0}.
COMPLETED_CMP20_CODEGEN=Completed CMP 2.0 code generation in {0} project.
LOCAL_CLIENT_NOT_NEEDED=A local client view was not created since one already exists for {0}.
INVALID_SELECTION_TITLE=Invalid Selection
INFORM_PROPER_SELECTION=Selection must be one enterprise application project or any combination of EJB, web, and application client module projects.
REQUIRED_CLIENT_VIEW_TITLE=Client View Required
CONFIRM_CLIENT_VIEW_REQUIRED=The following beans are required to have client views because of inheritance or relationship rules.  These beans will be automatically selected and client views will be generated.
FILES_OUT_OF_SYNC=Cannot migrate because some resources are out-of-sync with the file system in project {0}.  Refresh the project and try again.
DeleteModuleOperation_UI_0=No Projects to delete
ResourceReferenceDataModel_UI_0=Type must be indicated.
ResourceReferenceDataModel_UI_1=Authentication must be indicated.
ReferenceDataModel_UI_3=No Owner for the reference has been indicated.
ReferenceDataModel_UI_5=Reference name cannot be empty.
ReferenceDataModel_UI_6=Reference name already exists.
ServiceReferenceDataModel_ERROR_8=IWAE0041E A target Web Service must be selected.
EJBReferenceDataModel_UI_10=Selected target EJB does not have local interfaces.
EJBReferenceDataModel_UI_11=Selected target EJB does not have remote interfaces.
EJBReferenceDataModel_UI_12=Target bean must be selected.
PortComponentReferenceDataModel_ERROR_4=IWAE0042E Service Endpoint Interface must be indicated.
MessageDestReferenceDataModel_7=Type must be indicated.
MessageDestReferenceDataModel_8=Usage must be indicated.
MessageDestReferenceDataModel_9=Link must be unique within EAR.
ResourceEnvironmentReferenceDataModel_2=Type must be selected.
RenameModuleOperation_UI_0=No Projects to rename.
ServerTargetDataModel_UI_7=There are no available target servers.
ServerTargetDataModel_UI_8=A target server must be set.
ServerTargetDataModel_UI_9=Invalid target server selected.
InvalidCharsError=Invalid character #.
Remote_cannot_be_empty_UI_=Remote interface cannot be empty.
Home_cannot_be_empty_UI_=Home interface cannot be empty.
Local_home_cannot_be_empty_UI_=Local home interface cannot be empty.
Local_cannot_be_empty_UI_=Local interface cannot be empty.

USE_REMOTE_FOR_DIFFERENT_EAR=Best practice is to create 'remote' reference for an EJB if it's in different EAR.
USE_LOCAL_FOR_DIFFERENT_EAR=Best practice is to create 'local' reference for an EJB if its in same EAR.
TARGET_ALSO_EXIST_IN_SAME_EAR=The selected  EJB was detected in ''{0}'' EAR which contains the ''{1}'' module project . Did you mean to select the EJB from the ''{0}'' EAR?
APP_CLIENT_ONLY_HAVE_REMOTE=Application client module can only have remote references.
J2EE_1_2_ONLY_HAVE_REMOTE=J2EE 1.2 modules can only have remote references.
COMPONENT_ALREADYINEAR=The specified component name is already in the EAR.
VERSION_NOT_SUPPORTED=The selected runtime does not support the version of the archive. 
