<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 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="calendar_storage" msgid="5387668002987562770">"Stockage de l\'agenda"</string>
    <string name="upgrade_msg" msgid="2792831029435070926">"Mise à jour de la base de données de Google Agenda."</string>
    <string name="calendar_default_name" msgid="6924293766625167275">"Par défaut"</string>
    <string name="calendar_info" msgid="6687678621418059281">"Infos Agenda"</string>
    <string name="calendar_info_error" msgid="5575162446528419982">"Erreur"</string>
    <string name="calendar_info_no_calendars" msgid="4287534468186704433">"Aucun agenda"</string>
    <string name="calendar_info_events" msgid="1805502308105103803">"Événements : <xliff:g id="EVENTS">%1$d</xliff:g>"</string>
    <string name="calendar_info_events_dirty" msgid="8879392112564499515">"Événements : <xliff:g id="EVENTS_0">%1$d</xliff:g> ; non sauvegardés : <xliff:g id="DIRTY_EVENTS">%2$d</xliff:g>"</string>
    <string name="provider_label" msgid="2306513350843464739">"Agenda"</string>
    <string name="debug_tool_delete_button" msgid="5052706251268452090">"Supprimer maintenant"</string>
    <string name="debug_tool_start_button" msgid="5384780896342913563">"Démarrer"</string>
    <string name="debug_tool_message" msgid="4414152820946316089">"Vous êtes sur le point de 1) copier la base de données de votre agenda sur la carte SD ou la mémoire de stockage USB, la rendant ainsi lisible par n\'importe quelle application, et 2) l\'envoyer par e-mail. N\'oubliez pas de la supprimer une fois son transfert depuis l\'appareil terminé ou dès réception de l\'e-mail."</string>
    <string name="debug_tool_email_sender_picker" msgid="4418621476577347562">"Sélectionnez un programme pour envoyer votre fichier"</string>
    <string name="debug_tool_email_subject" msgid="2403590332256471194">"Base de données Agenda ci-jointe"</string>
    <string name="debug_tool_email_body" msgid="740309162644398319">"Veuillez trouver ci-joint la base de données de mon agenda contenant tous mes rendez-vous et informations personnelles. Merci de l\'utiliser avec précaution."</string>
</resources>
