#
# 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
