<?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">"Gestione download"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Accedere alla gestione dei download."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Consente all\'applicazione di accedere a gestione dei download e di utilizzarla per scaricare file. Le applicazioni dannose possono farne uso per disturbare i download e accedere a informazioni private."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funzioni avanzate di gestione dei download."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Consente all\'applicazione di accedere alle funzioni avanzate di gestione dei download. Le applicazioni dannose possono farne uso per disturbare i download e accedere a informazioni private."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Inviare notifiche di download."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Consente all\'applicazione di inviare notifiche relative ai download completati. Le applicazioni dannose possono farne uso per confondere altre applicazioni che scaricano file."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Tutti i download in archivio USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Visualizza tutti i download sulla scheda SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Consente all\'applicazione di visualizzare tutti i download sulla scheda SD, a prescindere dall\'applicazione che li ha scaricati."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Conserva spazio nella cache dei download"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Consente all\'applicazione di scaricare nella cache i file che non possono essere eliminati automaticamente quando a gestione dei download serve più spazio."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"download file senza notifica"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Consente all\'applicazione di scaricare i file tramite gestione dei download senza mostrare alcuna notifica all\'utente."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accesso a tutti i dowload di sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Consente all\'applicazione di visualizzare e modificare tutti i download avviati da qualsiasi applicazione sul sistema."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Senza nome&gt;"</string>
    <string name="notification_filename_separator" msgid="7147189522857807618">", "</string>
    <string name="notification_filename_extras" msgid="5549729917695688191">" e <xliff:g id="NUMBER">%d</xliff:g> altri"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Download completato."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Download non riuscito."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Wi-Fi richiesto per download"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"In pausa in background."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Download troppo grande per rete operatore"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Devi utilizzare la rete Wi-Fi per completare questo download di <xliff:g id="SIZE">%s </xliff:g>. "\n\n"Tocca <xliff:g id="QUEUE_TEXT">%s </xliff:g> per avviare il download la prossima volta che sei connesso a una rete Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Mettere in coda per scaricare più tardi?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Questo download di <xliff:g id="SIZE">%s </xliff:g> potrebbe ridurre la durata della batteria e/o causare un uso eccessivo della connessione dati mobile con conseguente addebito da parte dell\'operatore."\n\n" Tocca <xliff:g id="QUEUE_TEXT">%s</xliff:g> per avviarlo quando sarai connesso a una rete Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Metti in coda"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Annulla"</string>
    <string name="button_start_now" msgid="792123674007840864">"Avvia adesso"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
</resources>
