<?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">"Gestor d\'emmagatzematge"</string>
    <string name="cancel" msgid="7021218262867558825">"Cancel·la"</string>
    <string name="storage_menu_free" msgid="1878247401436882778">"Allibera espai"</string>
    <string name="deletion_helper_title" msgid="7928959984891140427">"Tria elements per suprimir"</string>
    <string name="deletion_helper_app_summary" msgid="1923023368736447552">"<xliff:g id="USED">%1$s</xliff:g> • Dies des de l\'última utilització: <xliff:g id="DAYS">%2$d</xliff:g>"</string>
    <string name="deletion_helper_app_summary_never_used" msgid="20287691628145397">"<xliff:g id="USED">%1$s</xliff:g> • No s\'ha utilitzat en un any"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="257918462233851162">"<xliff:g id="USED">%1$s</xliff:g> • Es desconeix quan s\'ha utilitzat per última vegada"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Allibera <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="8694284659307845664">"Fotos i vídeos (<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> • Amb una antiguitat superior a <xliff:g id="DAYS">%2$d</xliff:g> dies"</string>
    <string name="deletion_helper_downloads_title" msgid="2976599380628177756">"Baixades (<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">"Se suprimiran <xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> del teu dispositiu"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="3386502418767917932">"Suprimeix"</string>
    <string name="deletion_helper_upsell_title" msgid="8512037674466762017">"Vols que l\'emmagatzematge es gestioni automàticament?"</string>
    <string name="deletion_helper_upsell_summary" msgid="2301597713694474407">"Espai d\'emmagatzematge lliure: <xliff:g id="USED">%1$s</xliff:g>. Vols permetre que el gestor d\'emmagatzematge alliberi espai automàticament suprimint del dispositiu les còpies de seguretat del contingut?"</string>
    <string name="deletion_helper_upsell_cancel" msgid="7084167642850053889">"No, gràcies"</string>
    <string name="deletion_helper_upsell_activate" msgid="7157360257760895976">"Activa"</string>
    <string name="deletion_helper_apps_group_title" msgid="6554321362396920050">"Aplicacions (<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> • Dies des de l\'última utilització: <xliff:g id="DAYS">%2$d</xliff:g>"</string>
    <string name="deletion_helper_automatic_title" msgid="4610119358490679299">"Automàtica"</string>
    <string name="deletion_helper_manual_title" msgid="3905192395039688529">"Manual"</string>
    <string name="deletion_helper_preference_title" msgid="803484286872745892">"Allibera espai ara"</string>
    <string name="automatic_storage_manager_service_label" msgid="648592272375278978">"Servei gestió d\'emmagatzematge automàtic"</string>
    <string name="automatic_storage_manager_notification_title" msgid="8480483265300964701">"Queda poc espai al telèfon"</string>
    <string name="automatic_storage_manager_notification_summary" msgid="2267399886362245822">"Permet que el gestor d\'emmagatzematge alliberi espai suprimint automàticament les fotos i els vídeos antics quan el telèfon comenci a estar ple de nou."</string>
    <string name="automatic_storage_manager_cancel_button" msgid="1826365037494962803">"No, gràcies"</string>
    <string name="automatic_storage_manager_activate_button" msgid="6257070263061898041">"Activa"</string>
    <string name="deletion_helper_photos_loading_title" msgid="5411813715495227745">"Fotos i vídeos"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"S\'estan cercant elements…"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="386144597646356521">"Se suprimiran <xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> del teu dispositiu"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Ara mateix, el gestor d\'emmagatzematge gestiona el teu emmagatzematge"</string>
</resources>
