<?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="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_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Prikaz svih preuz. na USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Pogledajte sva preuzimanja na SD kartici"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Omogućuje aplikaciji da vidi sva preuzimanja na SD kartici, bez obzira na to koja ih je aplikacija preuzela."</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">%s </xliff:g>. "\n\n"Dodirnite tekst <xliff:g id="QUEUE_TEXT">%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">%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">%s</xliff:g> da biste preuzeli pri sljedećem spajanju s WiFi 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>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
  <plurals name="notif_summary_active">
    <item quantity="one" msgid="8475775855911967027">"Preuzimanje 1 datoteke"</item>
    <item quantity="other" msgid="9087228371320573153">"Preuzimanje datoteka (<xliff:g id="NUMBER">%d</xliff:g>)"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 datoteka na čekanju"</item>
    <item quantity="other" msgid="549229034166062887">"Datoteke na čekanju (<xliff:g id="NUMBER">%d</xliff:g>)"</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>
</resources>
