<?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">"मीडिया"</string>
    <string name="storage_description" msgid="4081716890357580107">"स्थानीय जगह"</string>
    <string name="app_label" msgid="9035307001052716210">"मीडिया मेमोरी"</string>
    <string name="artist_label" msgid="8105600993099120273">"कलाकार"</string>
    <string name="ringtone_default" msgid="1744846699922263043">"डिफ़ॉल्ट रिंगटोन"</string>
    <string name="notification_sound_default" msgid="6541609166469990135">"डिफ़ॉल्ट नोटिफ़िकेशन ध्वनि"</string>
    <string name="alarm_sound_default" msgid="5488847775252870314">"डिफ़ॉल्ट अलार्म ध्वनि"</string>
    <string name="root_images" msgid="5861633549189045666">"चित्र"</string>
    <string name="root_videos" msgid="8792703517064649453">"वीडियो"</string>
    <string name="root_audio" msgid="3505830755201326018">"ऑडियो"</string>
    <string name="sound_name_awaken" msgid="5266892392848526147">"अवेकन"</string>
    <string name="sound_name_bounce" msgid="8771447635446665231">"बाउंस"</string>
    <string name="sound_name_drip" msgid="1744684469020662152">"ड्रिप"</string>
    <string name="sound_name_gallop" msgid="2664454314532060876">"गैलप"</string>
    <string name="sound_name_nudge" msgid="5445751598250698244">"नज"</string>
    <string name="sound_name_orbit" msgid="4623457897813255481">"ऑर्बिट"</string>
    <string name="sound_name_rise" msgid="2200258555031675806">"राइज़"</string>
    <string name="sound_name_sway" msgid="348448316663085643">"स्वे"</string>
    <string name="sound_name_wag" msgid="2730733083078126563">"वैग"</string>
    <string name="add_ringtone_text" msgid="8077717303037760418">"रिंगटोन जोड़ेंं"</string>
    <string name="delete_ringtone_text" msgid="2963662097583300181">"हटाएं"</string>
    <string name="unable_to_add_ringtone" msgid="6256097521165711269">"कस्टम रिंगटोन जोड़ने में असमर्थ"</string>
    <string name="unable_to_delete_ringtone" msgid="2258180073859253495">"कस्टम रिंगटोन हटाने में असमर्थ"</string>
</resources>
