<?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">"Media"</string>
    <string name="storage_description" msgid="4081716890357580107">"Storan setempat"</string>
    <string name="app_label" msgid="9035307001052716210">"Storan Media"</string>
    <string name="artist_label" msgid="8105600993099120273">"Artis"</string>
    <string name="ringtone_default" msgid="1744846699922263043">"Nada dering lalai"</string>
    <string name="notification_sound_default" msgid="6541609166469990135">"Bunyi pemberitahuan lalai"</string>
    <string name="alarm_sound_default" msgid="5488847775252870314">"Bunyi penggera lalai"</string>
    <string name="root_images" msgid="5861633549189045666">"Imej"</string>
    <string name="root_videos" msgid="8792703517064649453">"Video"</string>
    <string name="root_audio" msgid="3505830755201326018">"Audio"</string>
    <string name="sound_name_awaken" msgid="5266892392848526147">"Terjaga"</string>
    <string name="sound_name_bounce" msgid="8771447635446665231">"Lantunan"</string>
    <string name="sound_name_drip" msgid="1744684469020662152">"Titis"</string>
    <string name="sound_name_gallop" msgid="2664454314532060876">"Derap"</string>
    <string name="sound_name_nudge" msgid="5445751598250698244">"Sigung"</string>
    <string name="sound_name_orbit" msgid="4623457897813255481">"Orbit"</string>
    <string name="sound_name_rise" msgid="2200258555031675806">"Bangkit"</string>
    <string name="sound_name_sway" msgid="348448316663085643">"Lenggok"</string>
    <string name="sound_name_wag" msgid="2730733083078126563">"Goyang"</string>
    <string name="add_ringtone_text" msgid="8077717303037760418">"Tambah nada dering"</string>
    <string name="add_alarm_text" msgid="2440919366091720815">"Tambah penggera"</string>
    <string name="add_notification_text" msgid="5013822215567515665">"Tambah pemberitahuan"</string>
    <string name="delete_ringtone_text" msgid="2963662097583300181">"Padam"</string>
    <string name="unable_to_add_ringtone" msgid="6256097521165711269">"Tidak dapat menambah nada dering tersuai"</string>
    <string name="unable_to_delete_ringtone" msgid="2258180073859253495">"Tidak dapat memadamkan nada dering tersuai"</string>
</resources>
