<?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 baixades"</string>
    <string name="storage_description" msgid="7982444311558023664">"Baixades"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Accediu al gestor de baixades."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permet que l\'aplicació accedeixi al gestor de baixades i que el faci servir per baixar fitxers. Les aplicacions malicioses poden fer-ho servir per interrompre baixades i per accedir a informació privada."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funcions avançades del gestor de baixades."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permet que l\'aplicació accedeixi a les funcions avançades del gestor de baixades. Les aplicacions malicioses poden fer-ho servir per interrompre les baixades i per accedir a informació privada."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Envia notificacions de baixades."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permet que l\'aplicació enviï notificacions sobre les baixades completades. Les aplicacions malicioses poden fer-ho servir per confondre altres aplicacions que baixen fitxers."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Mostra totes les baixades a l\'emmagatzematge USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Visualitza totes les baixades a la targeta SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permet que l\'aplicació vegi totes les baixades que s\'han fet a la targeta SD, sigui quina sigui l\'aplicació que les ha baixades."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Reserva espai a la memòria cau de baixada"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permet que l\'aplicació baixi fitxers a la memòria cau de baixada que no es poden suprimir automàticament quan el gestor de baixades necessita més espai."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"baixa fitxers sense notificació"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permet que l\'aplicació baixi fitxers mitjançant el gestor de baixades sense que l\'usuari en rebi cap notificació."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accedeix a totes les baixades del sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permet que l\'aplicació consulti i modifiqui totes les baixades iniciades per una aplicació al sistema."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Sense títol&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Baixada completa."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Baixada incorrecta."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Mida baixad. req. Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Posada en pausa de fons."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Baixada massa gran per a la xarxa de l\'operador"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Has de fer servir Wi-Fi per completar aquesta baixada de <xliff:g id="SIZE">%s </xliff:g>. \n\nToca <xliff:g id="QUEUE_TEXT">%s </xliff:g> per iniciar aquesta baixada la propera vegada que estiguis connectat a una xarxa Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Vols posar-lo en cua per baixar-lo més tard?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Si inic. la baixada (<xliff:g id="SIZE">%s </xliff:g>), pot escurçar-se la durada de la bat. i/o fer-se ús excessiu de la conn. de dades mòb., amb càrrecs de l\'oper. segons el pla de dades.\n\n Toca <xliff:g id="QUEUE_TEXT">%s</xliff:g> per inic. baix. quan hi hagi Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Cua"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Cancel·la"</string>
    <string name="button_start_now" msgid="792123674007840864">"Inicia ara"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="other">S\'estan baixant <xliff:g id="NUMBER">%d</xliff:g> fitxers</item>
      <item quantity="one">S\'està baixant 1 fitxer</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> fitxers en espera</item>
      <item quantity="one">1 fitxer en espera</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Temps restant: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"No es pot obrir el fitxer"</string>
    <string name="root_downloads" msgid="4098414876292351487">"Baixades"</string>
    <string name="download_queued" msgid="3302638231377947451">"En cua"</string>
    <string name="download_running" msgid="3925050393361158266">"En curs"</string>
    <string name="download_error" msgid="5144180777324573236">"Incorrecte"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"En curs, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
