<?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">"Niðurhalsstjórnun"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Aðgangur að niðurhalsstjórnun."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Leyfir forriti að fá aðgang að niðurhalsstjórnun og nota hana til að sækja skrár. Spilliforrit geta notað þetta til að trufla niðurhal og fá aðgang að einkaupplýsingum."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Ítarlegir eiginleikar niðurhalsstjórnunar."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Leyfir forritum að fá aðgang að ítarlegum eiginleikum niðurhalsstjórnunar. Spilliforrit geta notað þetta til að trufla niðurhal og fá aðgang að einkaupplýsingum."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Senda tilkynningar um niðurhal."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Leyfir forriti að senda tilkynningar um niðurhal sem er lokið. Spilliforrit geta notað þetta til að skapa rugling hjá öðrum forritum sem sækja skrár."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Sjá allt niðurhal í USB-geymslu"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Sjá allt niðurhal á SD-korti"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Leyfir forriti að sjá allt niðurhal á SD-korti, án tillits til þess hvaða forrit sótti skrárnar."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Taka frá pláss í skyndiminni niðurhals"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Leyfir forriti að sækja skrár í skyndiminni niðurhals sem ekki er hægt að hreinsa sjálfkrafa þegar niðurhalsstjórnun þarf meira pláss."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"sækja skrár án tilkynningar"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Leyfir forriti að sækja skrár í gegnum niðurhalsstjórnun án þess að birta notandanum tilkynningu."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Aðgangur að öllu niðurhali kerfis"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Leyfir forriti að skoða og breyta öllu niðurhali sem hvaða forrit kerfisins sem er hóf."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Ónefnt&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Niðurhali lokið."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Niðurhal mistókst."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Stærðin krefst Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Í bið í bakgrunni."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Of stórt niðurhal fyrir kerfi símafyrirtækis"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Þú verður að nota Wi-Fi til að ljúka þessu <xliff:g id="SIZE">%s </xliff:g> niðurhali. \n\nÝttu á <xliff:g id="QUEUE_TEXT">%s </xliff:g> til að hefja þetta niðurhal næst þegar þú tengist Wi-Fi neti."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Setja í biðröð til að sækja síðar?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Ef þetta <xliff:g id="SIZE">%s </xliff:g> niðurhal er hafið kann rafhlaðan að tæmast hraðar og/eða notkun farsímagagnatengingar að verða mjög mikil, sem kann að hafa í för með sér að símafyrirtækið þitt rukki þig aukalega, allt eftir áskrift.\n\n Ýttu á <xliff:g id="QUEUE_TEXT">%s</xliff:g> til að hefja þetta niðurhal næst þegar þú tengist Wi-Fi neti."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Setja í biðröð"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Hætta við"</string>
    <string name="button_start_now" msgid="792123674007840864">"Hefja núna"</string>
    <!-- no translation found for notif_summary_active (7290448463204837173) -->
    <!-- no translation found for notif_summary_waiting (2814217662029273005) -->
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> eftir"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Ekki er hægt að opna skrána"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Niðurhal"</string>
    <string name="download_queued" msgid="3302638231377947451">"Í biðröð"</string>
    <string name="download_running" msgid="3925050393361158266">"Í gangi"</string>
    <string name="download_error" msgid="5144180777324573236">"Mistókst"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Í gangi, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
