<?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">Actualizador</string>
    <string name="display_name">Actualizador</string>
    <string name="verification_failed_notification">Verificación fallida</string>
    <string name="verifying_download_notification">Verificando actualización</string>
    <string name="downloading_notification">Descargando</string>
    <string name="download_paused_notification">Descarga pausada</string>
    <string name="download_paused_error_notification">Error de descarga</string>
    <string name="download_completed_notification">Descarga completada</string>
    <string name="download_starting_notification">Iniciando descarga</string>
    <string name="new_updates_found_title">Nuevas actualizaciones</string>
    <string name="text_download_speed">%1$s, %2$s/s</string>
    <string name="pause_button">Pausar</string>
    <string name="resume_button">Reanudar</string>
    <string name="installing_update">Instalando paquete de actualización</string>
    <string name="installing_update_error">Error de instalación</string>
    <string name="installing_update_finished">Actualización instalada</string>
    <string name="finalizing_package">Finalizando instalación del paquete</string>
    <string name="preparing_ota_first_boot">Preparando para el primer arranque</string>
    <string name="dialog_prepare_zip_message">Preparación preliminar de la actualización</string>
    <string name="reboot">Reiniciar</string>
    <string name="menu_refresh">Actualizar</string>
    <string name="menu_preferences">Preferencias</string>
    <string name="menu_auto_updates_check">Comprobación de actualizaciones automática</string>
    <string name="menu_auto_delete_updates">Borrar actualizaciones luego de instalar</string>
    <string name="menu_delete_update">Borrar</string>
    <string name="menu_copy_url">Copiar URL</string>
    <string name="menu_export_update">Exportar actualización</string>
    <string name="menu_show_changelog">Mostrar registro de cambios</string>
    <string name="snack_updates_found">Se encontraron nuevas actualizaciones</string>
    <string name="snack_no_updates_found">No se encontraron nuevas actualizaciones</string>
    <string name="snack_updates_check_failed">Error en la comprobación de actualizaciones. Por favor, verifique la conexión a Internet e inténtalo nuevamente.</string>
    <string name="snack_download_failed">Descarga fallida. Compruebe la conexión a Internet e inténtelo nuevamente.</string>
    <string name="snack_download_verification_failed">La verificación de la actualización falló.</string>
    <string name="snack_download_verified">Descarga completada.</string>
    <string name="snack_update_not_installable">Esta actualización no puede instalarse encima de la versión actual.</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 comprobación: <xliff:g id="date" example="1 January 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="July 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> de <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_verifying_update">Verificando actualización</string>
    <string name="list_no_updates">Sin nuevas actualizaciones disponibles. Para comprobar manualmente, pulsa el botón «Actualizar».</string>
    <string name="action_download">Descargar</string>
    <string name="action_pause">Pausar</string>
    <string name="action_resume">Reanudar</string>
    <string name="action_install">Instalar</string>
    <string name="action_info">Información</string>
    <string name="action_cancel">Cancelar</string>
    <string name="confirm_delete_dialog_title">Borrar archivo</string>
    <string name="confirm_delete_dialog_message">¿Borrar el archivo de actualización seleccionado?</string>
    <string name="apply_update_dialog_title">Aplicar actualización</string>
    <string name="apply_update_dialog_message">Actualizarás a <xliff:g id="filename">%1$s</xliff:g>.\n\nAl pulsar en <xliff:g id="ok">%2$s</xliff:g>, se reiniciará el dispositivo en modo «Recovery» para instalar la actualización.\n\nNota: Esta función requiere un «Recovery» compatible o las actualizaciones deberán instalarse manualmente.</string>
    <string name="apply_update_dialog_message_ab">Actualizarás a <xliff:g id="filename">%1$s</xliff:g>. \n\nAl pulsar en <xliff:g id="ok">%2$s</xliff:g>, el dispositivo comenzará a instalar en segundo plano.\n\nUna vez terminado el proceso, se le pedirá que reinicie.</string>
    <string name="cancel_installation_dialog_message">¿Cancelar la instalación?</string>
    <string name="label_download_url">URL de descarga</string>
    <string name="toast_download_url_copied">URL copiada</string>
    <string name="dialog_export_title">Exportando actualización</string>
    <string name="notification_export_success">Actualización exportada</string>
    <string name="notification_export_fail">Error de exportación</string>
    <string name="toast_already_exporting">Ya se está exportando una actualización</string>
    <string name="update_on_mobile_data_title">Advertencia</string>
    <string name="update_on_mobile_data_message">Se descargará un paquete de actualización usando los datos móviles, que probablemente ocasione un alto consumo de datos. ¿Quieres continuar?</string>
    <string name="checkbox_mobile_data_warning">No mostrar de nuevo</string>
    <string name="menu_mobile_data_warning">Advertencia de datos móviles</string>
    <string name="blocked_update_dialog_title">Actualización bloqueada</string>
    <string name="blocked_update_dialog_message">Esta actualización no puede instalarse usando la aplicación «Actualizador».  Lea <xliff:g id="info_url">%1$s</xliff:g> para más información.</string>
    <string name="export_channel_title">Exportación finalizada</string>
    <string name="new_updates_channel_title">Nuevas actualizaciones</string>
    <string name="ongoing_channel_title">Descargas en curso</string>
</resources>
