<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2017-2020 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">Atualizador</string>
    <string name="display_name">Atualizador</string>
    <string name="verification_failed_notification">Falha na verificação</string>
    <string name="verifying_download_notification">Verificando atualização</string>
    <string name="downloading_notification">Baixando</string>
    <string name="download_paused_notification">Download pausado</string>
    <string name="download_paused_error_notification">Erro ao baixar</string>
    <string name="download_completed_notification">Download concluído</string>
    <string name="download_starting_notification">Iniciando download</string>
    <string name="update_failed_notification">Falha ao atualizar</string>
    <string name="installation_suspended_notification">Instalação suspensa</string>
    <string name="new_updates_found_title">Novas atualizações</string>
    <string name="text_download_speed">%1$s, %2$s/s</string>
    <string name="pause_button">Pausar</string>
    <string name="resume_button">Continuar</string>
    <string name="suspend_button">Suspender</string>
    <string name="installing_update">Instalando o pacote de atualização</string>
    <string name="installing_update_error">Erro de instalação</string>
    <string name="installing_update_finished">Atualização instalada</string>
    <string name="finalizing_package">Finalizando a instalação do pacote</string>
    <string name="preparing_ota_first_boot">Preparando-se para a primeira inicialização</string>
    <string name="dialog_prepare_zip_message">Preparação preliminar de atualização</string>
    <string name="dialog_battery_low_title">Bateria fraca</string>
    <string name="dialog_battery_low_message_pct">O nível da bateria está muito baixo, precisando de, pelo menos, <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria para continuar, ou <xliff:g id="percent_charging">%2$d</xliff:g>%% se estiver carregando.</string>
    <string name="reboot">Reiniciar</string>
    <string name="menu_refresh">Atualizar</string>
    <string name="menu_preferences">Preferências</string>
    <string name="menu_auto_updates_check">Autoverificar por atualizações</string>
    <string name="menu_auto_updates_check_interval_daily">Diariamente</string>
    <string name="menu_auto_updates_check_interval_weekly">Semanalmente</string>
    <string name="menu_auto_updates_check_interval_monthly">Mensalmente</string>
    <string name="menu_auto_updates_check_interval_never">Nunca</string>
    <string name="menu_auto_delete_updates">Excluir pacotes instalados</string>
    <string name="menu_delete_update">Excluir</string>
    <string name="menu_copy_url">Copiar URL</string>
    <string name="menu_export_update">Exportar atualização</string>
    <string name="menu_show_changelog">Mostrar alterações</string>
    <string name="menu_ab_perf_mode">Priorizar o processo de atualização</string>
    <string name="snack_updates_found">Nova atualização disponível</string>
    <string name="snack_no_updates_found">Não foram encontradas novas atualizações</string>
    <string name="snack_updates_check_failed">Falha ao procurar por atualizações. Verifique sua conexão com a internet e tente novamente.</string>
    <string name="snack_download_failed">Falha ao baixar a atualização. Verifique sua conexão com a internet e tente novamente.</string>
    <string name="snack_download_verification_failed">Falha na verificação da atualização.</string>
    <string name="snack_download_verified">Download concluído.</string>
    <string name="snack_update_not_installable">Esta atualização não pode ser instalada por cima da versão atual.</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">Última verificação: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> às <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="July 11, 2017">%2$s</xliff:g></string>
    <string name="list_verifying_update">Verificando atualização</string>
    <string name="list_no_updates">Não foram encontradas novas atualizações. Use o botão Atualizar para buscar por novas atualizações manualmente.</string>
    <string name="action_download">Baixar</string>
    <string name="action_pause">Pausar</string>
    <string name="action_resume">Continuar</string>
    <string name="action_install">Instalar</string>
    <string name="action_info">Informações</string>
    <string name="action_delete">Excluir</string>
    <string name="action_cancel">Cancelar</string>
    <string name="confirm_delete_dialog_title">Excluir arquivo</string>
    <string name="confirm_delete_dialog_message">Excluir o arquivo de atualização selecionado?</string>
    <string name="apply_update_dialog_title">Instalar atualização</string>
    <string name="cancel_installation_dialog_message">Deseja cancelar a instalação?</string>
    <string name="label_download_url">URL de Download</string>
    <string name="toast_download_url_copied">URL copiado</string>
    <string name="dialog_export_title">Exportando atualização</string>
    <string name="notification_export_success">Atualização exportada</string>
    <string name="notification_export_fail">Falha ao exportar</string>
    <string name="toast_already_exporting">Uma atualização já está sendo exportada</string>
    <plurals name="eta_seconds">
        <item quantity="one">1 segundo restante</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> segundos restantes</item>
    </plurals>
    <plurals name="eta_minutes">
        <item quantity="one">1 minuto restante</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> minutos restantes</item>
    </plurals>
    <plurals name="eta_hours">
        <item quantity="one">1 hora restante</item>
        <item quantity="other"><xliff:g id="count">%d</xliff:g> horas restantes</item>
    </plurals>
    <string name="update_on_mobile_data_title">Aviso</string>
    <string name="update_on_mobile_data_message">Você está prestes a baixar um pacote de atualização usando os dados móveis, o que provavelmente causará um alto consumo de dados. Deseja continuar?</string>
    <string name="checkbox_mobile_data_warning">Não mostrar novamente</string>
    <string name="menu_mobile_data_warning">Aviso de dados móveis</string>
    <string name="blocked_update_dialog_title">Atualização bloqueada</string>
    <string name="blocked_update_dialog_message">Esta atualização não pode ser instalada pelo Atualizador. Leia <xliff:g id="info_url">%1$s</xliff:g> para obter mais informações.</string>
    <string name="export_channel_title">Exportação concluída</string>
    <string name="new_updates_channel_title">Novas atualizações</string>
    <string name="ongoing_channel_title">Downloads em andamento</string>
    <string name="update_failed_channel_title">Falha ao atualizar</string>
</resources>
