<?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">"Upravitelj pohrane"</string>
    <string name="cancel" msgid="7021218262867558825">"Otkaži"</string>
    <string name="storage_menu_free" msgid="1878247401436882778">"Oslobodi prostor"</string>
    <string name="deletion_helper_title" msgid="3526170325226275927">"Ukloni stavke"</string>
    <string name="deletion_helper_app_summary" msgid="4904590040180275237">"Prije <xliff:g id="DAYS">%1$d</xliff:g> dan(a)"</string>
    <!-- no translation found for deletion_helper_app_summary_item_size (3770886184921427886) -->
    <skip />
    <string name="deletion_helper_app_summary_never_used" msgid="2695210890063792461">"Nije korišteno prošle godine"</string>
    <string name="deletion_helper_app_summary_unknown_used" msgid="8576377054665785558">"Nema podataka o posljednjem korištenju"</string>
    <string name="deletion_helper_free_button" msgid="1760529213407548661">"Oslobodi <xliff:g id="FREEABLE">%1$s</xliff:g>"</string>
    <string name="deletion_helper_photos_title" msgid="2602723121486729972">"Sigur. kopije fotografija i videozapisa"</string>
    <string name="deletion_helper_photos_age_summary" msgid="1820871709448371984">"Starije od 30 dana"</string>
    <!-- no translation found for deletion_helper_photos_summary (3194825464552700889) -->
    <skip />
    <string name="deletion_helper_downloads_title" msgid="8002058095019254694">"Preuzimanja"</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">"Oslobodite prostor"</string>
    <string name="deletion_helper_clear_dialog_message" msgid="5196490478187120700">"Sadržaj veličine <xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> će biti uklonjen s vašeg uređaja"</string>
    <string name="deletion_helper_clear_dialog_remove" msgid="863575755467985516">"Oslobodi prostor"</string>
    <string name="deletion_helper_upsell_title" msgid="8512037674466762017">"Želite li automatsko upravljanje pohrane?"</string>
    <string name="deletion_helper_upsell_summary" msgid="2301597713694474407">"Sada je slobodno <xliff:g id="USED">%1$s</xliff:g>. Želite li da Upravitelj pohrane automatski oslobodi prostor tako što će iz vašeg uređaja ukloniti sigurnosnu kopiju sadržaja?"</string>
    <string name="deletion_helper_upsell_cancel" msgid="7084167642850053889">"Ne, hvala"</string>
    <string name="deletion_helper_upsell_activate" msgid="7157360257760895976">"Uključi"</string>
    <string name="deletion_helper_apps_group_title" msgid="2578309121350341258">"Aplikacije koje se ne koriste često"</string>
    <!-- no translation found for deletion_helper_apps_group_summary (360315517252452356) -->
    <skip />
    <string name="deletion_helper_automatic_title" msgid="4610119358490679299">"Automatski"</string>
    <string name="deletion_helper_manual_title" msgid="3905192395039688529">"Ručno"</string>
    <string name="deletion_helper_preference_title" msgid="803484286872745892">"Odmah oslobodi prostor"</string>
    <string name="automatic_storage_manager_service_label" msgid="648592272375278978">"Usluga automatskog upravljanja pohranom"</string>
    <string name="automatic_storage_manager_notification_title" product="default" msgid="8480483265300964701">"Na vašem telefonu ima malo prostora"</string>
    <string name="automatic_storage_manager_notification_title" product="tablet" msgid="3150907918531844467">"Na vašem tabletu ima malo prostora"</string>
    <string name="automatic_storage_manager_notification_summary" msgid="2267399886362245822">"Neka Upravitelj pohrane oslobodi prostor tako što će automatski ukloniti stare fotografije i videozapise kada telefon opet bude skoro pun."</string>
    <string name="automatic_storage_manager_cancel_button" msgid="1826365037494962803">"Ne, hvala"</string>
    <string name="automatic_storage_manager_activate_button" msgid="6257070263061898041">"Uključi"</string>
    <string name="deletion_helper_photos_loading_title" msgid="2768067991066779772">"Sigurnosne kopije fotografija i videozapisa"</string>
    <string name="deletion_helper_photos_loading_summary" msgid="8203033249458245854">"Pronalaženje stavki…"</string>
    <string name="deletion_helper_no_threshold" msgid="6943179204098250444">"Prikaži sve stavke"</string>
    <string name="deletion_helper_default_threshold" msgid="8410389370069021113">"Sakrij nedavne stavke"</string>
    <string name="deletion_helper_clear_dialog_message_first_time" msgid="686530413183529901">"Sadržaj veličine <xliff:g id="CLEARABLE_BYTES">%1$s</xliff:g> će biti uklonjen s vašeg uređaja"</string>
    <string name="automatic_storage_manager_activation_warning" msgid="7657017408180001078">"Vašom pohranom sada upravlja upravitelj pohrane"</string>
    <string name="empty_state_title" msgid="4033285438176545309">"Nema stavki za uklanjanje"</string>
    <string name="empty_state_review_items_link" msgid="8411186441239304545">"Pregled nedavnih stavki"</string>
    <string name="empty_state_summary" msgid="8439893007424243790">"Nema starijih fajlova za uklanjanje. Da oslobodite prostor, uklonite nedavne fotografije, videozapise i aplikacije."</string>
    <string name="app_requesting_space" msgid="857425181289960167">"Aplikaciji <xliff:g id="APP">%1$s</xliff:g> treba <xliff:g id="CLEARABLE_BYTES">%2$s</xliff:g> prostora"</string>
</resources>
