<?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">"Download Manager"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Access download manager."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Allows the app to access the download manager and to use it to download files. Malicious apps can use this to disrupt downloads and access private information."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Advanced download manager functions."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Allows the app to access the download manager\'s advanced functions. Malicious apps can use this to disrupt downloads and access private information."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Send download notifications."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Allows the app to send notifications about completed downloads. Malicious apps can use this to confuse other apps that download files."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"See all downloads to USB storage"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"See all downloads to SD card"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Allows the app to see all downloads to the SD card, regardless of which app downloaded them."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reserve space in the download cache"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Allows the app to download files to the download cache, which can\'t be deleted automatically when the download manager needs more space."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"download files without notification"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Allows the application to download files through the download manager without any notification being shown to the user."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Access all system downloads"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Allows the app to view and modify all downloads initiated by any app on the system."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Untitled&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Download complete."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Download unsuccessful."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Download size requires Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Paused in background"</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Download too large for operator network"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"You must use Wi-Fi to complete this <xliff:g id="SIZE">%s </xliff:g> download. "\n\n"Touch <xliff:g id="QUEUE_TEXT">%s </xliff:g> to start this download the next time that you\'re connected to a Wi-Fi network."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Queue for download later?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Starting this <xliff:g id="SIZE">%s </xliff:g> download now may shorten your battery life and/or result in excessive usage of your mobile data connection, which can lead to charges by your mobile operator depending on your data plan."\n\n" Touch <xliff:g id="QUEUE_TEXT">%s</xliff:g> to start this download the next time that you\'re connected to a Wi-Fi network."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Queue"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Cancel"</string>
    <string name="button_start_now" msgid="792123674007840864">"Start now"</string>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
    <!-- no translation found for notif_summary_active:one (8475775855911967027) -->
    <!-- no translation found for notif_summary_active:other (9087228371320573153) -->
    <!-- no translation found for notif_summary_waiting:one (5537481763963544278) -->
    <!-- no translation found for notif_summary_waiting:other (549229034166062887) -->
    <!-- no translation found for download_no_application_title (7935659741162801699) -->
    <skip />
</resources>
