<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2017 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name">Aggiornamenti</string>
    <string name="display_name">Aggiornamenti</string>
    <string name="verification_failed_notification">Verifica fallita</string>
    <string name="verifying_download_notification">Verifica aggiornamenti</string>
    <string name="downloading_notification">Download in corso</string>
    <string name="download_paused_notification">Download in pausa</string>
    <string name="download_paused_error_notification">Errore durante il download</string>
    <string name="download_completed_notification">Download completato</string>
    <string name="download_starting_notification">Avvio download</string>
    <string name="update_failed_notification">Aggiornamento fallito</string>
    <string name="installation_suspended_notification">Installazione sospesa</string>
    <string name="new_updates_found_title">Nuovi aggiornamenti</string>
    <string name="text_download_speed">%1$s, %2$s/s</string>
    <string name="pause_button">Pausa</string>
    <string name="resume_button">Riprendi</string>
    <string name="suspend_button">Sospendi</string>
    <string name="installing_update">Installazione del pacchetto aggiornamento</string>
    <string name="installing_update_error">Errore d\'installazione</string>
    <string name="installing_update_finished">Aggiornamento installato</string>
    <string name="finalizing_package">Finalizzalizzazione del pachetto d\'installazione in corso</string>
    <string name="preparing_ota_first_boot">Preparazione per il primo avvio</string>
    <string name="dialog_prepare_zip_message">Preparazione aggiornamento preliminare</string>
    <string name="dialog_battery_low_title">Batteria scarica</string>
    <string name="dialog_battery_low_message_pct">Il livello della batteria è troppo basso, è necessario almeno il <xliff:g id="percent_discharging">%1$d</xliff:g>%% di batteria per continuare, oppure il <xliff:g id="percent_charging">%2$d</xliff:g>%% se il dispositivo è in carica.</string>
    <string name="reboot">Riavvia</string>
    <string name="menu_refresh">Ricarica</string>
    <string name="menu_preferences">Preferenze</string>
    <string name="menu_auto_updates_check">Ricerca aggiornamenti automaticamente</string>
    <string name="menu_auto_updates_check_interval_daily">Quotidianamente</string>
    <string name="menu_auto_updates_check_interval_weekly">Settimanalmente</string>
    <string name="menu_auto_updates_check_interval_monthly">Mensilmente</string>
    <string name="menu_auto_updates_check_interval_never">Mai</string>
    <string name="menu_auto_delete_updates">Elimina gli aggiornamenti dopo l\'installazione</string>
    <string name="menu_delete_update">Elimina</string>
    <string name="menu_copy_url">Copia indirizzo URL</string>
    <string name="menu_export_update">Esporta aggiornamento</string>
    <string name="menu_show_changelog">Mostra il changelog</string>
    <string name="menu_ab_perf_mode">Agg. con priorità</string>
    <string name="snack_updates_found">Nessun aggiornamento trovato</string>
    <string name="snack_no_updates_found">Nessun nuovo aggiornamento trovato</string>
    <string name="snack_updates_check_failed">La verifica di aggiornamenti è fallita. Controlla la connessione ad internet e riprova più tardi.</string>
    <string name="snack_download_failed">Il download dell\'aggiornamento è fallito. Controlla la connessione ad internet e riprova più tardi.</string>
    <string name="snack_download_verification_failed">Verifica dell\'aggiornamento fallita.</string>
    <string name="snack_download_verified">Download aggiornamento completato.</string>
    <string name="snack_update_not_installable">Questo aggiornamento non può essere installato sopra la versione corrente.</string>
    <string name="header_title_text">LineageOS\n%1$s</string>
    <string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string>
    <string name="header_last_updates_check">Ultima verifica: <xliff:g id="date" example="1 Gennaio 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string>
    <string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
    <string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="Luglio 11, 2017">%2$s</xliff:g></string>
    <string name="list_download_progress_new"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> di <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> • <xliff:g id="percentage" example="56">%3$s</xliff:g></string>
    <string name="list_download_progress_eta_new"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> di <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>) • <xliff:g id="percentage" example="56">%4$s</xliff:g></string>
    <string name="list_verifying_update">Verifica aggiornamento</string>
    <string name="list_no_updates">Nessun nuovo aggiornamento trovato. Per controllare manualmente nuovi aggiornamenti, tocca il pulsante Aggiorna.</string>
    <string name="action_download">Download</string>
    <string name="action_pause">Pausa</string>
    <string name="action_resume">Riprendi</string>
    <string name="action_install">Installa</string>
    <string name="action_info">Info</string>
    <string name="action_delete">Elimina</string>
    <string name="action_cancel">Annulla</string>
    <string name="confirm_delete_dialog_title">Elimina file</string>
    <string name="confirm_delete_dialog_message">Eliminare il file di aggiornamento selezionato?</string>
    <string name="apply_update_dialog_title">Applica aggiornamento</string>
    <string name="apply_update_dialog_message">Si sta per aggiornare a <xliff:g id="update_name">%1$s</xliff:g>.\n\nSe si preme <xliff:g id="ok">%2$s</xliff:g>, il dispositivo verrà riavviato in modalità recovery per installare l\'aggiornamento automaticamente.\n\nNota: Questa funzione richiede una recovery compatibile, in caso contrario si dovrà procedere all\'installazione manualmente.</string>
    <string name="apply_update_dialog_message_ab">Si sta per aggiornare a <xliff:g id="update_name">%1$s</xliff:g>.\n\nPremendo <xliff:g id="ok">%2$s</xliff:g>, il dispositivo inizierà l\'installazione in background.\n\nUna volta completato verrà richiesto di riavviare il dispositivo.</string>
    <string name="cancel_installation_dialog_message">Annullare l\'installazione?</string>
    <string name="label_download_url">Download URL</string>
    <string name="toast_download_url_copied">URL copiato</string>
    <string name="dialog_export_title">Esportazione aggiornamento</string>
    <string name="notification_export_success">Aggiornamento esportato</string>
    <string name="notification_export_fail">Errore esportazione</string>
    <string name="toast_already_exporting">Esportazione aggiornamento già in corso</string>
    <plurals name="eta_seconds">
        <item quantity="one">1 secondo rimanente</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> secondi rimanenti</item>
    </plurals>
    <plurals name="eta_minutes">
        <item quantity="one">1 minuto rimanente</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> minuti rimanenti</item>
    </plurals>
    <plurals name="eta_hours">
        <item quantity="one">1 ora rimanente</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> ore rimanenti</item>
    </plurals>
    <string name="update_on_mobile_data_title">Attenzione</string>
    <string name="update_on_mobile_data_message">Stai per scaricare un aggiornamento utilizzando i dati mobili, ciò potrebbe comportare un utilizzo elevato di dati. Vuoi procedere?</string>
    <string name="checkbox_mobile_data_warning">Non mostrare di nuovo</string>
    <string name="menu_mobile_data_warning">Avviso utilizzo dati mobili</string>
    <string name="blocked_update_dialog_title">Aggiornamento bloccato</string>
    <string name="blocked_update_dialog_message">Questo aggiornamento non può essere installato usando l\'app updater.  Si prega di leggere <xliff:g id="info_url">%1$s</xliff:g> per ulteriori informazioni.</string>
    <string name="export_channel_title">Completamento esportazione</string>
    <string name="new_updates_channel_title">Nuovi aggiornamenti</string>
    <string name="ongoing_channel_title">Download in corso</string>
    <string name="update_failed_channel_title">Aggiornamento fallito</string>
</resources>
