###############################################################################
# Copyright (c) 2006, 2008 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_UI="JPA Platform UI"

jpaNavigatorContent=JPA Content

jpaWizardCategoryName = JPA
newJpaProjectWizardName = JPA Project
newJpaProjectWizardDesc = Create a JPA project
newJpaEntityWizardName = Entity
newJpaEntityWizardDesc = Create a JPA Entity 
newJpaMappingFileWizardName = Mapping File
newJpaMappingFileWizardDesc = Create a JPA Mapping File
newJpaEntityFromTableWizardName = Entities From Tables
newJpaEntityFromTableWizardDesc = Create JPA Entities from database tables 

jpaStructureViewCommandCategory = JPA Structure View
addPersistentClass = Add Class ...
removePersistentClass = Remove Class
addPersistentAttributeToXml = Add Attribute to XML
addPersistentAttributeToXmlAndMap = Add Attribute to XML and Map ...
removePersistentAttributeFromXml = Remove Attribute from XML
mapAs=Map As
mapAsMnemonic=M
mapAsSpecifiedMappingParameterName=specified mapping key
mapAsDefaultMappingParameterName=default mapping key

jpaMenuName = JPA Tools
generateEntities = Generate Entities from Tables...
generateDDL = Generate Tables from Entities...
convertToJPAProject = Convert to JPA Project ...
synchronizeClasses = Synchronize Class List

persistenceEditor=Persistence XML Editor

jpaPreferencePage = Java Persistence

jpaProjectPropertiesPage = Java Persistence

jpaPerspective = JPA
jpaPerspectiveDescription = This perspective is designed to support Java Persistence (JPA) development. It offers a Project Explorer, JPA Details, JPA Structure and a Data Source Explorer.
jpaDetails = JPA Details
jpaStructure = JPA Structure
JpaProposalCategory = JPA Proposals

JptCreationActionSet.label = Jpt Creation
JptCreationActionSet.description = Jpt Creation Action Set

NewEntityAction.label = New Entity