###############################################################################
# Copyright (c) 2010, 2011 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 - JAXB UI
providerName=Eclipse Web Tools Platform

jaxbPlatformUi = JAXB Platform UI

jaxbWizardCategoryName = JAXB

generateSchemaFromClassesName = Schema from JAXB Classes
generateSchemaFromClassesDesc = Generate a Schema from JAXB classes

generateClassesFromSchemaName = JAXB Classes from Schema
generateClassesFromSchemaDesc = Generate JAXB Classes from a Schema

newJaxbProjectWizardName = JAXB Project
newJaxbProjectWizardDesc = Create a JAXB project

jaxbCompletionProposals = JAXB Proposals
jaxbCompletionProposalComputer = JAXB Proposal Computer

jaxbNavigatorContent=JAXB Content
generateJaxbClasses = JAXB Classes...

jaxbNode = JAXB
jaxbSchemas = Schemas
