<?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">"Atsisiuntimo tvarkyklė"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Pasiekti atsisiuntimo tvarkyklę."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Leidžiama programai pasiekti atsisiuntimų tvarkyklę ir naudoti ją failams atsisiųsti. Kenkėjiškos programos gali naudoti šią funkciją atsisiuntimams stabdyti ir asmeninei informacijai pasiekti."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Išplėstinės atsisiuntimo tvarkyklės funkcijos."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Leidžiama programai pasiekti išplėstines atsisiuntimų tvarkyklės funkcijas. Kenkėjiškos programos gali naudoti šią funkciją atsisiuntimams stabdyti ir asmeninei informacijai gauti."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Siųsti atsisiuntimo pranešimus."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Leidžiama programai siųsti pranešimus apie baigtus atsisiuntimus. Kenkėjiškos programos gali naudoti šią funkciją, kad supainiotų kitas programas, kurias naudojant siunčiami failai."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Žr. visus atsis. į USB atm."</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Žiūrėti visus atsisiuntimus į SD kortelę"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Leidžiama programai matyti visus atsisiuntimus į SD kortelę, neatsižvelgiant į tai, kokia programa jie buvo atsiųsti."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezervuoti vietą atsisiuntimo talpykloje"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Leidžiama programai atsisiųsti failus į atsisiuntimo talpyklą, kurios negalima automatiškai ištrinti, kai atsisiuntimo tvarkyklei prireikia daugiau vietos."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"atsisiųsti failus be pranešimo"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Leidžiama programai atsisiųsti failus naudojant atsisiuntimo tvarkyklę, naudotojui nepateikus jokio pranešimo."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Pasiekti visus sistemos atsisiuntimus"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Leidžiama programai žiūrėti ir keisti visus atsisiuntimus, pradėtus naudojant bet kokią sistemos programą."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Be pavadinimo&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Atsisiuntimas baigtas."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Atsisiuntimas nesėkmingas."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Did. f., reikia „Wi-Fi“."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pristabdyta fone."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Atsisiuntimas per didelis operatoriaus tinklui"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Jei norite baigti šį <xliff:g id="SIZE">%s </xliff:g> atsisiuntimą, turite naudoti „Wi-Fi“. "\n\n"Palieskite <xliff:g id="QUEUE_TEXT">%s </xliff:g>, jei norite pradėti šį atsisiuntimą kitą kartą prisijungę prie „Wi-Fi“."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Įtraukti į eilę, norint vėliau atsisiųsti?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Siunč. šį <xliff:g id="SIZE">%s </xliff:g> failą eikv. daug energ. ir (arba) mob. duom., todėl pagal naud. duom. planą gali būti taik. oper. mokesč."\n\n" Palies. <xliff:g id="QUEUE_TEXT">%s</xliff:g>, jei nor. siųsti šį failą kitą k. prisij. prie „Wi-Fi“."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Eilė"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Atšaukti"</string>
    <string name="button_start_now" msgid="792123674007840864">"Pradėti dabar"</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">"Atsisiunčiama failų: 1"</item>
    <item quantity="other" msgid="9087228371320573153">"Atsisiunčiama failų: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"Laukiama failų: 1"</item>
    <item quantity="other" msgid="549229034166062887">"Laukiama failų: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Liko: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Nepavyksta atidaryti failo"</string>
</resources>
