<?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">"Gerenciador de downloads"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Acessar o gerenciador de download."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permite que o aplicativo acesse o gerenciador de download e o use para fazer download de arquivos. Aplicativos maliciosos podem usar essa ação para interromper downloads e acessar informações privadas."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funções avançadas do gerenciador de download."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permite que o aplicativo acesse funções avançadas do gerenciador de download. Aplicativos maliciosos podem usar essa ação para interromper downloads e acessar informações privadas."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Enviar notificações de download."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permite que o aplicativo envie notificações sobre downloads concluídos. Aplicativos maliciosos podem usar esse envio para confundir outros aplicativos que fazem download de arquivos."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Ver downloads armaz. USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ver todos os downloads para o cartão SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite que o aplicativo veja todos os downloads do cartão SD, independentemente de sua origem."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservar espaço no cache de download"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite que o aplic. faça download de arquivos no cache de downloads, que não podem ser excl. automatic. quando o gerenc. de download precisar de mais espaço."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"fazer download de arquivos sem notificação"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permite que o aplicativo faça download de arquivos por meio do gerenciador de download sem exibir notificações ao usuário."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Acessar todos os downloads do sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que o aplicativo visualize e modifique todos os downloads iniciados por qualquer aplicativo no sistema."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Sem título&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Download concluído."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Falha no download."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"O tamanho do download requer Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Paus. em segundo plano."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Download muito grande para a rede da operadora"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Você deve usar o Wi-Fi para completar o download de <xliff:g id="SIZE">%s </xliff:g>. "\n\n"Toque em <xliff:g id="QUEUE_TEXT">%s </xliff:g> para começar o download da próxima vez que você estiver conectado a uma rede Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Colocar em fila para download mais tarde?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"O download de <xliff:g id="SIZE">%s </xliff:g> agora diminui a vida da bateria e resulta no uso excess. da conexão, levando a cobr. de acordo com seu plano de dados."\n\n" Toque em <xliff:g id="QUEUE_TEXT">%s</xliff:g> para fazer o download quando conect. a uma rede Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Fila"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Cancelar"</string>
    <string name="button_start_now" msgid="792123674007840864">"Iniciar agora"</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>
