<?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="permlab_downloadManager" msgid="7779544811202855500">"Acceso al administrador de descargas"</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permite que la aplicación acceda al administrador de descargas y lo utilice para descargar archivos. Las aplicaciones malintencionadas pueden utilizar este permiso para provocar daños en las descargas y acceder a información privada."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funciones avanzadas del administrador de descargas"</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permite que la aplicación acceda a las funciones avanzadas del administrador de descargas. Las aplicaciones malintencionadas pueden utilizar este permiso para provocar daños en las descargas y acceder a información privada."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Envío de notificaciones de descarga"</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permite que la aplicación envíe notificaciones sobre descargas completadas. Las aplicaciones malintencionadas pueden utilizar este permiso para confundir a otras aplicaciones que descarguen archivos."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Ver descargas de USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Ver todas las descargas en tarjeta SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite que la aplicación vea todas las descargas en la tarjeta SD, independientemente de la aplicación que las haya descargado."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reservar espacio en caché de descargas"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite que la aplicación descargue archivos en la memoria caché que no se pueden eliminar automáticamente si falta espacio en el administrador de descargas."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"descargar archivos sin notificación"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permite que la aplicación descargue archivos a través del administrador de descargas sin informar al usuario."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Acceso a todas las descargas del sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite que la aplicación vea y modifique todas las descargas iniciadas por cualquier aplicación del sistema."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Sin título&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Descarga completada"</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Descarga incorrecta"</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"La descarga requiere Wi-Fi"</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 red de operador"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Debes usar una conexión Wi-Fi para completar esta descarga de <xliff:g id="SIZE">%s </xliff:g>. "\n\n"Toca <xliff:g id="QUEUE_TEXT">%s </xliff:g> para iniciar la descarga la próxima vez que te conectes a una red Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"¿Poner en cola para descargar más tarde?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Si descargas <xliff:g id="SIZE">%s </xliff:g>, puedes quedarte sin batería y tu operador te puede cobrar por un uso excesivo de datos."\n\n" Toca <xliff:g id="QUEUE_TEXT">%s</xliff:g> para iniciar la descarga la próxima vez que te conectes a una red Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Poner en cola"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Cancelar"</string>
    <string name="button_start_now" msgid="792123674007840864">"Empezar ahora"</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">"Descargando 1 archivo"</item>
    <item quantity="other" msgid="9087228371320573153">"Descargando <xliff:g id="NUMBER">%d</xliff:g> archivos"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 archivo en espera"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> archivos en espera"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Tiempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Error al abrir el archivo"</string>
</resources>
