<?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="7928959984891140427">"Aukeratu kendu beharrekoak"</string>
    <string name="deletion_helper_app_summary" msgid="1923023368736447552">"<xliff:g id="USED">%1$s</xliff:g> • Duela <xliff:g id="DAYS">%2$d</xliff:g> egun"</string>
    <string name="deletion_helper_app_summary_never_used" msgid="20287691628145397">"<xliff:g id="USED">%1$s</xliff:g> • Ez da erabili azken urte honetan"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="257918462233851162">"<xliff:g id="USED">%1$s</xliff:g> • Ez dakigu ziur noiz erabili zen azkenekoz"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Libratu <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="8694284659307845664">"Argazkiak eta bideoak (<xliff:g id="NUM_ITEMS">%1$d</xliff:g>)"</string>
    <string name="deletion_helper_photos_summary" msgid="2636724338009030470">"<xliff:g id="USED">%1$s</xliff:g> • <xliff:g id="DAYS">%2$d</xliff:g> egunetik gorakoak"</string>
    <string name="deletion_helper_downloads_title" msgid="2976599380628177756">"Deskargak (<xliff:g id="NUMITEMS">%1$d</xliff:g>)"</string>
    <!-- no translation found for deletion_helper_downloads_category_summary (8545989355108311347) -->
    <skip />
    <string name="deletion_helper_downloads_file_summary" msgid="2610952169093565355">"<xliff:g id="USED">%1$s</xliff:g> • <xliff:g id="DAYS">%2$s</xliff:g>"</string>
    <!-- no translation found for deletion_helper_downloads_summary_empty (3988054032360371887) -->
    <skip />
    <string name="deletion_helper_clear_dialog_message" msgid="4896104662649947320">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> kenduko dira gailutik"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="3386502418767917932">"Kendu"</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="6554321362396920050">"Aplikazioak (<xliff:g id="NUM_ITEMS">%1$d</xliff:g>)"</string>
    <string name="deletion_helper_apps_group_summary" msgid="3466154404460006085">"<xliff:g id="USED">%1$s</xliff:g> • Duela <xliff:g id="DAYS">%2$d</xliff:g> egun erabili zen azkenekoz"</string>
    <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" msgid="8480483265300964701">"Toki gutxi geratzen da libre telefonoan"</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="5411813715495227745">"Argazkiak eta bideoak"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"Elementuak bilatzen…"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="386144597646356521">"<xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> kenduko dira gailutik"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Biltegi-kudeatzailea ari da biltegia kudeatzen"</string>
</resources>
