# NLS_ENCODING=UNICODE
#------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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

#START NON-TRANSLATABLE
################################################################################
# START NO TRANSLATION
################################################################################
preferences.general=AD Diagram
preferences.appearance=Appearance
preferences.printing=Printing
preferences.rulersAndGrid=Rulers & Grid
preferences.pathmaps=Path Maps

editorName=AD Diagram Editor
newWizardName=AD Diagram
newWizardDesc=Creates AD diagram.

initDiagramActionLabel=Initialize xmi diagram file
loadResourceActionLabel=Load Resource...

navigatorContentName=*.xmi diagram contents

metatype.name.Activity_79=Undefined
metatype.name.ActivityFinalNode_1001=ActivityFinalNode
metatype.name.MergeNode_1002=MergeNode
metatype.name.ForkNode_1003=ForkNode
metatype.name.InitialNode_1004=InitialNode
metatype.name.DecisionNode_1005=DecisionNode
metatype.name.JoinNode_1006=JoinNode
metatype.name.StructuredActivityNode_1007=StructuredActivityNode
metatype.name.ActivityPartition_1008=ActivityPartition
metatype.name.ActivityParameterNode_1009=ActivityParameterNode
metatype.name.StructuredActivityNode_1010=StructuredActivityNode
metatype.name.StructuredActivityNode_1011=StructuredActivityNode
metatype.name.ActivityParameterNode_1012=ActivityParameterNode
metatype.name.ActivityPartition_2001=ActivityPartition
metatype.name.ControlFlow_3001=ControlFlow
################################################################################
# END NO TRANSLATION
################################################################################
#END NON-TRANSLATABLE

pluginName=Diagramma attivit\u00e0 EPF
providerName=Eclipse.org

#Needs Translation
open_add_text=Apri diagramma dettagli attivit\u00e0
element_type_activity_partition=Partizione attivit\u00e0
element_type_end_node=Nodo finale
element_type_merge_node=Fusione nodo
element_type_fork_node=Esegui fork del nodo
element_type_start_node=Nodo iniziale
element_type_decision_node=Nodo di decisione
element_type_join_node=Unione nodo
element_type_activity=Attivit\u00e0
element_type_phase=Fase
element_type_iteration=Iterazione
element_type_task_descriptor=Descrittore di operazioni
element_type_milestone=Punto cardine
element_type_control_flow=Flusso di controllo

preferences.connections=Connessioni


