<?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">"Hapësira ruajtëse lokale"</string>
    <string name="app_label" msgid="9035307001052716210">"Hapësira ruajtëse e medias"</string>
    <string name="artist_label" msgid="8105600993099120273">"Artisti"</string>
    <string name="ringtone_default" msgid="1744846699922263043">"Zilja e parazgjedhur"</string>
    <string name="notification_sound_default" msgid="6541609166469990135">"Tingulli i parazgjedhur i njoftimit"</string>
    <string name="alarm_sound_default" msgid="5488847775252870314">"Tingulli i parazgjedhur i alarmit"</string>
    <string name="root_images" msgid="5861633549189045666">"Fotografitë"</string>
    <string name="root_videos" msgid="8792703517064649453">"Videot"</string>
    <string name="root_audio" msgid="3505830755201326018">"Audioja"</string>
    <string name="sound_name_awaken" msgid="5266892392848526147">"Zgjim"</string>
    <string name="sound_name_bounce" msgid="8771447635446665231">"Kërcim"</string>
    <string name="sound_name_drip" msgid="1744684469020662152">"Pikim"</string>
    <string name="sound_name_gallop" msgid="2664454314532060876">"Galop"</string>
    <string name="sound_name_nudge" msgid="5445751598250698244">"Shtytje"</string>
    <string name="sound_name_orbit" msgid="4623457897813255481">"Orbitë"</string>
    <string name="sound_name_rise" msgid="2200258555031675806">"Ngritje"</string>
    <string name="sound_name_sway" msgid="348448316663085643">"Lëkundje"</string>
    <string name="sound_name_wag" msgid="2730733083078126563">"Tundje"</string>
    <string name="add_ringtone_text" msgid="8077717303037760418">"Shto zile"</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">"Fshi"</string>
    <string name="unable_to_add_ringtone" msgid="6256097521165711269">"Nuk mund të shtojë ton zileje të personalizuar"</string>
    <string name="unable_to_delete_ringtone" msgid="2258180073859253495">"Nuk mund të fshijë ton zileje të personalizuar"</string>
</resources>
