<?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">"Managerul spațiului de stocare"</string>
    <string name="cancel" msgid="7021218262867558825">"Anulați"</string>
    <string name="storage_menu_free" msgid="1878247401436882778">"Eliberați spațiu"</string>
    <string name="deletion_helper_title" msgid="7928959984891140427">"Alegeți elemente de eliminat"</string>
    <string name="deletion_helper_app_summary" msgid="1923023368736447552">"<xliff:g id="USED">%1$s</xliff:g> • Acum <xliff:g id="DAYS">%2$d</xliff:g> zile"</string>
    <string name="deletion_helper_app_summary_never_used" msgid="20287691628145397">"<xliff:g id="USED">%1$s</xliff:g> • Nu s-a utilizat în ultimul an"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="257918462233851162">"<xliff:g id="USED">%1$s</xliff:g> • Nu se știe exact data ultimei utilizări"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Eliberați <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="8694284659307845664">"Fotografii și videoclipuri (<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> • Mai vechi de <xliff:g id="DAYS">%2$d</xliff:g> zile"</string>
    <string name="deletion_helper_downloads_title" msgid="2976599380628177756">"Descărcări (<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">"Pe dispozitiv se va elibera un spațiu de <xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g>"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="3386502418767917932">"Eliminați"</string>
    <string name="deletion_helper_upsell_title" msgid="8512037674466762017">"Gestionați spațiul de stocare automat?"</string>
    <string name="deletion_helper_upsell_summary" msgid="2301597713694474407">"Spațiu liber acum: <xliff:g id="USED">%1$s</xliff:g>. Permiteți Managerului spațiului de stocare să elibereze spațiu automat prin eliminarea de pe dispozitiv a conținutului căruia i-ați făcut backup?"</string>
    <string name="deletion_helper_upsell_cancel" msgid="7084167642850053889">"Nu, mulțumesc"</string>
    <string name="deletion_helper_upsell_activate" msgid="7157360257760895976">"Activați"</string>
    <string name="deletion_helper_apps_group_title" msgid="6554321362396920050">"Aplicații (<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> • Ultima utilizare acum <xliff:g id="DAYS">%2$d</xliff:g> zile"</string>
    <string name="deletion_helper_automatic_title" msgid="4610119358490679299">"Automate"</string>
    <string name="deletion_helper_manual_title" msgid="3905192395039688529">"Manuale"</string>
    <string name="deletion_helper_preference_title" msgid="803484286872745892">"Eliberați spațiul acum"</string>
    <string name="automatic_storage_manager_service_label" msgid="648592272375278978">"Serviciul de gestionare automată a stocării"</string>
    <string name="automatic_storage_manager_notification_title" msgid="8480483265300964701">"Stocarea de pe telefon este redusă"</string>
    <string name="automatic_storage_manager_notification_summary" msgid="2267399886362245822">"Permiteți Managerului spațiului de stocare să elibereze spațiu prin eliminarea automată a fotografiilor și a videoclipurilor vechi, când stocarea telefonului se umple din nou."</string>
    <string name="automatic_storage_manager_cancel_button" msgid="1826365037494962803">"Nu, mulțumesc"</string>
    <string name="automatic_storage_manager_activate_button" msgid="6257070263061898041">"Activați"</string>
    <string name="deletion_helper_photos_loading_title" msgid="5411813715495227745">"Fotografii și videoclipuri"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"Se caută elemente…"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="386144597646356521">"Pe dispozitiv se va elibera un spațiu de <xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g>"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Spațiul de stocare este acum gestionat de managerul spațiului de stocare"</string>
</resources>
