<?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">"Gestor de Transferências"</string>
    <string name="storage_description" msgid="7982444311558023664">"Transferências"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Aceder ao gestor de transferências."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permite que a aplicação aceda ao gestor de transferências e o utilize para transferir ficheiros. As aplicações maliciosas podem utilizar esta permissão para interromper transferências e aceder a informações privadas."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funções avançadas do gestor de transferências"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permite que a aplicação aceda às funções avançadas do gestor de transferências. As aplicações maliciosas podem utilizar esta permissão para interromper transferências e aceder a informações privadas."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Enviar notificações de transferências."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permite que a aplicação envie notificações acerca de transferências concluídas. As aplicações maliciosas podem utilizar esta permissão para confundir outras aplicações que transfiram ficheiros."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Ver todas transf. p/ armaz. USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ver todas as transferências para o cartão SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite que a aplicação veja todas as transferências efetuadas para o cartão SD, independentemente da aplicação utilizada nas transferências."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservar espaço na cache de transferência"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite que a aplic. transfira ficheiros p/ cache transf., os quais não podem ser automaticamente eliminados quando o gestor transf. necessitar de mais espaço."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"transferir ficheiros sem notificação"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permite que a aplicação transfira ficheiros através do gestor de transferências, sem apresentar qualquer notificação ao utilizador."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Aceder a todas as transferências do sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que a aplicação veja e modifique todas as transferências iniciadas por qualquer aplicação no sistema."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Sem nome&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Transferência concluída."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Falha na transferência."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Tam. transf. exige Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Interrompida em 2º plano"</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Transf. demasiado grande para a rede do operador"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Deve utilizar uma rede Wi-Fi para concluir esta transferência de <xliff:g id="SIZE">%s </xliff:g>. \n\nToque em <xliff:g id="QUEUE_TEXT">%s </xliff:g> para iniciar a transferência da próxima vez que estiver ligado a uma rede Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Colocar em fila para transferir mais tarde?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Iniciar esta transferência de <xliff:g id="SIZE">%s </xliff:g> poderá reduzir a duração da bateria e/ou resultar numa utilização excessiva da ligação móvel de dados, o que pode levar a uma cobrança por parte do operador móvel, dependendo do seu plano de dados.\n\n Toque em <xliff:g id="QUEUE_TEXT">%s</xliff:g> para iniciar a transferência da próxima vez que estiver ligado 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">"Começar agora"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> ficheiros a serem transferidos</item>
      <item quantity="one">1 ficheiro a ser transferido</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> ficheiros em espera</item>
      <item quantity="one">1 ficheiro em espera</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Faltam <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Não é possível abrir o ficheiro"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Transferências"</string>
    <string name="download_queued" msgid="3302638231377947451">"Em fila"</string>
    <string name="download_running" msgid="3925050393361158266">"Em curso"</string>
    <string name="download_error" msgid="5144180777324573236">"Sem êxito"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Em curso, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
