###############################################################################
# Copyright (c) 2012, 2015 JKM Software, David Carlson, and others.
# 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:
#     Sean Muir, JKM Software - initial API and implementation
#     David Carlson, Clinical Cloud Solutions, LLC - Refactor to separate MDHT UI
#     
###############################################################################

featureName = DITA Publishing UI
featureProvider = Eclipse Modeling Project

# "updateSiteName" property - label for the update site
updateSiteName=Eclipse MDHT Project

# "description" property - description of the feature
description=Publishing with DITA-OT transformation of DITA to several output formats.

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2012, 2015 JKM Software and others.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Public License v1.0\n\
which accompanies this distribution, and is available at\n\
http://www.eclipse.org/legal/epl-v10.html\n\
\n\
Contributors:\n\
     Sean Muir, JKM Software - initial API and implementation\n\
     David Carlson, Clinical Cloud Solutions, LLC - Refactor to separate MDHT UI\n
################ end of copyright property ####################################

license=license.html

# "licenseURL" property - URL of the "Feature License"
# do not translate value - just change to point to a locale-specific HTML page
licenseURL=license.html
