###############################################################################
# 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 - EclipseLink Support - UI
providerName=Eclipse.org

eclipseLinkWizardCategoryName=EclipseLink
newEclipseLinkMappingFileWizardName=EclipseLink Mapping File
newEclipseLinkJpaMappingFileWizardDesc=Create an EclipseLink specific mapping file

newEclipseLink1_1MappingFileWizardName=EclipseLink 1.1 Mapping File
newEclipseLink1_1JpaMappingFileWizardDesc=Create an EclipseLink 1.1 specific mapping file