<?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">"Administrador de descargas"</string>
    <string name="storage_description" msgid="7982444311558023664">"Descargas"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Acceso ao administrador de descargas"</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permite á aplicación acceder ao administrador de descargas e utilizalo para descargar ficheiros. As aplicacións maliciosas poden usar esta opción para interromper as descargas e acceder a información privada."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funcións avanzadas do administrador de descargas"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permite á aplicación acceder ás funcións avanzadas do administrador de descargas. As aplicacións maliciosas poden usar esta opción para interromper as descargas e acceder a información privada."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Enviar notificacións de descarga."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permite á aplicación enviar notificacións de descargas completadas. É posible que aplicacións maliciosas utilicen esta opción para confundir outras aplicacións que descargan ficheiros."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Ver descargas a USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ver todas as descargas na tarxeta SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite á aplicación ver todas as descargas que se fixeron na tarxeta SD, independentemente da aplicación utilizada para descargalas."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservar espazo na caché de descargas"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite á aplicación descargar ficheiros na caché de descargas, que non se pode eliminar automaticamente cando o administrador de descargas precisa máis espazo."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"descargar ficheiros sen notificación"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permite á aplicación descargar ficheiros a través do administrador de descargas sen que se mostre ningunha notificación ao usuario."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Acceso a todas as descargas do sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite á aplicación ver e modificar todas as descargas iniciadas por calquera aplicación do sistema."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Sen título&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Descarga completa"</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Descarga incorrecta"</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"A descarga precisa wifi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Pausada en segundo plano"</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Descarga demasiado grande para a rede do operador"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Debes utilizar a wifi para completar esta descarga de <xliff:g id="SIZE">%s </xliff:g>. \n\nToca <xliff:g id="QUEUE_TEXT">%s </xliff:g> para iniciar esta descarga a próxima vez que te conectes a unha rede wifi"</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Colocar na cola para descargar máis tarde?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Se descargas <xliff:g id="SIZE">%s </xliff:g>, podes quedar sen batería e o teu operador pódeche cobrar por un uso excesivo de datos.\n\n Toca <xliff:g id="QUEUE_TEXT">%s</xliff:g> para iniciar esta descarga a próxima vez que te conectes a unha rede wifi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Cola"</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="other">Descargando <xliff:g id="NUMBER">%d</xliff:g> ficheiros</item>
      <item quantity="one">Descargando 1 ficheiro</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> ficheiros en espera</item>
      <item quantity="one">1 ficheiro en espera</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Tempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Non se pode abrir o ficheiro"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Descargas"</string>
    <string name="download_queued" msgid="3302638231377947451">"Na cola"</string>
    <string name="download_running" msgid="3925050393361158266">"En curso"</string>
    <string name="download_error" msgid="5144180777324573236">"Incorrecta"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"En curso (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
</resources>
