<?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">"Hämtningshanterare"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Åtkomst till hämtningshanterare."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Tillåter att en app får åtkomst till hämtningshanteraren och kan använda den för att hämta filer. Skadliga program kan använda detta för att störa hämtningar och komma åt privat information."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Avancerade funktioner för hämtningshanterare."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Tillåter att appen får åtkomst till hämtningshanterarens avancerade funktioner. Skadliga program kan använda detta för att störa hämtningar och komma åt privata uppgifter."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Skicka meddelande om hämtning."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Tillåter att appen skickar meddelanden om slutförda hämtningar. Skadliga appar kan använda detta för att störa andra appar som hämtar filer."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Visa hämtningar till USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Visa alla hämtningar till SD-kort"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Tillåter att appen ser alla hämtningar till SD-kortet, oavsett vilken app som hämtat innehållet."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservera utrymme i hämtningscachen"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Tillåter att appen hämtar filer till hämtningscachen som inte kan tas bort automatiskt när hämtningshanteraren behöver mer utrymme."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"hämta filer utan avisering"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Tillåter att appen hämtar filer via hämtningshanteraren utan att något meddelande visas för användaren."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Åtkomst till alla hämtade filer i systemet"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Tillåter att appen visar och ändrar alla hämtningar som initieras av en app i systemet."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Okänd&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Hämtningen har slutförts."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Det gick inte att hämta."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Hämtningen kräver Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pausad i bakgrunden."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Hämtningen är för stor för operatörsnätverket"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Du måste använda Wi-Fi om du vill slutföra hämtningen på <xliff:g id="SIZE">%s </xliff:g>. "\n" "\n" Tryck på <xliff:g id="QUEUE_TEXT">%s </xliff:g> om du vill påbörja hämtningen nästa gång du är ansluten till ett Wi-Fi-nätverk."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Vill du ställa den i kö för hämtning senare?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Om du hämtar <xliff:g id="SIZE">%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">%s</xliff:g> om du vill starta hämtningen nästa gång mobilen är ansluten till ett Wi-Fi-nätverk."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Kö"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Avbryt"</string>
    <string name="button_start_now" msgid="792123674007840864">"Starta nu"</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>
