<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
Copyright (C) 2014-2016 The CyanogenMod Project

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of The Linux Foundation nor the names of its
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="setp_option_name">Schrëtt</string>
    <string name="step_option_desc">Vir- an Zréckspull-Schrëtter upassen</string>
    <string name="setp_option_three_second">3 Sekonnen</string>
    <string name="setp_option_six_second">6 Sekonnen</string>
    <string name="loop">"Widderhuelen"</string>
    <string name="single">"Eenzel"</string>
    <string name="stereo">"Stereo"</string>
    <string name="speaker_on">Lautsprecher UN</string>
    <string name="speaker_off">Lautsprecher AUS</string>
    <string name="speaker_need_headset">Schléis Kopfhörer u fir dës Funktioun ze benotzen.</string>
    <string name="single_track">"Eenzel Spur"</string>
    <string name="input_url">"URL aginn"</string>
    <string name="streaming_settings">"Streamingastellungen"</string>
    <string name="next">"Weider"</string>
    <string name="previous">"Zréck"</string>
    <string name="buffer_size">Tëschespäicher-Gréisst</string>
    <string name="apn">Preferéierten APN</string>
    <string name="rtp_min_port">Min. Port</string>
    <string name="rtp_max_port">Max. Port</string>
    <string name="set_rtp_min_port">Min. Port festleeën</string>
    <string name="set_rtp_max_port">Max. Port festleeën</string>
    <string name="set_buffer_size">Tëschespäichergréisst definéieren</string>
    <string name="set_apn">Preferéierten APN auswielen</string>
    <string name="setting">Astellungen</string>
    <string name="server_timeout_title">"Zäitiwwerschreidung beim Server"</string>
    <string name="server_timeout_message">"Nees mam Server verbanne fir de Video ofzespillen?"</string>
    <string name="videoview_error_text_cannot_connect_retry">"Connectioun feelgeschloen, probéieren nees mat %1$d ze verbannen\u2026"</string>
    <string name="media_controller_live">Live</string>
    <string name="media_controller_playing">Gëtt ofgespillt</string>
    <string name="media_controller_connecting">Connectéieren\u2026</string>
    <string name="bookmark_add">"Lieszeechen dobäisetzen"</string>
    <string name="bookmark_display">"Lieszeechen uweisen"</string>
    <string name="bookmark_empty">"Keng Lieszeechen"</string>
    <string name="bookmark_exist">"Lieszeechen existéiert schonn"</string>
    <string name="bookmark_add_success">"Lieszeechen dobäigesat"</string>
    <string name="bookmark_list">"Lieszeechen"</string>
    <string name="bookmark_title">"Titel"</string>
    <string name="bookmark_location">"Standuert"</string>
    <string name="delete_all">"All läschen"</string>
    <string name="default_title">"Standardtitel"</string>
    <string name="more_image">Méi Biller</string>
    <string name="mute_nosupport">Kann net roueg schalten: Video net ënnerstëtzt</string>
    <string name="map_activity_not_found_err">Et ass keng Kaarten-App installéiert fir d\'Positioun unzeweisen.</string>
    <string name="fail_trim">Dëse Video ka leider net geschnidde ginn</string>
    <string name="drm_license_info">DRM-Lizenzinformatiounen</string>
</resources>
