<?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">"Pengurus Muat Turun"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Akses pengurus muat turun."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Membenarkan aplikasi untuk mengakses pengurus muat turun dan menggunakannya untuk memuat turun fail. Aplikasi berniat jahat boleh menggunakan ini untuk mengganggu muat turun dan mengakses maklumat peribadi."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Fungsi pengurus muat turun lanjutan."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Membenarkan aplikasi mengakses fungsi-fungsi lanjutan pengurus muat turun. Aplikasi berbahaya boleh menggunakan ini untuk mengganggu muat turun dan mengakses maklumat peribadi."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Hantar pemberitahuan muat turun."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Membenarkan aplikasi menghantar pemberitahuan tentang muat turun yang telah siap. Aplikasi berbahaya boleh menggunakan ini untuk mengelirukan aplikasi lain yang memuat turun fail."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Lihat m.turun ke strn USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Lihat semua muat turun ke kad SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Membenarkan aplikasi untuk melihat semua muat turun ke kad SD, tidak kira aplikasi mana yang memuat turun."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Menempah ruang dalam cache muat turun"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Membenarkan aplikasi memuat turun fail ke cache muat turun, yang tidak boleh dipadamkan secara automatik apabila pengurus muat turun memerlukan lebih banyak ruang."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"memuat turun fail tanpa pemberitahuan"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Membenarkan aplikasi memuat turun fail melalui pengurus muat turun tanpa menunjukkan sebarang pemberitahuan kepada pengguna."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Mengakses semua muat turun sistem"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Membenarkan aplikasi untuk melihat dan mengubah suai semua muat turun yang dimulakan oleh mana-mana aplikasi pada sistem."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Tidak bertajuk&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Muat turun selesai."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Muat turun tidak berjaya."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Saiz m.trn perlukn Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Dijeda di latar belakang."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Muat turun terlalu besar untuk operator rangkaian"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Anda mesti menggunakan Wi-Fi untuk melengkapkan muat turun <xliff:g id="SIZE">%s </xliff:g> ini. "\n\n"Sentuh <xliff:g id="QUEUE_TEXT">%s </xliff:g> untuk memulakan muat turun ini lain kali anda disambungkan ke rangkaian Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Baris gilir untuk dimuat turun kemudian?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Memulakan muat turun <xliff:g id="SIZE">%s </xliff:g> ini sekarang mungkin memendekkan hayat bateri dan/atau menyebabkan penggunaan berlebihan sambungan data mudah alih anda, yang boleh menyebabkan caj dikenakan oleh operator mudah alih anda, bergantung kepada pelan data anda."\n\n" Sentuh <xliff:g id="QUEUE_TEXT">%s</xliff:g> untuk memulakan muat turun ini pada kali seterusnya anda disambungkan kepada rangkaian Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Baris gilir"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Batal"</string>
    <string name="button_start_now" msgid="792123674007840864">"Mulakan sekarang"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
  <plurals name="notif_summary_active">
    <item quantity="one" msgid="8475775855911967027">"1 fail sedang dimuat turun"</item>
    <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> fail sedang dimuat turun"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 fail sedang menunggu"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> fail sedang menunggu"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> tinggal"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Tidak dapat membuka fail"</string>
</resources>
