<?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="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 wifi"</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\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="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>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
  <plurals name="notif_summary_active">
    <item quantity="one" msgid="8475775855911967027">"1 ficheiro a ser transferido"</item>
    <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> ficheiros a serem transferidos"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 ficheiro em espera"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> ficheiros 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>
</resources>
