###############################################################################
# Copyright (c) 2006-2010 Los Alamos National Laboratory, 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:
#    IBM - initial API and implementation
###############################################################################
# features.properties
# contains externalized strings for feature.xml
# "%foo" in feature.xml corresponds to the key "foo" in this file
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# This file should be translated.

# "featureName" property - name of the feature
featureName=IBM XLF Compiler Support

# "providerName" property - name of the company that provides the feature
providerName=Eclipse PTP

# "updateSiteName" property - label for the update site
updateSiteName=Eclipse PTP Update Site

# "description" property - description of the feature
description=Error parser and managed build toolchain for the IBM XLF compiler

# copyright
copyright=\
Copyright (c) 2006-2010 Los Alamos National Laboratory, and others.\n\
All rights reserved.\n\
This program and the accompanying materials are made availablen\n\
under the terms of the Eclipse Public License v1.0 which\n\
accompanies this distribution and is available at\n\
http://www.eclipse.org/legal/epl-v10.html
