<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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_label" msgid="3658948994665187911">"Upravitelj za preuzimanje"</string>
    <string name="storage_description" msgid="7982444311558023664">"Preuzimanja"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Pristupite upravitelju za preuzimanje."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Omogućuje aplikaciji pristup upravitelju preuzimanja i njegovu upotrebu za preuzimanje datoteka. Zlonamjerne aplikacije mogu to iskoristiti da bi ometale preuzimanja i pristupale privatnim podacima."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Napredne funkcije upravitelja za preuzimanje."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Omogućuje aplikaciji pristup naprednim funkcijama upravitelja preuzimanja. Zlonamjerne aplikacije mogu to iskoristiti da bi ometale preuzimanja i pristupale privatnim podacima."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Pošaljite obavijesti o preuzimanju."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Omogućuje aplikaciji slanje obavijesti o dovršenim preuzimanjima. Zlonamjerne aplikacije mogu to iskoristiti za zbunjivanje drugih aplikacija koje preuzimaju datoteke."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezerviraj prostor u predmemoriji preuzimanja"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Omogućuje aplikaciji preuzimanje datoteka u predmemoriju preuzimanja koja se ne može automatski izbrisati kada upravitelj preuzimanja treba više prostora."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"preuzmi datoteke bez obavijesti"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Aplikaciji omogućuje preuzimanje datoteka putem upravitelja preuzimanja bez prikazivanja obavijesti korisniku."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Pristup svim preuzimanjima sustava"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Omogućuje aplikaciji prikaz i izmjenu svih preuzimanja koja je pokrenula bilo koja aplikacija u sustavu."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez naslova&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Preuzimanje je dovršeno."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Preuzimanje nije uspjelo."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Veličina zahtijeva Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pauzirano u pozadini."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Preuzimanje je preveliko za mrežu operatora"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Morate upotrijebiti Wi-Fi da biste dovršili ovo preuzimanje veličine <xliff:g id="SIZE">%1$s </xliff:g>. \n\nDodirnite tekst <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> da biste pokrenuli preuzimanje sljedeći put kada se povežete s Wi-Fi mrežom."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Staviti na čekanje za kasnije preuzimanje?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Pokretanje ovog preuzimanja od <xliff:g id="SIZE">%1$s </xliff:g> može skratiti vijek baterije i/ili uzrokovati pretjeranu upotrebu podatkovne veze i dodatne troškove.\n\n Dodirnite <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> da biste preuzeli pri sljedećem spajanju s Wi-Fi mrežom."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Red čekanja"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Odustani"</string>
    <string name="button_start_now" msgid="792123674007840864">"Započni sad"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="one">Preuzimanje <xliff:g id="NUMBER">%d</xliff:g> datoteke</item>
      <item quantity="few">Preuzimanje <xliff:g id="NUMBER">%d</xliff:g> datoteke</item>
      <item quantity="other">Preuzimanje <xliff:g id="NUMBER">%d</xliff:g> datoteka</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> datoteka na čekanju</item>
      <item quantity="few"><xliff:g id="NUMBER">%d</xliff:g> datoteke na čekanju</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> datoteka na čekanju</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Još <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Datoteka se ne može otvoriti"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Preuzimanja"</string>
    <string name="download_queued" msgid="3302638231377947451">"Na čekanju"</string>
    <string name="download_running" msgid="3925050393361158266">"U tijeku"</string>
    <string name="download_error" msgid="5144180777324573236">"Neuspješno"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"U tijeku, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
