<?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">"Pengelola Unduhan"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Akses pengelola unduhan."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Mengizinkan apl mengakses pengelola unduhan dan menggunakannya untuk mengunduh file. Apl berbahaya dapat menggunakan ini untuk mengganggu unduhan dan mengakses informasi pribadi."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Fungsi pengelola unduhan lanjutan"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Mengizinkan apl mengakses fungsi lanjutan pengelola unduhan. Apl berbahaya dapat menggunakan ini untuk mengganggu unduhan dan mengakses informasi pribadi."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Kirim pemberitahuan unduhan."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Mengizinkan apl mengirim pemberitahuan tentang unduhan yang telah diselesaikan. Apl berbahaya dapat menggunakan ini untuk mengacaukan apl lain yang mengunduh file."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Lihat semua unduhan pada penyimpanan USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Melihat semua unduhan pada kartu SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Mengizinkan apl melihat semua unduhan ke kartu SD, terlepas apl apa yang mengunduhnya."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Ruang penyimpanan dalam cache unduhan"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Mengizinkan apl mengunduh file ke cache unduhan yang tidak dapat dihapus secara otomatis saat pengelola unduhan memerlukan lebih banyak ruang."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"unduh file tanpa pemberitahuan"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Mengizinkan apl mengunduh file melalui pengelola unduhan tanpa menampilkan pemberitahuan apa pun kepada pengguna."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Akses semua unduhan sistem"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Mengizinkan apl melihat dan memodifikasi semua unduhan yang dimulai oleh apl apa pun pada sistem."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Tanpa judul&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Unduhan selesai."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Unduhan gagal."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Ukuran unduhan memerlukan Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Dijeda di latar belakang."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Unduhan terlalu besar untuk jaringan operator"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Anda harus menggunakan Wi-Fi untuk menyelesaikan unduhan <xliff:g id="SIZE">%s </xliff:g> ini. "\n\n"Sentuh <xliff:g id="QUEUE_TEXT">%s </xliff:g> untuk memulai unduhan ini saat Anda tersambung lagi ke jaringan Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Antrekan untuk diunduh nanti?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Memulai unduhan <xliff:g id="SIZE">%s </xliff:g> ini sekarang dapat mempersingkat masa pakai baterai Anda dan/atau menyebabkan penggunaan berlebih dari sambungan data seluler, yang dapat berakibat dikenai tagihan oleh operator ponsel, tergantung paket data Anda."\n\n" Sentuh <xliff:g id="QUEUE_TEXT">%s</xliff:g> untuk memulai unduhan ini saat Anda tersambung lagi ke jaringan Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Antrean"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Batal"</string>
    <string name="button_start_now" msgid="792123674007840864">"Mulai 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">"Mengunduh 1 file"</item>
    <item quantity="other" msgid="9087228371320573153">"Mengunduh <xliff:g id="NUMBER">%d</xliff:g> file"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 file menunggu"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> file menunggu"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> lagi"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Tidak dapat membuka file"</string>
</resources>
