<?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">"Média"</string>
    <string name="storage_description" msgid="4081716890357580107">"Místní úložiště"</string>
    <string name="app_label" msgid="9035307001052716210">"Úložiště médií"</string>
    <string name="artist_label" msgid="8105600993099120273">"Interpret"</string>
    <string name="ringtone_default" msgid="1744846699922263043">"Výchozí vyzváněcí tón"</string>
    <string name="notification_sound_default" msgid="6541609166469990135">"Výchozí zvuk oznámení"</string>
    <string name="alarm_sound_default" msgid="5488847775252870314">"Výchozí zvuk budíku"</string>
    <string name="root_images" msgid="5861633549189045666">"Obrázky"</string>
    <string name="root_videos" msgid="8792703517064649453">"Videa"</string>
    <string name="root_audio" msgid="3505830755201326018">"Zvuk"</string>
    <string name="sound_name_awaken" msgid="5266892392848526147">"Probuzení"</string>
    <string name="sound_name_bounce" msgid="8771447635446665231">"Výskok"</string>
    <string name="sound_name_drip" msgid="1744684469020662152">"Infuze"</string>
    <string name="sound_name_gallop" msgid="2664454314532060876">"Poklus"</string>
    <string name="sound_name_nudge" msgid="5445751598250698244">"Povzbuzení"</string>
    <string name="sound_name_orbit" msgid="4623457897813255481">"Rozběh"</string>
    <string name="sound_name_rise" msgid="2200258555031675806">"Vzestup"</string>
    <string name="sound_name_sway" msgid="348448316663085643">"Rozhoupání"</string>
    <string name="sound_name_wag" msgid="2730733083078126563">"Pochod"</string>
    <string name="add_ringtone_text" msgid="8077717303037760418">"Přidat vyzváněcí tón"</string>
    <!-- no translation found for add_alarm_text (2440919366091720815) -->
    <skip />
    <!-- no translation found for add_notification_text (5013822215567515665) -->
    <skip />
    <string name="delete_ringtone_text" msgid="2963662097583300181">"Smazat"</string>
    <string name="unable_to_add_ringtone" msgid="6256097521165711269">"Vlastní vyzváněcí tón se nepodařilo přidat"</string>
    <string name="unable_to_delete_ringtone" msgid="2258180073859253495">"Vlastní vyzváněcí tón se nepodařilo smazat"</string>
</resources>
