###############################################################################
# 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= Dali Java Persistence Tools - UI
providerName=Eclipse Web Tools Platform

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