<?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">"Naka-off ang Auto-connect"</string>
    <string name="saved_network" msgid="6241977554502802914">"Na-save ng <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="wifi_no_internet_no_reconnect" msgid="3089980800841926268">"Hindi awtomatikong kokonekta"</string>
    <string name="wifi_no_internet" msgid="4461212237521310895">"Walang access sa internet"</string>
    <string name="wifi_disabled_password_failure" msgid="3015007143699702403">"Problema sa pag-authenticate"</string>
    <string name="wifi_check_password_try_again" msgid="2643230209986217827">"Suriin ang password at subukang muli"</string>
    <string name="wifi_disabled_network_failure" msgid="6506742207778007439">"Hindi na-configure ang IP"</string>
    <string name="wifi_disabled_generic" msgid="8307050327779256414">"Naka-disable"</string>
    <string name="wifi_ap_unable_to_handle_new_sta" msgid="6552198761671428871">"Pansamantalang puno ang access point"</string>
    <string name="wifi_disconnected" msgid="3720926757662831062">"Nadiskonekta"</string>
    <string name="wifi_remembered" msgid="5126903736498678708">"Na-save"</string>
    <string name="wifi_metered_label" msgid="1362621600006544014">"Nakametro"</string>
    <string name="wifi_unmetered_label" msgid="499466875639448350">"Hindi Nakametro"</string>
    <string name="connected_via_app" msgid="1818040967936972127">"Nakakonekta sa pamamagitan ng <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="available_via_app" msgid="9110324040292242769">"Available sa pamamagitan ng <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="connected_via_network_scorer" msgid="209764314005159012">"Awtomatikong nakakonekta sa pamamagitan ng <xliff:g id="NAME">%1$s</xliff:g>"</string>
    <string name="connected_via_network_scorer_default" msgid="3084818437004202462">"Awtomatikong nakakonekta sa pamamagitan ng provider ng rating ng network"</string>
    <string name="wifi_limited_connection" msgid="3646701342701276239">"Limitadong koneksyon"</string>
    <string name="private_dns_broken" msgid="2212227512243587416">"Hindi ma-access ang pribadong DNS server"</string>
    <string name="wifi_connected_no_internet" msgid="7273909077465731259">"Walang internet"</string>
    <!-- no translation found for wifi_connected_low_quality (4478331645458058445) -->
    <skip />
    <string name="wifi_security_none" msgid="6680263031386719053">"Wala"</string>
    <string name="wifi_passpoint_expired" msgid="3257021415099577815">"Nag-expire na"</string>
    <string name="tap_to_sign_up" msgid="2409214576606918295">"I-tap para mag-sign up"</string>
    <string name="tap_to_renew_subscription_and_connect" msgid="375976298920840105">"I-tap para i-renew ang subscription at kumonekta"</string>
    <string name="osu_opening_provider" msgid="5633521771769175139">"Binubuksan ang <xliff:g id="PASSPOINTPROVIDER">%1$s</xliff:g>"</string>
    <string name="osu_connect_failed" msgid="8503501619299851793">"Hindi makakonekta"</string>
    <string name="osu_completing_sign_up" msgid="7188493241442946231">"Kinukumpleto ang pag-sign up…"</string>
    <string name="osu_sign_up_failed" msgid="2725057866968590279">"Hindi makumpleto ang pag-sign up. I-tap para subukan ulit."</string>
    <string name="osu_sign_up_complete" msgid="7013805426618985953">"Kumpleto na ang pag-sign up. Kumokonekta…"</string>
    <string name="imsi_protection_warning" msgid="5231726821588271569">"Tumatanggap ang network na ito ng SIM ID na magagamit sa pagsubaybay ng lokasyon ng device. "<annotation id="url">"Matuto pa"</annotation></string>
    <string name="speed_label_very_slow" msgid="2401582671941367179">"Napakabagal"</string>
    <string name="speed_label_slow" msgid="8410385703344502127">"Mabagal"</string>
    <string name="speed_label_okay" msgid="3741857805086997968">"OK"</string>
    <string name="speed_label_medium" msgid="3175703848952862009">"Katamtaman"</string>
    <string name="speed_label_fast" msgid="8344116097613544322">"Mabilis"</string>
    <string name="speed_label_very_fast" msgid="1595806641512447877">"Napakabilis"</string>
</resources>
