<?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="3658948994665187911">"Tagapamahala ng Pag-download"</string>
    <string name="storage_description" msgid="7982444311558023664">"Mga Download"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"I-access ang tagapamahala ng pag-download."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"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="7103642833308809655">"Mga advanced na pag-andar ng tagapamahala ng pag-download."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"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="945913803765675685">"Magpadala ng mga notification sa pag-download."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"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_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Tingnan download sa USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Tingnan ang lahat ng mga pag-download sa SD card"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Pinapayagan ang app na makita ang lahat ng download sa SD card, kahit na anong app ang nag-download sa mga iyon."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Maglaan ng puwang sa download cache"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"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="8837971946078327262">"mag-download ng mga file nang walang notification"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"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="2436240495424393717">"I-access ang lahat ng mga pag-download ng system"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"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="7015124071247271585">"&lt;Walang pamagat&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Kumpleto na ang download."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Hindi matagumpay ang pag-download."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Kailangan ng laki ng download ng Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Na-pause sa background."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Masyadong malaki ang download sa operator network"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Dapat kang gumamit ng Wi-Fi upang kumpletuhin ang <xliff:g id="SIZE">%s </xliff:g> na download na ito. \n\nPindutin ang <xliff:g id="QUEUE_TEXT">%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="7441589306734687400">"I-queue para sa pag-download sa ibang pagkakataon?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Ang pagsisimula sa <xliff:g id="SIZE">%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">%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="422576726189179221">"Queue"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Kanselahin"</string>
    <string name="button_start_now" msgid="792123674007840864">"Magsimula ngayon"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <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="2814217662029273005">
      <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="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> ang natitira"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Hindi mabuksan ang file"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Mga Download"</string>
    <string name="download_queued" msgid="3302638231377947451">"Naka-queue"</string>
    <string name="download_running" msgid="3925050393361158266">"Isinasagawa"</string>
    <string name="download_error" msgid="5144180777324573236">"Hindi matagumpay"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Isinasagawa, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
