<?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">"Gestionnaire de téléchargement"</string>
    <string name="storage_description" msgid="7982444311558023664">"Téléchargements"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Accéder au gestionnaire de téléchargement."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permet à l\'application d\'accéder au gestionnaire de téléchargement et de l\'utiliser pour télécharger des fichiers. Les applications malveillantes peuvent utiliser cette fonctionnalité pour perturber les téléchargements et accéder à des informations confidentielles."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Fonctions avancées du gestionnaire de téléchargement."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permet à l\'application d\'accéder aux fonctions avancées du gestionnaire de téléchargement. Les applications malveillantes peuvent utiliser cette fonctionnalité pour perturber les téléchargements et accéder à des informations confidentielles."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Envoyer des notifications de téléchargement."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permet à l\'application d\'envoyer des notifications relatives aux téléchargements terminés. Les applications malveillantes peuvent utiliser cette fonctionnalité pour induire en erreur d\'autres applications pouvant télécharger des fichiers."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Voir téléchargements sur mémoire USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Voir téléchargements sur la carte SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permet à l\'application de voir tous les téléchargements sur la carte SD, quelle que soit l\'application utilisée pour les télécharger."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Réserver un espace dans le cache de téléchargement"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permet à l\'application de télécharger des fichiers dans le cache de téléchargement et empêche leur suppression automatique par le gestionnaire de téléchargement."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"télécharger les fichiers sans m\'avertir"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permet à l\'application de télécharger des fichiers via le gestionnaire de téléchargement sans afficher de notification à l\'attention de l\'utilisateur."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accéder à tous les téléchargements système"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permet à l\'application d\'afficher et de modifier tous les téléchargements initiés par n\'importe quelle application du système."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Sans_titre&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Téléchargement terminé."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Échec du téléchargement."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Taille du fichier requiert Wi-Fi."</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Interrompu en arr.-plan."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Téléchargement trop volumineux pour l\'opérateur"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Vous devez utiliser le Wi-Fi pour finaliser ce téléchargement de <xliff:g id="SIZE">%s </xliff:g>. \n\nAppuyez sur <xliff:g id="QUEUE_TEXT">%s </xliff:g> pour le lancer lors de votre prochaine connexion à un réseau Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Ajouter à la file d\'attente des téléchargements ?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Ce téléchargement (<xliff:g id="SIZE">%s </xliff:g>) risque de décharger votre batterie et/ou d\'entraîner une consommation excessive de votre connexion Internet mobile. Des frais supplémentaires peuvent être facturés par votre opérateur en fonction de votre forfait.\n\nAppuyez sur <xliff:g id="QUEUE_TEXT">%s</xliff:g> pour le lancer lors de votre prochaine connexion au Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"File d\'attente"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Annuler"</string>
    <string name="button_start_now" msgid="792123674007840864">"Commencer"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="one">Téléchargement de <xliff:g id="NUMBER">%d</xliff:g> fichier</item>
      <item quantity="other">Téléchargement de <xliff:g id="NUMBER">%d</xliff:g> fichiers</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="one"><xliff:g id="NUMBER">%d</xliff:g> fichier en attente</item>
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> fichiers en attente</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">"Impossible d\'ouvrir le fichier."</string>
    <string name="root_downloads" msgid="4098414876292351487">"Téléchargements"</string>
    <string name="download_queued" msgid="3302638231377947451">"Placé en file d\'attente"</string>
    <string name="download_running" msgid="3925050393361158266">"En cours"</string>
    <string name="download_error" msgid="5144180777324573236">"Échec"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"En cours, <xliff:g id="PERCENTAGE">%s</xliff:g>…"</string>
</resources>
