<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 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="uid_label" msgid="8421971615411294156">"Medien"</string>
    <string name="storage_description" msgid="4081716890357580107">"Lokaler Speicher"</string>
    <string name="app_label" msgid="9035307001052716210">"Medienspeicher"</string>
    <string name="artist_label" msgid="8105600993099120273">"Interpret"</string>
    <string name="ringtone_default" msgid="1744846699922263043">"Standard-Klingelton"</string>
    <string name="notification_sound_default" msgid="6541609166469990135">"Standard-Benachrichtigungston"</string>
    <string name="alarm_sound_default" msgid="5488847775252870314">"Standard-Weckton"</string>
    <string name="root_images" msgid="5861633549189045666">"Bilder"</string>
    <string name="root_videos" msgid="8792703517064649453">"Videos"</string>
    <string name="root_audio" msgid="3505830755201326018">"Audio"</string>
    <string name="permission_required" msgid="2444058206532822316">"Für die Arbeit mit diesem Medienelement ist eine Berechtigung erforderlich."</string>
    <string name="permission_audio" msgid="344061911159388398">"Darf "<b>"<xliff:g id="APP_NAME">^1</xliff:g>"</b>" diese Musikdatei ändern oder löschen?"</string>
    <string name="permission_video" msgid="8188037202573267740">"Darf "<b>"<xliff:g id="APP_NAME">^1</xliff:g>"</b>" dieses Video ändern oder löschen?"</string>
    <string name="permission_images" msgid="6711726334380945124">"Darf "<b>"<xliff:g id="APP_NAME">^1</xliff:g>"</b>" dieses Bild ändern oder löschen?"</string>
    <string name="grant_dialog_button_allow" msgid="1644287024501033471">"Zulassen"</string>
    <string name="grant_dialog_button_deny" msgid="6190589471415815741">"Ablehnen"</string>
    <string name="sound_name_awaken" msgid="5266892392848526147">"Awaken"</string>
    <string name="sound_name_bounce" msgid="8771447635446665231">"Bounce"</string>
    <string name="sound_name_drip" msgid="1744684469020662152">"Drip"</string>
    <string name="sound_name_gallop" msgid="2664454314532060876">"Gallop"</string>
    <string name="sound_name_nudge" msgid="5445751598250698244">"Nudge"</string>
    <string name="sound_name_orbit" msgid="4623457897813255481">"Orbit"</string>
    <string name="sound_name_rise" msgid="2200258555031675806">"Rise"</string>
    <string name="sound_name_sway" msgid="348448316663085643">"Sway"</string>
    <string name="sound_name_wag" msgid="2730733083078126563">"Wag"</string>
    <string name="add_ringtone_text" msgid="8077717303037760418">"Klingelton hinzufügen"</string>
    <string name="add_alarm_text" msgid="2440919366091720815">"Wecker hinzufügen"</string>
    <string name="add_notification_text" msgid="5013822215567515665">"Benachrichtigung hinzufügen"</string>
    <string name="delete_ringtone_text" msgid="2963662097583300181">"Löschen"</string>
    <string name="unable_to_add_ringtone" msgid="6256097521165711269">"Benutzerdefinierter Klingelton konnte nicht hinzugefügt werden"</string>
    <string name="unable_to_delete_ringtone" msgid="2258180073859253495">"Benutzerdefinierter Klingelton konnte nicht gelöscht werden"</string>
</resources>
