<?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">"Download Manager"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Piekļuve lietojumprogrammai Download Manager."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Ļauj lietotnei piekļūt lejupielāžu pārvaldniekam un izmantot to failu lejupielādei. Ļaunprātīgas lietotnes var izmantot šo atļauju, lai traucētu lejupielādes un piekļūtu privātai informācijai."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Izvērstas Download Manager funkcijas."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Ļauj lietotnei piekļūt lejupielāžu pārvaldnieka papildu funkcijām. Ļaunprātīgas lietotnes var izmantot šo atļauju, lai traucētu lejupielādes un piekļūtu privātai informācijai."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Lejupielāžu paziņojumu sūtīšana."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Ļauj lietotnei sūtīt paziņojumus par pabeigtām lejupielādēm. Ļaunprātīgas lietotnes var izmantot šo atļauju, lai maldinātu citas lietotnes, kurās tiek lejupielādēti faili."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Sk. visas lejup. USB atm."</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Skatīt visus SD kartē lejupielādētos failus"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Ļauj lietotnei skatīt visas lejupielādes SD kartē neatkarīgi no lejupielādei izmantotās lietotnes."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezervēt vietu lejupielādes kešatmiņā"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Ļauj lietotnei lejupielādes kešatmiņā lejupielādēt failus, kurus nevar automātiski izdzēst, ja lejupielāžu pārvaldniekam nepieciešama papildu vieta."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"lejupielādēt failus bez brīdinājuma"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Ļauj lietotnei lejupielādēt failus, izmantojot lejupielāžu pārvaldnieku, nerādot nekādus paziņojumus lietotājam."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Piekļuve visām sistēmas lejupielādēm"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Ļauj lietotnei skatīt un pārveidot visas lejupielādes, kas veiktas, izmantojot jebkuru sistēmas lietotni."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez nosaukuma&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Lejupielāde ir pabeigta."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Lejupielāde neizdevās."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Lejupiel. nepiec. Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pārtraukta fonā."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Lejupielāde ir pārāk liela operatora tīklam."</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Lai pabeigtu šo lejupielādi (<xliff:g id="SIZE">%s </xliff:g>), ir jāizmanto Wi-Fi. "\n\n"Pieskarieties <xliff:g id="QUEUE_TEXT">%s </xliff:g>, lai sāktu šo lejupielādi, kad tiks izveidots savienojums ar Wi-Fi tīklu."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Vai ievietot rindā, lai lejupielādētu vēlāk?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Sākot šo lejupiel. (<xliff:g id="SIZE">%s </xliff:g>) tūlīt, var samaz. akum. darb. ilg. un/vai var tikt pārslog. mob. datu pārr. sav. Ja sav. tiek pārslog., jūsu mob. sak. oper. var no jums iekasēt maksu atkarībā no izmant. datu pārr. apjoma plāna."\n\n"Pieskarieties <xliff:g id="QUEUE_TEXT">%s</xliff:g>, lai sāktu šo lejupiel., kad tiks izveidots sav. ar Wi-Fi tīklu."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Rinda"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Atcelt"</string>
    <string name="button_start_now" msgid="792123674007840864">"Sākt tūlīt"</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">"Notiek 1 faila lejupielāde"</item>
    <item quantity="other" msgid="9087228371320573153">"Notiek <xliff:g id="NUMBER">%d</xliff:g> failu lejupielāde"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"Rindā: 1 fails"</item>
    <item quantity="other" msgid="549229034166062887">"Rindā: <xliff:g id="NUMBER">%d</xliff:g> faili"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Atlikušais laiks: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Nevar atvērt failu"</string>
</resources>
