<?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_filename_separator" msgid="7147189522857807618">", "</string>
    <string name="notification_filename_extras" msgid="5549729917695688191">" in dodatnih <xliff:g id="NUMBER">%d</xliff:g>"</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>
</resources>
