<?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">"Nedlaster"</string>
    <string name="storage_description" msgid="7982444311558023664">"Nedlastinger"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Bruke nedlasting."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Gir appen adgang til nedlastingsbehandlingen og bruke den til å laste ned filer. Skadelig programvare kan bruke dette til å forstyrre nedlastinger og få tilgang til privat informasjon."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Avansert nedlastingsfunksjonalitet."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Gir appen adgang til avanserte funksjoner i nedlastingsbehandlingen. Skadelig programvare kan bruke dette til å forstyrre nedlastinger og få tilgang til privat informasjon."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Sende nedlastingsvarslinger"</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Gir appen tillatelse til å sende varslinger om fullførte nedlastinger. Skadelig programvare kan bruke dette til å forstyrre andre apper som laster ned filer."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Se nedlastinger til USB-lagr."</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Se alle nedlastinger til minnekort"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Gir appen tilgang til alle nedlastinger på SD-kortet, uavhengig av hvilken app som lastet dem ned."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservere lagringsplass i nedlastingsbufferen"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Gir appen tillatelse til å laste ned filer til nedlastingsbufferen, slik at de ikke slettes automatisk når nedlastingsbehandlingen trenger mer lagringsplass."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"laste ned filer uten varsling"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Gir appen tillatelse til å laste ned filer via nedlastingsbehandlingen uten at brukeren varsles."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Se alle systemnedlastinger"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Gir appen tillatelse til å se og endre alle nedlastinger uansett hvilken systemapp som har startet nedlastingene."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Uten navn&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Nedlasting fullført."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Nedlasting mislyktes."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Krever Wi-Fi pga. størr."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Satt på pause i bakgr."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Nedlastingen er for stor for operatørnettverket"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Du må bruke Wi-Fi for å fullføre denne nedlastingen på <xliff:g id="SIZE">%s </xliff:g>. \n\nTrykk <xliff:g id="QUEUE_TEXT">%s </xliff:g> for å starte denne nedlastingen neste gang du er koblet til et Wi-Fi-nettverk."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Vil du sette nedlastingen i kø til senere?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Starter du denne nedlastingen på <xliff:g id="SIZE">%s </xliff:g> nå, kan det redusere batteriets levetid eller gi for høy bruk av datatilkoblingen. Abonnementet ditt avgjør kostnadene.\n\nTrykk<xliff:g id="QUEUE_TEXT">%s</xliff:g> for å starte nedlastingen neste gang du er koblet til Wi-Fi."</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">"Start nå"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> filer lastes ned</item>
      <item quantity="one">1 fil lastes ned</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> filer venter</item>
      <item quantity="one">1 fil venter</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> gjenstår"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Kan ikke åpne filen"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Nedlastinger"</string>
    <string name="download_queued" msgid="3302638231377947451">"I kø"</string>
    <string name="download_running" msgid="3925050393361158266">"Pågår"</string>
    <string name="download_error" msgid="5144180777324573236">"Mislyktes"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Pågår – <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
