<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2020 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="summary_separator" msgid="6533720408587140819">" / "</string>
    <string name="auto_connect_disable" msgid="1078319396240632542">"La conexión automática está desactivada"</string>
    <string name="saved_network" msgid="6241977554502802914">"Guardada por <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="wifi_no_internet_no_reconnect" msgid="3089980800841926268">"No se conectará automáticamente"</string>
    <string name="wifi_no_internet" msgid="4461212237521310895">"No hay acceso a Internet"</string>
    <string name="wifi_disabled_password_failure" msgid="3015007143699702403">"Problema de autenticación"</string>
    <string name="wifi_check_password_try_again" msgid="2643230209986217827">"Revisa la contraseña y vuelve a intentarlo"</string>
    <string name="wifi_disabled_network_failure" msgid="6506742207778007439">"Error de configuración de IP"</string>
    <string name="wifi_disabled_generic" msgid="8307050327779256414">"Inhabilitada"</string>
    <string name="wifi_ap_unable_to_handle_new_sta" msgid="6552198761671428871">"El punto de acceso está completo temporalmente"</string>
    <string name="wifi_disconnected" msgid="3720926757662831062">"Desconectado"</string>
    <string name="wifi_remembered" msgid="5126903736498678708">"Guardado"</string>
    <string name="wifi_metered_label" msgid="1362621600006544014">"De uso medido"</string>
    <string name="wifi_unmetered_label" msgid="499466875639448350">"Sin tarifa plana"</string>
    <string name="connected_via_app" msgid="1818040967936972127">"Conexión a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="available_via_app" msgid="9110324040292242769">"Disponible a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="connected_via_network_scorer" msgid="209764314005159012">"Se conectó automáticamente a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="connected_via_network_scorer_default" msgid="3084818437004202462">"Conectado automáticamente mediante proveedor de calificación de red"</string>
    <string name="wifi_limited_connection" msgid="3646701342701276239">"Conexión limitada"</string>
    <string name="private_dns_broken" msgid="2212227512243587416">"No se puede acceder al servidor DNS privado"</string>
    <string name="wifi_connected_no_internet" msgid="7273909077465731259">"Sin Internet"</string>
    <string name="wifi_connected_low_quality" msgid="4478331645458058445">"Baja calidad"</string>
    <string name="wifi_security_none" msgid="6680263031386719053">"Ninguna"</string>
    <string name="wifi_passpoint_expired" msgid="3257021415099577815">"Vencida"</string>
    <string name="tap_to_sign_up" msgid="2409214576606918295">"Presiona para registrarte"</string>
    <string name="tap_to_renew_subscription_and_connect" msgid="375976298920840105">"Presiona para renovar la suscripción y conectarte"</string>
    <string name="osu_opening_provider" msgid="5633521771769175139">"Abriendo <xliff:g id="PASSPOINTPROVIDER">%1$s</xliff:g>"</string>
    <string name="osu_connect_failed" msgid="8503501619299851793">"No se pudo establecer conexión"</string>
    <string name="osu_completing_sign_up" msgid="7188493241442946231">"Completando registro…"</string>
    <string name="osu_sign_up_failed" msgid="2725057866968590279">"No se pudo completar el registro. Presiona para volver a intentarlo."</string>
    <string name="osu_sign_up_complete" msgid="7013805426618985953">"Se completó el registro. Conectando…"</string>
    <string name="imsi_protection_warning" msgid="3207104049473134195">"Esta red recibe un ID único que se puede usar para realizar el seguimiento de la ubicación del dispositivo. "<annotation id="url">"Más información"</annotation></string>
    <string name="speed_label_very_slow" msgid="2401582671941367179">"Muy lenta"</string>
    <string name="speed_label_slow" msgid="8410385703344502127">"Lenta"</string>
    <string name="speed_label_okay" msgid="3741857805086997968">"Aceptar"</string>
    <string name="speed_label_medium" msgid="3175703848952862009">"Media"</string>
    <string name="speed_label_fast" msgid="8344116097613544322">"Rápida"</string>
    <string name="speed_label_very_fast" msgid="1595806641512447877">"Muy rápida"</string>
</resources>
