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

# Message when no devices are connected
no_devices_are_connected=No Devices Are Connected

# Action Key Toolbar Tooltips ...
tbtt_tog_instances=Toggle ONOS instances panel
tbtt_tog_summary=Toggle ONOS summary panel
tbtt_tog_use_detail=Disable / enable details panel
tbtt_tog_host=Toggle host visibility
tbtt_tog_offline=Toggle offline visibility
tbtt_tog_porthi=Toggle port highlighting
tbtt_bad_links=Show bad links
tbtt_tog_map=Toggle background geo map
tbtt_sel_map=Select background geo map
tbtt_tog_sprite=Toggle sprite layer
tbtt_reset_loc=Reset node locations
tbtt_tog_oblique=Toggle oblique view (experimental)
tbtt_cyc_layers=Cycle node layers
tbtt_cyc_dev_labs=Cycle device labels
tbtt_cyc_host_labs=Cycle host labels
tbtt_cyc_grid_display=Cycle grid display
tbtt_unpin_node=Unpin node (hover mouse over)
tbtt_reset_zoom=Reset pan / zoom
tbtt_tog_toolbar=Toggle Toolbar
tbtt_eq_master=Equalize mastership roles

# Quick Help Gestures
qh_gest_click=Select the item and show details
qh_gest_shift_click=Toggle selection state
qh_gest_drag=Reposition (and pin) device / host
qh_gest_cmd_scroll=Zoom in / out
qh_gest_cmd_drag=Pan

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

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

fl_grid_display_hide=Hide grid
fl_grid_display_1000=Show XY grid
fl_grid_display_geo=Show Geo grid
fl_grid_display_both=Show both grids

fl_offline_devices=Offline Devices
fl_bad_links=Bad Links
fl_reset_node_locations=Reset Node Locations
fl_unpinned_floating_nodes=Unpinned floating nodes
fl_pinned_floating_nodes=Pinned floating nodes

fl_layer_all=All Layers Shown
fl_layer_pkt=Packet Layer Shown
fl_layer_opt=Optical Layer Shown

fl_panel_instances=Instances Panel
fl_panel_summary=Summary Panel
fl_panel_details=Details Panel

fl_port_highlighting=Port Highlighting

fl_oblique_view=Oblique View
fl_normal_view=Normal View

fl_monitoring_canceled=Monitoring Canceled
fl_selecting_intent=Selecting Intent

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

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

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

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

# Custom Panel Labels / Values
lp_label_friendly=Friendly

lp_label_a_type=A type
lp_label_a_id=A id
lp_label_a_friendly=A name
lp_label_a_port=A port

lp_label_b_type=B type
lp_label_b_id=B id
lp_label_b_friendly=B name
lp_label_b_port=B port

lp_label_a2b=A to B
lp_label_b2a=B to A

lp_value_no_link=[no link]

