###############################################################################
# Copyright (c) 2006, 2009 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 - Core
providerName = Eclipse Web Tools Platform

JPA_PLATFORM=JPA Platform
JPA_RESOURCE_MODEL_PROVIDERS=JPA Resource Model Providers
JPA_PROBLEM_MARKER=JPA Problem Marker
JPA_FILE_CONTENT=JPA File Content

BASE_JPA_CONTENT = Base JPA Content
MAPPING_FILE_CONTENT = Mapping File Content
ORM_XML_CONTENT = ORM XML Content
PERSISTENCE_XML_CONTENT = Persistence XML Content
JAR_CONTENT = JAR Content

GENERIC_PLATFORM_LABEL=Generic

NO_OP_LIBRARY_PROVIDER_WARNING = Library configuration is disabled. The user may need to configure further classpath changes later.
NO_OP_LIBRARY_PROVIDER_MESSAGE = The JPA facet requires a JPA implementation library to be present on the project classpath. By disabling library configuration, the user takes on the responsibility of ensuring that the classpath is configured appropriately via alternate means.

JPA_FACET_LABEL=Java Persistence
JPA_FACET_DESCRIPTION=Adds support for writing persistent meta-data using Java Persistence Architecture.
JPA_PRESET_LABEL=Utility JPA project with Java 5.0
JPA_TEMPLATE_LABEL=JPA Project
JPA_VALIDATOR=JPA Validator
