<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2013-2015 The CyanogenMod Project
     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">Asistente de configuración</string>
    <string name="next">Seguinte</string>
    <string name="skip">Omitir</string>
    <string name="start">Comezar</string>
    <string name="done">Feito</string>
    <string name="ok">Aceptar</string>
    <string name="loading">Só un seg.\u2026</string>
    <string name="setup_complete">A configuración está completa</string>
    <string name="setup_welcome">Dámoslle a benvida</string>
    <string name="setup_locale">Linguaxe</string>
    <string name="setup_wifi">Escolle rede Wi-Fi</string>
    <string name="setup_sim_missing">Falta a tarxeta SIM</string>
    <string name="setup_choose_data_sim">Escolle unha SIM para datos</string>
    <string name="setup_location">Servizos de localización</string>
    <string name="setup_other">Outros servizos</string>
    <string name="setup_datetime">Data e hora</string>
    <string name="setup_current_date">Data actual</string>
    <string name="setup_current_time">Hora actual</string>
    <string name="sim_missing_summary" product="tablet">Non se detectou a tarxeta SIM na túa tableta. Para inserila, le as instrucións que veñen co dispositivo.</string>
    <string name="sim_missing_summary" product="default">Non se detectou a tarxeta SIM no teu teléfono. Para inserila, le as instrucións que veñen co dispositivo.</string>
    <string name="choose_data_sim_summary" product="tablet">Que SIM quere utilizar para datos? A tarxeta SIM elixida podería incorrer en cargos adicionais e utilizarase para configurar a súa tableta.</string>
    <string name="choose_data_sim_summary" product="default">Que SIM quere utilizar para datos? A tarxeta SIM elixida podería incorrer en cargos adicionais e utilizarase para configurar o seu teléfono.</string>
    <string name="date_time_summary">Configure a súa zona horaria e axuste a hora e data se é preciso</string>
    <string name="backup_data_summary"><b>Garda copia</b> dos datos de aplicacións, contrasinais Wi-Fi e outras configuracións nos servidores de Google</string>
    <string name="other_services_summary">Estes servizos fan que Google traballe para vostede e pode desactivalos ou activalos cando queira. Os datos utilizaranse de acordo coa<xliff:g id="name" example="Política de privacidade">%s</xliff:g> de Google.</string>
    <string name="location_services_summary">Os servizos de localización permítenlle ao sistema e a aplicacións de terceiros reunir e utilizar datos como a súa localización aproximada. Por exemplo, unha aplicación pode utilizar a localización aproximada para determinar as cafetarías próximas.</string>
    <string name="location_access_summary"><b>Permite que as aplicacións se teñen o teu permiso</b> utilicen a información sobre a túa localización, o que pode incluír á presente e ás pasadas.</string>
    <string name="setup_mobile_data">Activar os datos móbeis</string>
    <string name="setup_mobile_data_no_service">Sen servizo</string>
    <string name="setup_mobile_data_emergency_only">Só chamadas de urxencia</string>
    <string name="enable_mobile_data_summary">Queres utilizar os datos móbeis durante a configuración? Ao facelo pódense producir gastos adicionais no plan de datos contratado.</string>
    <string name="no">Non</string>
    <string name="yes">Si</string>
    <string name="data_sim_name">SIM <xliff:g id="sub">%1$d</xliff:g> - <xliff:g id="name">%2$s</xliff:g></string>
    <string name="emergency_call">Chamada de emerxencia</string>
    <string name="setup_services">Actualizacións de LineageOS</string>
    <string name="services_privacy_policy">Política de privacidade</string>
    <string name="services_help_improve_cm">Axuda a mellorar <xliff:g id="name" example="LineageOS">%s</xliff:g></string>
    <string name="services_os_nav_keys_label"><b>Usar as teclas de navegación</b> en vez das do hardware.</string>
    <string name="setup_unlock">Desbloquear</string>
    <string name="setup_device_locked">Este dispositivo foi bloqueado polo usuario.</string>
    <string name="setup_require_cyanogen_label"><b>Precísase o seu contrasinal</b> para poder utilizar o seu dispositivo mesmo tras unha restauración de fábrica.</string>
    <string name="setup_device_locked_instructions"><i>Para acender ou apagar esta funcionalidade, vaia a Configuración &gt; Seguranza</i></string>
    <string name="settings_biometric_setup_title">Seleccione o tipo de copia de seguranza de pantalla de bloqueo</string>
    <string name="settings_biometric_setup_details">Como quere bloquear a súa pantalla?</string>
    <string name="fingerprint_setup_title">Configuración da pegada dactilar</string>
    <string name="fingerprint_setup_summary">Para utilizar o sensor de pegada dactilar co que desbloquear a pantalla, precisará:</string>
    <string name="fingerprint_setup_add_fingerprint">Engadir a súa pegada dactilar</string>
    <string name="face_setup_title">Configurar faciana</string>
    <string name="face_setup_summary">Para empregar a túa faciana para desbloquear a pantalla, precisarás:</string>
    <string name="face_setup_add_face">Engade a túa faciana</string>
    <string name="biometric_setup_backup_lock_method">Configurar un método secundario de desbloqueo</string>
    <string name="biometric_setup_screen_lock_setup">Configurar o bloqueo da pantalla</string>
    <string name="sim_locale_changed">%1$s SIM detectado</string>
    <string name="settings_lockscreen_setup_title">Seleccionar o tipo de bloqueo da pantalla</string>
    <string name="settings_lockscreen_setup_details">Como quere bloquear a súa pantalla?</string>
    <string name="lockscreen_setup_title" product="tablet">Protexe a túa tableta</string>
    <string name="lockscreen_setup_title" product="default">Protexe o teu móbil</string>
    <string name="lockscreen_setup_summary"><b>Protexe o dispositivo</b> e solicitar un PIN, patrón ou contrasinal para desbloquear a pantalla</string>
    <string name="lockscreen_setup_screen_lock_setup">Configura</string>
    <string name="intro_restore_title">Restaurar aplicacións e datos</string>
    <string name="intro_restore_subtitle" product="tablet">Se tes unha copia de seguranza da túa última tableta con LineageOS, podes restaurala aquí.</string>
    <string name="intro_restore_subtitle" product="default">Se tes unha copia de seguranza do teu último teléfono con LineageOS, podes restaurala aquí.</string>
    <string name="intro_restore_button">Restaurar dende a copia de seguranza</string>
    <string name="update_recovery_title">Actualizar Recuperador de Lineage</string>
    <string name="update_recovery_description">Actualiza o Recuperador do Lineage no primeiro arranque despois de cada actualización.</string>
    <string name="update_recovery_warning">O Recuperador actualizarase axiña que remates a configuración. Se desexas mantelo intacto, desactiva esta función.</string>
    <string name="update_recovery_setting">Actualizar o Recuperador de Lineage xunto co sistema operativo</string>
</resources>
