<?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="5264040740662487684">"Nedladdningshanterare"</string>
    <string name="storage_description" msgid="169690279447532621">"Nedladdningar"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Åtkomst till laddningshanterare."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Tillåter att en app får åtkomst till nedladdningshanteraren och kan använda den för att ladda ned filer. Skadliga program kan använda detta för att störa nedladdningar och komma åt privat information."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Avancerade funktioner för nedladdningshanterare."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Tillåter att appen får åtkomst till nedladdningshanterarens avancerade funktioner. Skadliga program kan använda detta för att störa nedladdningar och komma åt privata uppgifter."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Skicka meddelande om nedladdning."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Tillåter att appen skickar meddelanden om slutförda nedladdningar. Skadliga appar kan använda detta för att störa andra appar som laddar ned filer."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Reservera utrymme i nedladdningscachen"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Tillåter att appen laddar ned filer till hämtningscachen som inte kan tas bort automatiskt när hämtningshanteraren behöver mer utrymme."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"ladda ned filer utan avisering"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Tillåter att appen laddar ned filer via nedladdningshanteraren utan att något meddelande visas för användaren."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"Åtkomst till alla nedladdningar i systemet"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Tillåter att appen visar och ändrar alla nedladdningar som initieras av en app i systemet."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Okänd&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Nedladdningen har slutförts."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Det gick inte att ladda ned."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Nedladdningen kräver Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Pausad i bakgrunden."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Nedladdningen är för stor för operatörsnätverket"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Du måste använda Wi-Fi om du vill slutföra nedladdningen på <xliff:g id="SIZE">%1$s </xliff:g>. \n \n Tryck på <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> om du vill påbörja nedladdningen nästa gång du är ansluten till ett Wi-Fi-nätverk."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"Vill du ställa den i kö för nedladdning senare?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Om du laddar ned <xliff:g id="SIZE">%1$s </xliff:g> kan det leda till att batteritiden minskar eller att dataanslutningen överbelastas. Det kan i sin tur innebära att operatören tar ut högre avgifter, beroende på abonnemang.\n\n Tryck på <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> om du vill starta nedladdningen nästa gång mobilen är ansluten till ett Wi-Fi-nätverk."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Kö"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Avbryt"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Starta nu"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> filer laddas ned</item>
      <item quantity="one">1 fil laddas ned</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> filer väntar</item>
      <item quantity="one">1 fil väntar</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"<xliff:g id="DURATION">%s</xliff:g> återstår"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Det går inte att öppna filen"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Nedladdningar"</string>
    <string name="download_queued" msgid="3383844741769045371">"I kö"</string>
    <string name="download_running" msgid="774654178925442490">"Pågår"</string>
    <string name="download_error" msgid="1857737890005386798">"Misslyckades"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"Pågår, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
