#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 IBM Corporation 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 Corporation - initial implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR

featureName=Funzione di base EPF
providerName=Eclipse.org
description=Funzione di base EPF.
updateSiteName=Aggiornamenti funzione EPF
copyright=(c) Copyright Contributor Eclipse e altri 2000, 2008.  Tutti i diritti riservati.
licenseURL=license.html
licenseText=L'uso di questa funzione \u00e8 soggetto agli stessi termini e condizioni che regolano l'uso del prodotto che fornisce tale funzione.
