<?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="storage_description" msgid="7982444311558023664">"Downloads"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Acessar o gerenciador de download."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permite que o app acesse o gerenciador de download e o use para fazer download de arquivos. Apps 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 app acesse funções avançadas do gerenciador de download. Apps 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 app envie notificações sobre downloads concluídos. Apps maliciosos podem usar esse envio para confundir outros apps 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 app 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 app 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 app visualize e modifique todos os downloads iniciados por qualquer app 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\nToque 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>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> arquivos em download</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> arquivos em download</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> arquivos em espera</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> arquivos em espera</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> restantes"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Não é possível abrir o arquivo"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Downloads"</string>
    <string name="download_queued" msgid="3302638231377947451">"Na fila"</string>
    <string name="download_running" msgid="3925050393361158266">"Em andamento"</string>
    <string name="download_error" msgid="5144180777324573236">"Falha"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Em andamento, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
