#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

unknown_text=Sconosciuto 
# Error Reasons
emptyLibraryPathError_reason=Il percorso della libreria dei metodi \u00e8 vuoto.
missingLibraryFileError_reason=Il file del modello della libreria dei metodi manca.
unresolvedProxyError_reason=La libreria dei metodi selezionata contiene riferimenti ad elementi non risolti. Di solito, questo problema \u00e8 causato da file XMI che mancano o che sono stati spostati nella cartella delle librerie.\n\nChiudere questa finestra di dialogo e visualizzare la vista Problemi per identificare i riferimenti non risolti. Per evitare che la libreria si danneggi, si consiglia di risolvere questi riferimenti prima di apportare ulteriori modifiche alla libreria.

# Warning Messages
configClosureWarning_msg1=IUPL0007W: Uno o pi\u00f9 elementi child contengono riferimenti mancanti
configClosureWarning_msg2=IUPL0008W: Questo elemento dovrebbe essere selezionato per risolvere uno o pi\u00f9 elementi mancanti
configClosureWarning_msg3=IUPL0009W: Questo elemento fa riferimento a uno o pi\u00f9 elementi di un pacchetto non selezionato

# Error Messages
loadResourcesError_msg=IUPL0000E: La libreria dei metodi \u00e8 stata caricata, ma sono stati rilevati alcuni errori.
unsupportedGuidanceTypeError_msg=IUPL0001E: Questa guida non pu\u00f2 essere convertita in un altro tipo.
convertGuidanceError_msg=IUPL0002E: Questa guida non pu\u00f2 essere convertita nel tipo di destinazione.
saveConvertedGuidanceError_msg=IUPL0003E: La guida convertita ''{0}'' non pu\u00f2 essere salvata.

# Convert activity
convertActivityError_title=Errore durante la conversione del tipo di attivit\u00e0
convertActivityError_msg=IUPL0006E: Questa attivit\u00e0 non pu\u00f2 essere convertita nel tipo di destinazione.
saveConvertedActivityError_msg=IUPL0007E: L''attivit\u00e0 convertita ''{0}'' non pu\u00f2 essere salvata.

# Error Reasons
error_reason=IUPL0004E: Si \u00e8 verificato un errore. Fare clic su OK per ulteriori informazioni.
unsupportedGuidanceTypeError_reason=Non c''\u00e8 un tipo di guida compatibile per {0}.
invalidLibraryPathError_reason=Percorso della libreria non valido. Impossibile creare il file .project.
couldNotLockLibrary_reason=Impossibile bloccare la libreria.

# Progress Messages
copyingAttachmentsTask_name=Copia degli allegati in corso...

# Convert Guidance Dialog
convertGuidanceDialog_title=Converti tipo di guida
convertGuidanceDialog_text=Selezionare il tipo di guida di destinazione.

# Guidance type names for Convert Guidance Dialog - should be refactored into library.ui
checklist_text=Elenco di controllo
concept_text=Concetto
example_text=Esempio
guideline_text=Linea guida
estimate_text=Valutazione
estimatingMetric_text=Metrica di valutazione
estimationConsiderations_text=Considerazioni sulla valutazione
report_text=Report
template_text=Modello
supportingMaterial_text=Materiale di supporto
toolMentor_text=Guida al tool
whitepaper_text=Whitepaper
termDefinition_text=Definizione termine
practice_text=Procedura
reusableAsset_text=Risorsa riutilizzabile

#activity breakdown info strings
ActivityLayout_primaryTasks_text=Esegue come proprietario
ActivityLayout_additionalTasks_text=Esegue come aggiuntivo


# Convert Guidance Error Messages
convertGuidanceError_title=Errore durante la conversione del tipo di guida

# Load Resources Error Dialog
loadResourcesError_title=Errore durante l'apertura della libreria dei metodi
loadResourcesError_reason=Non \u00e8 stato possibile caricare alcune risorse della libreria.\n\nFare clic su Dettagli per esaminare gli errori e risolverli prima di apportare ulteriori modifiche alla libreria.

# Role Diagrams
roleDiagramPerforms_text=esegue
roleDiagramResponsibleFor_text=responsabile di

DefaultContentValidator_MSG0=Elemento a cui si fa riferimento: {0}
DefaultContentValidator_MSG1=Info: {0}
DefaultContentValidator_MSG4=Avviso: {0}
DefaultContentValidator_MSG7=Errore: {0}
DefaultContentValidator_MSG10=Elemento a cui si fa riferimento mancante {0}
DefaultContentValidator_MSG11=Impossibile trovare l''elemento per il guid {0}
DefaultContentValidator_MSG12=Il file ''{0}'' fa riferimento alla risorsa mancante ''{1}''
DefaultContentValidator_MSG15=File di risorse mancante ''{0}''
DefaultContentValidator_MSG17=Impossibile connettersi all''URL ''{0}''
DefaultContentValidator_MSG19=Impossibile connettersi all''URL ''{0}'': {1}
ImportExportUtil_MSG8=Impossibile trovare il file ''{0}''.
ImportExportUtil_MSG9=Impossibile creare la directory temp ''{0}''.
unknownGuidance_text=Sconosciuto 
CopyAttachmentsToNewLocation_log_noContentPath=CopyAttachmentsToNewLocation.HandleAttachmentsPlugin: no contentPath for {0}
LibraryModificationHelper_cannotUpdate=IUPL0006W: Impossibile aggiornare {0} {1}
warningDlg_title=Avviso
errorDlg_title=Errore
errorDlg_saveError=IUPL0005E: Si \u00e8 verificato un errore durante le modifiche al file ''{0}''

# activity diagram names
activityDiagramName=Diagramma attivit\u00e0: {0}
activityDetailDiagramName=Diagramma dettagli attivit\u00e0: {0}
wpDependencyDiagramName=Diagramma dipendenze prodotto di lavoro: {0}

################################################################################
# THE FOLLOWING PROPERTIES SHOULD NOT BE TRANSLATED!!!
################################################################################

# Role diagram fonts and layout
roleDiagramFont_name=Arial
roleDiagramFont_name_win32=Arial
roleDiagramFont_size=10
roleDiagramFont_size_win32=10
roleDiagram_xMargin=200
roleDiagram_xSpacing=70
roleDiagram_ySpacing=30

# localize the value based on locale.  for example, 
# for English, the value is ". "
#colon_with_space=: 
# for french, the value is " . ", you need to use a \ to preserve the leading space
#colon_with_space=\ : 
# for chinese, the colon should be double bytes
# Dont trim the spaces after the colon.
colon_with_space=: 
