<?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 preuzimanja"</string>
    <string name="storage_description" msgid="7982444311558023664">"Preuzimanja"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Pristupite upravitelju za preuzimanja."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Dopušta aplikacijama da pristupaju upravitelju za preuzimanja i koriste ga za preuzimanje fajlova. Zlonamjerne aplikacije to mogu koristiti da poremete preuzimanja i pristupaju privatnim informacijama."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Napredne funkcije upravitelja za preuzimanja."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Dopušta aplikaciji da pristupa naprednim funkcijama upravitelja za preuzimanja. Zlonamjerne aplikacije to mogu koristiti da poremete preuzimanja i pristupaju privatnim informacijama."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Šaljite obavještenja o preuzimanju."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Dopušta aplikaciji da šalje obavještenja o završenim ažuriranjima. Zlonamjerne aplikacije ovo mogu koristiti da zbune druge aplikacije koje preuzimaju fajlove."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Prikaži sva preuzimanja na USB pohranu"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Prikaži sva preuzimanja na SD karticu"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Dopušta aplikaciji da vidi sva preuzimanja na SD kartici, bez obzira na to koja ih je aplikacija izvršila."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezerviraj mjesto u keš memoriji preuzimanja"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Dopušta aplikaciji da preuzme fajlove u keš memoriju preuzimanja, koja se ne može automatski izbrisati kada upravitelju za preuzimanja treba više prostora."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"preuzimanje fajlova bez obavještenja"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Dopušta aplikaciji da preuzima fajlove preko upravitelja za preuzimanja bez prikazivanja obavještenja korisniku."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Pristup svim preuzimanjima sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Dopušta aplikaciji da prikaže i modificira sva preuzimanja koja pokrene bilo koja aplikacija u sistemu."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez naslova&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Preuzimanje završeno."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Preuzimanje neuspješno."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Veličina preuzimanja zahtijeva WiFi."</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 operatera"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Morate koristiti WiFi kako biste dovršili ovo preuzimanje od <xliff:g id="SIZE">%s </xliff:g>. \n\nDodirnite <xliff:g id="QUEUE_TEXT">%s </xliff:g> kako biste pokrenuli ovo preuzimanje kada se narednog puta povežete na WiFi mrežu."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Staviti na čekanje za preuzimanje kasnije?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Pokretanje ovog preuzimanja od <xliff:g id="SIZE">%s </xliff:g> sada može skratiti vijek trajanja baterije i/ili dovesti do prekomjernog korištenja mobilne veze za prenos podataka te se može desiti da vam operater naplati troškove ovisno o pretplati za prenos podataka koju imate.\n\n Dodirnite <xliff:g id="QUEUE_TEXT">%s</xliff:g> kako biste pokrenuli ovo preuzimanje kada se narednog puta povežete na WiFi mrežu."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Red čekanja"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Otkaži"</string>
    <string name="button_start_now" msgid="792123674007840864">"Započni odmah"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="one">Preuzima se <xliff:g id="NUMBER">%d</xliff:g> fajl</item>
      <item quantity="few">Preuzimaju se <xliff:g id="NUMBER">%d</xliff:g> fajla</item>
      <item quantity="other">Preuzima se <xliff:g id="NUMBER">%d</xliff:g> fajlova</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> fajl na čekanju</item>
      <item quantity="few"><xliff:g id="NUMBER">%d</xliff:g> fajla na čekanju</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> fajlova 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">"Nije moguće otvoriti datoteku"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Preuzimanja"</string>
    <string name="download_queued" msgid="3302638231377947451">"U U redu čekanja"</string>
    <string name="download_running" msgid="3925050393361158266">"U toku"</string>
    <string name="download_error" msgid="5144180777324573236">"Neuspješno"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"U toku, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
