<?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 Download"</string>
    <string name="storage_description" msgid="7982444311558023664">"Download"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Akses pengelola download."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Mengizinkan aplikasi mengakses pengelola download dan menggunakannya untuk mendownload file. Aplikasi berbahaya dapat menggunakan ini untuk mengganggu download dan mengakses informasi pribadi."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Fungsi pengelola download lanjutan"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Mengizinkan aplikasi mengakses fungsi lanjutan pengelola download. Aplikasi berbahaya dapat menggunakan ini untuk mengganggu download dan mengakses informasi pribadi."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Kirim pemberitahuan download."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Mengizinkan aplikasi mengirim pemberitahuan tentang download yang telah diselesaikan. Aplikasi berbahaya dapat menggunakan ini untuk mengacaukan aplikasi lain yang mendownload file."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Lihat semua download pada penyimpanan USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Melihat semua download pada kartu SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Mengizinkan apl melihat semua download ke kartu SD, terlepas apl apa yang mendownloadnya."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Ruang penyimpanan dalam cache download"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Mengizinkan apl mendownload file ke cache download yang tidak dapat dihapus secara otomatis saat pengelola download memerlukan lebih banyak ruang."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"download file tanpa pemberitahuan"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Mengizinkan apl mendownload file melalui pengelola download tanpa menampilkan pemberitahuan apa pun kepada pengguna."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Akses semua download sistem"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Mengizinkan apl melihat dan memodifikasi semua download 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">"Download selesai."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Download gagal."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Ukuran download memerlukan Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Dijeda di latar belakang."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Download terlalu besar untuk jaringan operator"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Anda harus menggunakan Wi-Fi untuk menyelesaikan download <xliff:g id="SIZE">%s </xliff:g> ini. \n\nSentuh <xliff:g id="QUEUE_TEXT">%s </xliff:g> untuk memulai download ini saat Anda tersambung lagi ke jaringan Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Antrekan untuk didownload nanti?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Memulai download <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 download 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>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="other">Mendownload <xliff:g id="NUMBER">%d</xliff:g> file</item>
      <item quantity="one">Mendownload 1 file</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> file menunggu</item>
      <item quantity="one">1 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>
    <string name="root_downloads" msgid="4098414876292351487">"Download"</string>
    <string name="download_queued" msgid="3302638231377947451">"Diantrekan"</string>
    <string name="download_running" msgid="3925050393361158266">"Sedang berlangsung"</string>
    <string name="download_error" msgid="5144180777324573236">"Gagal"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Sedang berlangsung, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
