<?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="5264040740662487684">"Gestor de baixades"</string>
    <string name="storage_description" msgid="169690279447532621">"Baixades"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Accediu al gestor de baixades."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"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="2225663947531460795">"Funcions avançades del gestor de baixades."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"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="2674407390116052956">"Envia notificacions de baixades."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"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_downloadCacheNonPurgeable" msgid="4538031250425141333">"Reserva espai a la memòria cau de baixada"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"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="4877101864770265405">"baixa fitxers sense notificació"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"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="8227356876527248611">"Accedeix a totes les baixades del sistema"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"Permet que l\'aplicació consulti i modifiqui totes les baixades iniciades per una aplicació al sistema."</string>
    <string name="download_unknown_title" msgid="1017800350818840396">"&lt;Sense títol&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Baixada completa."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Baixada incorrecta."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Mida baixad. req. Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Posada en pausa de fons."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Baixada massa gran per a la xarxa de l\'operador"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Has de fer servir Wi-Fi per completar aquesta baixada de <xliff:g id="SIZE">%1$s </xliff:g>. \n\nToca <xliff:g id="QUEUE_TEXT">%2$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="6488158053932133804">"Vols posar-lo en cua per baixar-lo més tard?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Si inic. la baixada (<xliff:g id="SIZE">%1$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">%2$s</xliff:g> per inic. baix. quan hi hagi Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"Cua"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Cancel·la"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Inicia ara"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <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="1782251721955177526">
      <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="2313089371178695625">"Temps restant: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"No es pot obrir el fitxer"</string>
    <string name="root_downloads" msgid="8380500940211778491">"Baixades"</string>
    <string name="download_queued" msgid="3383844741769045371">"En cua"</string>
    <string name="download_running" msgid="774654178925442490">"En curs"</string>
    <string name="download_error" msgid="1857737890005386798">"Incorrecte"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"En curs, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
