<?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">"Memoria-kudeatzailea"</string>
    <string name="cancel" msgid="7021218262867558825">"Utzi"</string>
    <string name="storage_menu_free" msgid="1878247401436882778">"Egin tokia"</string>
    <string name="deletion_helper_title" msgid="3526170325226275927">"Kendu elementuak"</string>
    <string name="deletion_helper_app_summary" msgid="4904590040180275237">"Duela <xliff:g id="DAYS">%1$d</xliff:g> egun"</string>
    <!-- no translation found for deletion_helper_app_summary_item_size (3770886184921427886) -->
    <skip />
    <string name="deletion_helper_app_summary_never_used" msgid="2695210890063792461">"Ez da erabili azken urte honetan"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="8576377054665785558">"Ez dakigu ziur noiz erabili zen azkenekoz"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Ezabatu <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="2602723121486729972">"Babeskopiak dituzten argazki eta bideoak"</string>
    <string name="deletion_helper_photos_age_summary" msgid="1820871709448371984">"30 egunetik gorakoak"</string>
    <!-- no translation found for deletion_helper_photos_summary (3194825464552700889) -->
    <skip />
    <string name="deletion_helper_downloads_title" msgid="8002058095019254694">"Deskargak"</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">"Egin tokia"</string>
    <string name="deletion_helper_clear_dialog_message" msgid="5196490478187120700">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> hartzen dituen edukia kenduko da gailutik"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="863575755467985516">"Egin tokia"</string>
    <string name="deletion_helper_upsell_title" msgid="8512037674466762017">"Memoria automatikoki kudeatzea nahi duzu?"</string>
    <string name="deletion_helper_upsell_summary" msgid="2301597713694474407">"<xliff:g id="USED">%1$s</xliff:g> daude libre. Memoria-kudeatzaileak babeskopia duen edukia kentzea nahi duzu, automatikoki tokia egiteko?"</string>
    <string name="deletion_helper_upsell_cancel" msgid="7084167642850053889">"Ez, eskerrik asko"</string>
    <string name="deletion_helper_upsell_activate" msgid="7157360257760895976">"Aktibatu"</string>
    <string name="deletion_helper_apps_group_title" msgid="2578309121350341258">"Gutxitan erabiltzen diren aplikazioak"</string>
    <!-- no translation found for deletion_helper_apps_group_summary (360315517252452356) -->
    <skip />
    <string name="deletion_helper_automatic_title" msgid="4610119358490679299">"Automatikoa"</string>
    <string name="deletion_helper_manual_title" msgid="3905192395039688529">"Eskuzko ezarpenak"</string>
    <string name="deletion_helper_preference_title" msgid="803484286872745892">"Egin tokia"</string>
    <string name="automatic_storage_manager_service_label" msgid="648592272375278978">"Memoria automatikoki kudeatzeko zerbitzua"</string>
    <string name="automatic_storage_manager_notification_title" product="default" msgid="8480483265300964701">"Toki gutxi geratzen da libre telefonoan"</string>
    <string name="automatic_storage_manager_notification_title" product="tablet" msgid="3150907918531844467">"Toki gutxi geratzen zaizu libre tabletan"</string>
    <string name="automatic_storage_manager_notification_summary" msgid="2267399886362245822">"Telefonoa berriro betetzen hasten denean, utzi memoria-kudeatzaileari argazki eta bideo zaharrak automatikoki kentzen tokia egiteko."</string>
    <string name="automatic_storage_manager_cancel_button" msgid="1826365037494962803">"Ez, eskerrik asko"</string>
    <string name="automatic_storage_manager_activate_button" msgid="6257070263061898041">"Aktibatu"</string>
    <string name="deletion_helper_photos_loading_title" msgid="2768067991066779772">"Babeskopiak dituzten argazki eta bideoak"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"Elementuak bilatzen…"</string>
    <string name="deletion_helper_no_threshold" msgid="6943179204098250444">"Erakutsi elementu guztiak"</string>
    <string name="deletion_helper_default_threshold" msgid="8410389370069021113">"Ezkutatu azken elementuak"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="686530413183529901">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> hartzen dituen edukia kenduko da gailutik"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Biltegi-kudeatzailea ari da biltegia kudeatzen"</string>
    <string name="empty_state_title" msgid="4033285438176545309">"Ez dago kentzeko ezer"</string>
    <string name="empty_state_review_items_link" msgid="8411186441239304545">"Berrikusi azken elementuak"</string>
    <string name="empty_state_summary" msgid="8439893007424243790">"Ez dago kentzeko fitxategi zaharrik. Tokia egiteko, kendu argazki, bideo edo aplikazio berriagoak."</string>
    <string name="app_requesting_space" msgid="857425181289960167">"<xliff:g id="APP">%1$s</xliff:g> aplikazioak <xliff:g id="CLEARABLE_BYTES">%2$s</xliff:g> behar ditu"</string>
</resources>
