<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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="app_label" msgid="5264040740662487684">"Tagapamahala ng Pag-download"</string>
    <string name="storage_description" msgid="169690279447532621">"Mga Download"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"I-access ang tagapamahala ng pag-download."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"Pinapayagan ang app na i-access ang download manager at gamitin ito upang mag-download ng mga file. Maaari itong gamitin ng mga nakapanghahamak na app upang gambalain ang mga download at mag-access ng pribadong impormasyon."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="2225663947531460795">"Mga advanced na pag-andar ng tagapamahala ng pag-download."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"Pinapayagan ang app na i-access ang mga advanced na paggana ng download manager. Maaari itong gamitin ng mga nakapanghahamak na app upang gambalain ang mga download at mag-access ng pribadong impormasyon."</string>
    <string name="permlab_downloadCompletedIntent" msgid="2674407390116052956">"Magpadala ng mga notification sa pag-download."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"Pinapayagan ang app na magpadala ng mga notification tungkol sa mga nakumpletong download. Maaari itong gamitin ng mga nakapanghahamak na app upang lituhin ang ibang mga app na nagda-download ng mga file."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="4538031250425141333">"Maglaan ng puwang sa download cache"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"Pinapayagan ang app na mag-download ng file sa cache ng download, na hindi awtomatikong matatanggal kapag kailangan ng download manager ng higit na puwang."</string>
    <string name="permlab_downloadWithoutNotification" msgid="4877101864770265405">"mag-download ng mga file nang walang notification"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"Pinapayagan ang app na mag-download ng mga file sa pamamagitan ng download manager nang walang anumang notification na ipinapakita sa user."</string>
    <string name="permlab_accessAllDownloads" msgid="8227356876527248611">"I-access ang lahat ng mga pag-download ng system"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Pinapayagan ang app na tingnan at baguhin ang lahat ng download na sinimulan ng anumang app sa system."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Walang pamagat&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Kumpleto na ang download."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Hindi matagumpay ang pag-download."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Kailangan ng laki ng download ng Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Na-pause sa background."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Masyadong malaki ang download sa operator network"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Dapat kang gumamit ng Wi-Fi upang kumpletuhin ang <xliff:g id="SIZE">%1$s </xliff:g> na download na ito. \n\nPindutin ang <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> upang simulan ang download na ito sa susunod na oras na nakakonekta ka sa Wi-Fi network."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"I-queue para sa pag-download sa ibang pagkakataon?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Ang pagsisimula sa <xliff:g id="SIZE">%1$s </xliff:g> na download na ito ngayon ay maaaring magpaikli sa buhay ng iyong baterya at/o magresulta sa labis-labis na paggamit ng iyong koneksyon ng data sa mobile, na maaaring humantong sa mga pagsingil ng iyong mobile operator depende sa iyong plan ng data.\n\n Pindutin ang <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> upang simulan ang download na ito sa susunod na oras nakakonekta ka sa isang Wi-Fi network."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Queue"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Kanselahin"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Magsimula ngayon"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> file ang dina-download</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> na file ang dina-download</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="1782251721955177526">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> file ang hinihintay</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> na file ang hinihintay</item>
    </plurals>
    <string name="download_remaining" msgid="2313089371178695625">"<xliff:g id="DURATION">%s</xliff:g> ang natitira"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Hindi mabuksan ang file"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Mga Download"</string>
    <string name="download_queued" msgid="3383844741769045371">"Naka-queue"</string>
    <string name="download_running" msgid="774654178925442490">"Isinasagawa"</string>
    <string name="download_error" msgid="1857737890005386798">"Hindi matagumpay"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"Isinasagawa, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
