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

# Message when no devices are connected
no_devices_are_connected=Cihaz bağlı değil

# Action Key Toolbar Tooltips ...
tbtt_tog_instances=ONOS örnekleri panelini aç / kapat
tbtt_tog_summary=ONOS özet panelini aç / kapat
tbtt_tog_use_detail=Detaylar panelini etkinleştir / iptal et
tbtt_tog_host=Uç birim görünürlüğünü aç / kapat
tbtt_tog_offline=Çevrimdışı görüntüleme özelliğini aç / kapat
tbtt_tog_porthi=Port vurgulamasını aç / kapat
tbtt_bad_links=Kötü bağlantıları göster
tbtt_tog_map=Arka plan haritasını aç / kapat
tbtt_sel_map=Arka plan coğrafi haritasını seç
tbtt_tog_sprite=Bağımsız katmanı aç / kapat
tbtt_reset_loc=Düğüm yerlerini sıfırla
tbtt_tog_oblique=Eğik görünümü aç / kapat (deneysel)
tbtt_cyc_layers=Cycle node layers
tbtt_cyc_dev_labs=Cycle device labels
tbtt_cyc_host_labs=Cycle host labels
tbtt_unpin_node=Düğümdeki sabitlemeyi kaldır (fare ile üzerine gelin)
tbtt_reset_zoom=Kaydırma / Yakınlaştırmayı Sıfırla
tbtt_tog_toolbar=Araç Çubuğunu Aç / Kapat
tbtt_eq_master=Ustalık rollerini eşitle

# Quick Help Gestures
qh_gest_click=Öğeyi seç ve ayrıntıları göster
qh_gest_shift_click=Seçim durumunu aç / kapat
qh_gest_drag=Cihazı / uç birimi yeniden konumlandır (ve sabitle)
qh_gest_cmd_scroll=Yakınlaştır / Uzaklaştır
qh_gest_cmd_drag=Pan

# Flash Messages
fl_background_map=arkaplan haritası
fl_sprite_layer=bağımsız katman
fl_pan_zoom_reset=Kaydırma / Yakınlaştırmayı Sıfırla
fl_eq_masters=Ustalık rolleri eşitleniyor

fl_device_labels_hide=Cihaz etiketlerini sakla
fl_device_labels_show_friendly=Kullanışlı cihaz etiketlerini göster
fl_device_labels_show_id=Cihaz ID etiketlerini göster
fl_host_labels_show_friendly=Kullanışlı uç birim etiketlerini göster
fl_host_labels_show_ip=Uç birim IP adreslerini göster
fl_host_labels_show_mac=Uç birim MAC dreslerini göster

fl_offline_devices=Çevrimdışı Cihazlar
fl_bad_links=Kötü Bağlantılar
fl_reset_node_locations=Düğüm Yerlerini Sıfırla

fl_layer_all=Tüm Katmanlar Gösterildi
fl_layer_pkt=Paket Katmanı Gösterildi
fl_layer_opt=Optik Katman Gösterildi

fl_panel_instances=Örnekler Paneli
fl_panel_summary=Özet Paneli
fl_panel_details=Detaylar Paneli

fl_port_highlighting=Port Vurgulaması

fl_oblique_view=Eğik Görünüm
fl_normal_view=Normal Görünüm

fl_monitoring_canceled=İzleme İptal Edildi
fl_selecting_intent=Niyet-bazlı Akış Seçimi

# Core Overlays
ov_tt_protected_intents=Korunmuş Niyet Katmanı
ov_tt_traffic=Bindirmeli Trafik
ov_tt_none=Bindirme Yok

# Traffic Overlay
tr_btn_create_h2h_flow=Uç birimden Uç birime Akış Oluştur
tr_btn_create_msrc_flow=Çok-kaynaklı Akış Oluştur
tr_btn_show_device_flows=Cihaz Akışlarını Göster
tr_btn_show_related_traffic=İlgili Trafiği Göster
tr_btn_cancel_monitoring=Trafik İzlemeyi İptal Et
tr_btn_monitor_all=Tüm Trafiği İzle
tr_btn_show_dev_link_flows=Cihaz bağlantı Akışlarını Göster
tr_btn_show_all_rel_intents=İlgili bütün niyet-bazlı akışları göster
tr_btn_show_prev_rel_intent=Önceki niyet-bazlı akışları göster
tr_btn_show_next_rel_intent=Sonraki niyet-bazlı akışları göster
tr_btn_monitor_sel_intent=Seçili niyet-bazlı akış için trafiği monitör et
tr_fl_fstats_bytes=Akış İstatistikleri (byte)
tr_fl_pstats_bits=Port İstatistikleri (bit / saniye)
tr_fl_pstats_pkts=Port İstatistikleri (paket / saniye)
tr_fl_dev_flows=Cihaz Akışları
tr_fl_rel_paths=İlgili Rotalar
tr_fl_prev_rel_int=Önceki ilgili niyet-bazlı akış
tr_fl_next_rel_int=Sonraki ilgili niyet-bazlı akış
tr_fl_traf_on_path=Seçilen Rotadaki Trafik
tr_fl_h2h_flow_added=Uç birimden Uç birime Akış Eklendi
tr_fl_multisrc_flow=Çoklu-kaynaklı Akış

# Button tooltips
btn_show_view_device=Cihaz Görünümünü Aç
btn_show_view_flow=Bu Cihaz için Akış Gösterimini Aç
btn_show_view_port=Bu Cihaz için Port Gösterimini Aç
btn_show_view_group=Bu Cihaz için Grup Gösterimini Aç
btn_show_view_meter=Bu Cihaz için Meter Gösterimini Aç

# Panel Titles
title_select_map=Harita Seç
title_panel_summary=ONOS Özeti
title_selected_items=Seçili Maddeler
title_edge_link=Uç Bağlantı
title_infra_link=Altyapı Bağlantısı

# Custom Panel Labels / Values
lp_label_friendly=İsim

lp_label_a_type=A tipi
lp_label_a_id=A id
lp_label_a_friendly=A ismi
lp_label_a_port=A portu

lp_label_b_type=B tipi
lp_label_b_id=B id
lp_label_b_friendly=B ismi
lp_label_b_port=B portu

lp_label_a2b=A'dan B'ye
lp_label_b2a=B'den A'ya

lp_value_no_link=[link yok]

