###############################################################################
# Copyright (c) 2005, 2007 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
###############################################################################
Up_1=&Up
Down_2=&Down
Select_All_3=Select &All
Deselect_All_4=D&eselect All
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.
An_internal_error_occurred_ERROR_=IWAE0010E An internal error occurred:
Project_name__UI_=Project name:
EAR_Project_Name__UI__UI_=Enterprise application project name:
Available_dependent_JARs__UI_=Available dependent JARs:
Manifest_Class_Path__UI_=Manifest Class-Path (does not include contributions from classpath entries):
JAR_Module_UI_=JAR/Module
Project_UI_=Project
EAR_Modules=EAR Modules:
EAR_Modules_Desc=This property page lets you setup the module dependencies in an Enterprise Application.
J2EE_Modules=J2EE Modules
J2EE_Modules_Desc=This property page lets you add Manifest classpath dependencies to other J2EE modules or JARs contained within the same Enterprise Application. It also supports the selection of class folders whose contents will be added to the root of this module.
Web_Libraries=Web Libraries
Web_Libraries_Desc=This property page lets you add a Web Library dependency to utility projects, JAR files or classpath entries. Archive dependencies will be resolved into the WEB-INF/lib folder of the web module at deployment time. Class folder dependencies will be resolved into the WEB-INF/classes folder.
Web_Ref_Desc=This property page lets you specify module dependencies on classpath entries. Entries that reference archives will be bundled, along with the project, into the WEB-INF/lib folder of referencing web modules. The contents of class folder entries will be added to the root of this module.
EAR_Module_Dep_Error=J2EE Modules is not valid for EAR modules.
Unreferenced_Module_Error=Selected module is not referenced by any EAR or Dynamic Web modules.
Jar_Dep_One_Module_Error=Java Jar Dependencies is valid only for one module per flexible project.
Web_Lib_Error=Web library settings are only valid for Web modules.
REDIRECT_TEXT_EDITOR_UI_=REDIRECT_TEXT_EDITOR_UI_
Error_Checking_Project_Facets=Error checking project facets.
Error_Checking_Project_Facets=Error checking project facets.
WEB_LIB_LIST_DESCRIPTION=Select the utility project, JAR or classpath entry to add as a Web Library dependency
Dynamic_Web_Error=This property page is not valid for dynamic web projects.
No_Web_Reference_Error=Selected project must be referenced by at least one dynamic web project.

