<?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_filename_separator" msgid="7147189522857807618">", "</string>
    <string name="notification_filename_extras" msgid="5549729917695688191">" dan <xliff:g id="NUMBER">%d</xliff:g> lagi"</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>
</resources>
