<?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">"Lataustenhallinta"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Lataustenhallinnan käyttö."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Antaa sovelluksen käyttää latauksien hallintaa. Haitalliset sovellukset voivat keskeyttää latauksia ja käyttää yksityistietoja."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Lataustenhallinnan lisätoiminnot."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Antaa sovelluksen käyttää latauksien hallinnan lisätoimintoja. Haitalliset sovellukset voivat keskeyttää latauksia ja käyttää yksityistietoja."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Latausilmoitusten lähetys."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Antaa sovelluksen lähettää valmistuneita latauksia koskevia ilmoituksia. Haitalliset sovellukset voivat käyttää tätä muiden tiedostoja lataavien sovelluksien häiritsemiseen."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Kaikki USB-lataukset"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"SD-kortin kaikkien latausten tarkastelu."</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Antaa sovelluksen nähdä kaikki SD-kortille tehtävät lataukset huolimatta latauksen suorittaneesta sovelluksesta."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Varaa tilaa latausvälimuistista"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Antaa sovelluksen ladata tiedostoja latausvälimuistiin, jota ei voi automaattisesti poistaa latauksen hallinnan tarvitessa lisää tilaa."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"lataa tiedostoja ilmoittamatta"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Antaa sovelluksen ladata tiedostoja latauksen hallinnan kautta ilmoittamatta siitä käyttäjälle."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Käytä kaikkia järjestelmän latauksia"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Antaa sovelluksen tarkastella ja muokata kaikkia minkä tahansa järjestelmän sovelluksen käynnistämiä latauksia."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Nimetön&gt;"</string>
    <string name="notification_filename_separator" msgid="7147189522857807618">", "</string>
    <string name="notification_filename_extras" msgid="5549729917695688191">" ja <xliff:g id="NUMBER">%d</xliff:g> muuta"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Lataus valmis."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Lataus epäonnistui."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Lataa wifi-yhteydellä"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Keskeytetty taustalla."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Lataus liian suuri operaattorin verkolle"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Tämä <xliff:g id="SIZE">%s </xliff:g>:n lataus täytyy suorittaa wifi-yhteyden ollessa käytössä. "\n\n"Aloita lataus seuraavan kerran, kun yhdistät wifi-verkkoon, koskettamalla <xliff:g id="QUEUE_TEXT">%s </xliff:g>."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Asetetaanko myöhemmin ladattavaksi?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Jos aloitat tämän <xliff:g id="SIZE">%s </xliff:g>:n latauksen nyt, akun virtaa voi kulua tav. enemmän ja/tai operaattori voi veloittaa ylim. mobiilitiedons."\n\n"Aloita lataus seuraavan kerran, kun yhdistät wifi-verkkoon, koskettamalla <xliff:g id="QUEUE_TEXT">%s</xliff:g>."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Jono"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Peruuta"</string>
    <string name="button_start_now" msgid="792123674007840864">"Aloita nyt"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
</resources>
