###############################################################################
# Copyright (c) 2006, 2007 Oracle. 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:
#     Oracle - initial API and implementation
###############################################################################

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================
pluginName= Java Persistence API Tools - UI
providerName=Eclipse.org

JPA_PLATFORM="JPA Platform UI"

jpaNavigatorContent=JPA Content

jpaWizardCategoryName = JPA
newJpaProjectWizardName = JPA Project
newJpaProjectWizardDesc = Create a JPA project

jpaMenuName = JPA Tools
generateEntities = Generate Entities...
generateDDL = Generate DDL...
synchronizeClasses = Synchronize Classes
addPersistentClass = Add persistent class ...
removePersistentClass = Remove persistent class
addPersistentAttributeToXml = Add persistent attribute to XML
addPersistentAttributeToXmlAndMap = Add persistent attribute to XML ...
removePersistentAttributeFromXml = Remove persistent attribute from XML

jpaPreferencePage = JPA

jpaProjectPropertiesPage = JPA

jpaPerspective = JPA Development
jpaDetails = JPA Details
jpaStructure = JPA Structure

JpaProposalCategory = JPA Proposals
