#
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#

# Text that appears in the navigation panel
nav_item_topo=Topologia

# Message when no devices are connected
no_devices_are_connected=Nessuna Apparecchiatura Connessa

# Action Key Toolbar Tooltips ...
tbtt_tog_instances=Attiva il pannello delle istanze di ONOS
tbtt_tog_summary=Attiva il pannello riassuntivo di ONOS
tbtt_tog_use_detail=Diasattiva / Attiva il pannello dei dettagli
tbtt_tog_host=Visualizza gli host
tbtt_tog_offline=Visualizza le apparecchiature disconnesse
tbtt_tog_porthi=Evidenzia le porte
tbtt_bad_links=Mostra i link fallito
tbtt_tog_map=Attiva la mappa geografica sullo sfondo
tbtt_sel_map=Seleziona la mappa geografica
tbtt_tog_sprite=Attiva livelli aggiuntivi
tbtt_reset_loc=Riporta i nodi nella posizione originale
tbtt_tog_oblique=Attiva la visualizzazione obliqua (sperimentale)
tbtt_cyc_layers=Cicla fra i nodi attivi
tbtt_cyc_dev_labs=Cicla fra le etichette delle apparecchiature
tbtt_cyc_host_labs=Cicla fra le etichette degli host
tbtt_unpin_node=Sblocca un nodo (Passa il cursore sopra)
tbtt_reset_zoom=Azzera spostamento / zoom
tbtt_tog_toolbar=Attiva la barra degli strumenti
tbtt_eq_master=Pareggia la mastership dei nodi

# Quick Help Gestures
qh_gest_click=Seleziona l'oggetto e mostra i dettagli
qh_gest_shift_click=Attiva la possibilità di selezionare
qh_gest_drag=Riposiziona e blocca un'apparecchiatura o un host
qh_gest_cmd_scroll=Ingradisci più / meno
qh_gest_cmd_drag=Spostati lateralmente

# Flash Messages
fl_background_map=background map (it)
fl_sprite_layer=sprite layer (it)
fl_pan_zoom_reset=Pan and zoom reset (it)
fl_eq_masters=Equalizing master roles (it)

fl_device_labels_hide=Hide device labels (it)
fl_device_labels_show_friendly=Show friendly device labels (it)
fl_device_labels_show_id=Show device ID labels (it)
fl_host_labels_show_friendly=Show friendly host labels (it)
fl_host_labels_show_ip=Show host IP addresses (it)
fl_host_labels_show_mac=Show host MAC addresses (it)

fl_offline_devices=Offline Devices (it)
fl_bad_links=Bad Links (it)
fl_reset_node_locations=Reset Node Locations (it)

fl_layer_all=All Layers Shown (it)
fl_layer_pkt=Packet Layer Shown (it)
fl_layer_opt=Optical Layer Shown (it)

fl_panel_instances=Instances Panel (it)
fl_panel_summary=Summary Panel (it)
fl_panel_details=Details Panel (it)

fl_port_highlighting=Port Highlighting (it)

fl_oblique_view=Oblique View (it)
fl_normal_view=Normal View (it)

fl_monitoring_canceled=Monitoring Canceled (it)
fl_selecting_intent=Selecting Intent (it)

# Core Overlays
ov_tt_protected_intents=Protected Intents Overlay (it)
ov_tt_traffic=Traffic Overlay (it)
ov_tt_none=No Overlay (it)

# Traffic Overlay
tr_btn_create_h2h_flow=Create Host-to-Host Flow (it)
tr_btn_create_msrc_flow=Create Multi-Source Flow (it)
tr_btn_show_device_flows=Show Device Flows (it)
tr_btn_show_related_traffic=Show Related Traffic (it)
tr_btn_cancel_monitoring=Cancel traffic monitoring (it)
tr_btn_monitor_all=Monitor all traffic (it)
tr_btn_show_dev_link_flows=Show device link flows (it)
tr_btn_show_all_rel_intents=Show all related intents (it)
tr_btn_show_prev_rel_intent=Show previous related intent (it)
tr_btn_show_next_rel_intent=Show next related intent (it)
tr_btn_monitor_sel_intent=Monitor traffic of selected intent (it)
tr_fl_fstats_bytes=Flow Stats (bytes) (it)
tr_fl_pstats_bits=Port Stats (bits / second) (it)
tr_fl_pstats_pkts=Port Stats (packets / second) (it)
tr_fl_dev_flows=Device Flows (it)
tr_fl_rel_paths=Related Paths (it)
tr_fl_prev_rel_int=Previous related intent (it)
tr_fl_next_rel_int=Next related intent (it)
tr_fl_traf_on_path=Traffic on Selected Path (it)
tr_fl_h2h_flow_added=Host-to-Host flow added (it)
tr_fl_multisrc_flow=Multi-Source Flow (it)

# Button tooltips
btn_show_view_device=Show Device View (it)
btn_show_view_flow=Show Flow View for this Device (it)
btn_show_view_port=Show Port View for this Device (it)
btn_show_view_group=Show Group View for this Device (it)
btn_show_view_meter=Show Meter View for this Device (it)

# Panel Titles
title_select_map=Select Map (it)
title_panel_summary=ONOS Summary (it)
title_selected_items=Selected Items (it)
title_edge_link=Edge Link (it)
title_infra_link=Infrastructure Link (it)

# Custom Panel Labels / Values
lp_label_friendly=Friendly (it)

lp_label_a_type=A type (it)
lp_label_a_id=A id (it)
lp_label_a_friendly=A friendly (it)
lp_label_a_port=A port (it)

lp_label_b_type=B type (it)
lp_label_b_id=B id (it)
lp_label_b_friendly=B friendly (it)
lp_label_b_port=B port (it)

lp_label_a2b=A to B (it)
lp_label_b2a=B to A (it)

lp_value_no_link=[no link] (it)
