<?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 prenosov"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Dostop do upravitelja prenosov."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Dovoli programu dostopanje do upravitelja prenosov in njegovo uporabo za prenos datotek. Zlonamerni programi lahko s tem motijo prenose in dostopajo do zasebnih podatkov."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Dodatne funkcije upravitelja prenosov."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Dovoli programu dostopanje do dodatnih funkcij upravitelja prenosov. Zlonamerni programi lahko s tem motijo prenose in dostopajo do zasebnih podatkov."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Pošlji obvestila o prenosih."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Dovoli programu pošiljanje obvestil o končanih prenosih. Zlonamerni programi lahko s tem zmedejo druge programe, ki prenašajo datoteke."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Prikaži vse prenose v pomnilnik USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Prikaži vse prenose na kartico SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Dovoli programu ogled vseh prenosov na kartico SD ne glede na to, kateri program jih je prenesel."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezerviraj prostor v predpomnilniku za prenose"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Dovoli programu prenašanje datotek v predpomnilnik za prenose, ki ga ni mogoče samodejno izbrisati, ko upravitelj prenosov potrebuje več prostora."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"prenos datotek brez obvestila"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Dovoli programu prenos datotek z upraviteljem prenosov, brez prikaza obvestila uporabniku."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Dostop do vseh sistemskih prenosov"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Dovoli programu prikaz in spreminjanje vseh prenosov, ki jih je začel poljubni program v sistemu."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Brez naslova&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Prenos je končan."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Prenos ni uspel."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Zahtev. je povez. Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Začas. ustav. v ozadju."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Prenos je prevelik za operaterjevo omrežje"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Če želite dokončati prenos, velik <xliff:g id="SIZE">%s </xliff:g>, morate uporabiti povezavo Wi-Fi. "\n\n"Dotaknite se možnosti <xliff:g id="QUEUE_TEXT">%s </xliff:g>, če želite začeti ta prenos naslednjič, ko boste povezani v omrežje Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Želite postaviti v čakalno vrsto za poznejši prenos?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Zaradi prenosa, velikega <xliff:g id="SIZE">%s </xliff:g>, se lahko porabi baterija in/ali prekomerno uporabijo mobilni podatki, kar vam lahko operater glede na naročnino zaračuna."\n\n"Dotaknite se <xliff:g id="QUEUE_TEXT">%s</xliff:g>, če želite prenesti, ko boste povezani v Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Čakalna vrsta"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Prekliči"</string>
    <string name="button_start_now" msgid="792123674007840864">"Začni zdaj"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
    <!-- no translation found for notif_summary_active:one (8475775855911967027) -->
    <!-- no translation found for notif_summary_active:other (9087228371320573153) -->
    <!-- no translation found for notif_summary_waiting:one (5537481763963544278) -->
    <!-- no translation found for notif_summary_waiting:other (549229034166062887) -->
    <!-- no translation found for download_no_application_title (7935659741162801699) -->
    <skip />
</resources>
