<?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">"Multivide"</string>
    <string name="storage_description" msgid="4081716890357580107">"Lokālā krātuve"</string>
    <string name="app_label" msgid="9035307001052716210">"Multivides krātuve"</string>
    <string name="artist_label" msgid="8105600993099120273">"Izpildītājs"</string>
    <string name="ringtone_default" msgid="1744846699922263043">"Noklusējuma zvana signāls"</string>
    <string name="notification_sound_default" msgid="6541609166469990135">"Paziņojuma noklusējuma skaņa"</string>
    <string name="alarm_sound_default" msgid="5488847775252870314">"Signāla noklusējuma skaņa"</string>
    <string name="root_images" msgid="5861633549189045666">"Attēli"</string>
    <string name="root_videos" msgid="8792703517064649453">"Video"</string>
    <string name="root_audio" msgid="3505830755201326018">"Audio"</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">"Pievienot zvana signālu"</string>
    <string name="add_alarm_text" msgid="2440919366091720815">"Pievienot signālu"</string>
    <string name="add_notification_text" msgid="5013822215567515665">"Pievienot paziņojumu"</string>
    <string name="delete_ringtone_text" msgid="2963662097583300181">"Dzēst"</string>
    <string name="unable_to_add_ringtone" msgid="6256097521165711269">"Nevar pievienot pielāgotu zvana signālu"</string>
    <string name="unable_to_delete_ringtone" msgid="2258180073859253495">"Nevar izdzēst pielāgotu zvana signālu"</string>
</resources>
