<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2016 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="app_name" msgid="963247385700831716">"Salvestusruumi haldur"</string>
    <string name="cancel" msgid="7021218262867558825">"Tühista"</string>
    <string name="storage_menu_free" msgid="1878247401436882778">"Vabasta ruumi"</string>
    <string name="deletion_helper_title" msgid="3526170325226275927">"Üksuste eemaldamine"</string>
    <string name="deletion_helper_app_summary" msgid="4904590040180275237">"<xliff:g id="DAYS">%1$d</xliff:g> päeva tagasi"</string>
    <!-- no translation found for deletion_helper_app_summary_item_size (3770886184921427886) -->
    <skip />
    <string name="deletion_helper_app_summary_never_used" msgid="2695210890063792461">"Pole viimase aasta jooksul kasutatud"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="8576377054665785558">"Viimane kasutusaeg on teadmata"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Vabasta <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="2602723121486729972">"Varundatud fotod ja videod"</string>
    <string name="deletion_helper_photos_age_summary" msgid="1820871709448371984">"Üle 30 päeva vanad"</string>
    <!-- no translation found for deletion_helper_photos_summary (3194825464552700889) -->
    <skip />
    <string name="deletion_helper_downloads_title" msgid="8002058095019254694">"Allalaadimised"</string>
    <!-- no translation found for deletion_helper_downloads_category_summary (8545989355108311347) -->
    <skip />
    <!-- no translation found for deletion_helper_downloads_summary_empty (3988054032360371887) -->
    <skip />
    <string name="deletion_helper_clear_dialog_title" msgid="9169670752655850967">"Ruumi vabastamine"</string>
    <string name="deletion_helper_clear_dialog_message" msgid="5196490478187120700">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> sisust eemaldatakse teie seadmest"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="863575755467985516">"Vabasta ruumi"</string>
    <string name="deletion_helper_upsell_title" msgid="8512037674466762017">"Kas hallata salvestusruumi automaatselt?"</string>
    <string name="deletion_helper_upsell_summary" msgid="2301597713694474407">"<xliff:g id="USED">%1$s</xliff:g> on nüüd vaba. Kas lubada salvestusruumi halduril automaatselt ruumi vabastada, eemaldades seadmest varundatud sisu?"</string>
    <string name="deletion_helper_upsell_cancel" msgid="7084167642850053889">"Ei, tänan"</string>
    <string name="deletion_helper_upsell_activate" msgid="7157360257760895976">"Lülita sisse"</string>
    <string name="deletion_helper_apps_group_title" msgid="2578309121350341258">"Harva kasutatavad rakendused"</string>
    <!-- no translation found for deletion_helper_apps_group_summary (360315517252452356) -->
    <skip />
    <string name="deletion_helper_automatic_title" msgid="4610119358490679299">"Automaatne"</string>
    <string name="deletion_helper_manual_title" msgid="3905192395039688529">"Käsitsi"</string>
    <string name="deletion_helper_preference_title" msgid="803484286872745892">"Kohe ruumi vabastamine"</string>
    <string name="automatic_storage_manager_service_label" msgid="648592272375278978">"Automaatne salvestusruumi haldusteenus"</string>
    <string name="automatic_storage_manager_notification_title" product="default" msgid="8480483265300964701">"Teie telefonis on vähe ruumi"</string>
    <string name="automatic_storage_manager_notification_title" product="tablet" msgid="3150907918531844467">"Tahvelarvutis hakkab ruum otsa saama"</string>
    <string name="automatic_storage_manager_notification_summary" msgid="2267399886362245822">"Lubage salvestusruumi halduril ruumi vabastada, eemaldades automaatselt vanad fotod ja videod, kui telefon hakkab taas täis saama."</string>
    <string name="automatic_storage_manager_cancel_button" msgid="1826365037494962803">"Ei, tänan"</string>
    <string name="automatic_storage_manager_activate_button" msgid="6257070263061898041">"Lülita sisse"</string>
    <string name="deletion_helper_photos_loading_title" msgid="2768067991066779772">"Varundatud fotod ja videod"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"Üksuste otsimine …"</string>
    <string name="deletion_helper_no_threshold" msgid="6943179204098250444">"Kuva kõik üksused"</string>
    <string name="deletion_helper_default_threshold" msgid="8410389370069021113">"Peida hiljutised üksused"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="686530413183529901">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> sisust eemaldatakse teie seadmest"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Teie salvestusruumi haldab nüüd salvestusruumi haldur"</string>
    <string name="empty_state_title" msgid="4033285438176545309">"Ei ole midagi eemaldada"</string>
    <string name="empty_state_review_items_link" msgid="8411186441239304545">"Vaadake üle hiljutised üksused"</string>
    <string name="empty_state_summary" msgid="8439893007424243790">"Eemaldamiseks ei ole ühtegi vanemat faili. Ruumi vabastamiseks eemaldage hiljutisi fotosid, videoid ja rakendusi."</string>
    <string name="app_requesting_space" msgid="857425181289960167">"Rakendus <xliff:g id="APP">%1$s</xliff:g> vajab <xliff:g id="CLEARABLE_BYTES">%2$s</xliff:g> ruumi"</string>
</resources>
