<?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">"Gestionnaire de téléchargement"</string>
    <string name="storage_description" msgid="169690279447532621">"Téléchargements"</string>
    <string name="permlab_downloadManager" msgid="4241473724446132797">"Accéder au gestionnaire de téléchargement."</string>
    <string name="permdesc_downloadManager" msgid="5562734314998369030">"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="2225663947531460795">"Fonctions avancées du gestionnaire de téléchargement."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="3902478062563030716">"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="2674407390116052956">"Envoyer des notifications de téléchargement."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="3384693829639860032">"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_downloadCacheNonPurgeable" msgid="4538031250425141333">"Réserver un espace dans le cache de téléchargement"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="3071381088686444674">"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="4877101864770265405">"télécharger les fichiers sans m\'avertir"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="7699189763226483523">"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="8227356876527248611">"Accéder à tous les téléchargements système"</string>
    <string name="permdesc_accessAllDownloads" msgid="7541731738152145079">"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="1017800350818840396">"&lt;Sans_titre&gt;"</string>
    <string name="notification_download_complete" msgid="466652037490092787">"Téléchargement terminé."</string>
    <string name="notification_download_failed" msgid="3932167763860605874">"Échec du téléchargement."</string>
    <string name="notification_need_wifi_for_size" msgid="4743443900432303646">"Téléchargement via Wi-Fi requis."</string>
    <string name="notification_paused_in_background" msgid="6393408819031041778">"Interrompu en arr.-plan."</string>
    <string name="wifi_required_title" msgid="7266700488421122218">"Téléchargement trop volumineux pour l\'opérateur"</string>
    <string name="wifi_required_body" msgid="4005023496578941958">"Vous devez utiliser le Wi-Fi pour finaliser ce téléchargement de <xliff:g id="SIZE">%1$s </xliff:g>. \n\nAppuyez sur <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> pour le lancer lors de votre prochaine connexion à un réseau Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="6488158053932133804">"Ajouter à la file d\'attente des téléchargements ?"</string>
    <string name="wifi_recommended_body" msgid="8710820743211704403">"Ce téléchargement (<xliff:g id="SIZE">%1$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">%2$s</xliff:g> pour le lancer lors de votre prochaine connexion au Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="6650185573566994738">"File d\'attente"</string>
    <string name="button_cancel_download" msgid="4135046775536601831">"Annuler"</string>
    <string name="button_start_now" msgid="3817100969365441730">"Commencer"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="8652501374845637331">
      <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="1782251721955177526">
      <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="2313089371178695625">"Temps restant : <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="5780812573953335721">"Impossible d\'ouvrir le fichier."</string>
    <string name="root_downloads" msgid="8380500940211778491">"Téléchargements"</string>
    <string name="download_queued" msgid="3383844741769045371">"Placé en file d\'attente"</string>
    <string name="download_running" msgid="774654178925442490">"En cours"</string>
    <string name="download_error" msgid="1857737890005386798">"Échec"</string>
    <string name="download_running_percent" msgid="3492753569359254730">"En cours, <xliff:g id="PERCENTAGE">%s</xliff:g>…"</string>
</resources>
