<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2013 The Android Open Source Project

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

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="mr_system_route_name" msgid="5441529851481176817">"Sistem"</string>
    <string name="mr_user_route_category_name" msgid="7498112907524977311">"Cihazlar"</string>
    <string name="mr_button_content_description" msgid="3698378085901466129">"Yayın düğmesi"</string>
    <string name="mr_cast_button_disconnected" msgid="816305490427819240">"Yayınla düğmesi. Bağlantı kesildi"</string>
    <string name="mr_cast_button_connecting" msgid="2187642765091873834">"Yayınla düğmesi. Bağlanıyor"</string>
    <string name="mr_cast_button_connected" msgid="5088427771788648085">"Yayınla düğmesi. Bağlandı"</string>
    <string name="mr_chooser_title" msgid="414301941546135990">"Şuraya yayınla:"</string>
    <string name="mr_chooser_searching" msgid="6349900579507521956">"Cihazlar bulunuyor"</string>
    <string name="mr_controller_disconnect" msgid="1227264889412989580">"Bağlantıyı kes"</string>
    <string name="mr_controller_stop_casting" msgid="8857886794086583226">"Yayını durdur"</string>
    <string name="mr_controller_close_description" msgid="7333862312480583260">"Kapat"</string>
    <string name="mr_controller_play" msgid="683634565969987458">"Oynat"</string>
    <string name="mr_controller_pause" msgid="5451884435510905406">"Duraklat"</string>
    <string name="mr_controller_stop" msgid="735874641921425123">"Durdur"</string>
    <string name="mr_controller_expand_group" msgid="8062427022744266907">"Genişlet"</string>
    <string name="mr_controller_collapse_group" msgid="7924809056904240926">"Daralt"</string>
    <string name="mr_controller_album_art" msgid="6422801843540543585">"Albüm kapağı"</string>
    <string name="mr_controller_volume_slider" msgid="2361785992211841709">"Ses düzeyi kaydırma çubuğu"</string>
    <string name="mr_controller_no_media_selected" msgid="6547130360349182381">"Medya seçilmedi"</string>
    <string name="mr_controller_no_info_available" msgid="5585418471741142924">"Bilgi yok"</string>
    <string name="mr_controller_casting_screen" msgid="4868457957151124867">"Ekran yayınlanıyor"</string>
</resources>
