###############################################################################
# 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
###############################################################################
j2ee=J2EE
client.jar.file_ui_=App Client JAR file
client.export.description_ui_=Export an Application Client project into an Application Client JAR file
ear.file_ui_=EAR file
ear.import.description_ui_=Import an external EAR file into an Enterprise Application project
ear.export.description_ui_=Export an Enterprise Application project into an EAR file
ear.export.action.description_ui_=Export EAR File...
j2ee.category_ui_=J2EE
client.project_ui_=Application Client Project
ear.project_ui_=Enterprise Application Project
j2ee.actions.description_ui_=Actions for J2EE Development
create.enterprise.application_ui_=Create an Enterprise Application
create.client.module_ui_=Create an Application Client project
client.export.action.label_ui_=Export Application Client JAR...
jar.dependencies.props_ui_=Java JAR Dependencies
ejb.export.action.description_ui_=Export EJB JAR File...
ejb.client.jar.creation.action.description_ui_=Create EJB Client Jar
emptyEJBGroupFilter.name=Empty EJB groups
ejb.export.action.description_ui_=Export EJB JAR File...
utility_jar_import_wizard=J2EE Utility Jar
deploy_ui_=Deploy
Import_Classes=Import Class Files...
flexible.project_ui_=Flexible Java Project
new.flexible.project.description_ui_=Create a flexible Java project
ear_component_ui_=J2EE EAR Application
new.ear.component.description_ui_=Create a J2EE EAR module
appclient_component_ui_=J2EE Application Client Module
new.appclient.component.description_ui_=Create a J2EE application client module
Java_Component=Java Component
Java_Component.description=Create a Java Component