<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2016 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="3832318668025860600">"Informations d\'urgence"</string>
    <string name="edit_emergency_info_label" msgid="7023565992774864407">"Modifier informations d\'urgence"</string>
    <string name="edit_info" msgid="5973929805855224805">"Modifier les informations d\'urgence"</string>
    <string name="tab_title_info" msgid="1402033103294855812">"Informations"</string>
    <string name="tab_title_contacts" msgid="4298341166404791209">"Contacts"</string>
    <string name="name" msgid="4286267457738861977">"Nom"</string>
    <string name="unknown_name" msgid="2834802479170495056">"Inconnu"</string>
    <string name="address" msgid="6449303483151189969">"Adresse"</string>
    <string name="unknown_address" msgid="4212576729941786121">"Inconnue"</string>
    <string name="date_of_birth" msgid="777979232444227891">"Date de naissance"</string>
    <string name="unknown_date_of_birth" msgid="7416355536916066758">"Inconnue"</string>
    <string name="dob" msgid="2813161080307245706">"(<xliff:g id="DATE_OF_BIRTH">%1$s</xliff:g>)"</string>
    <string name="age" msgid="8327537794752630199">"Âge : <xliff:g id="NUMERICAL_AGE">%1$d</xliff:g>"</string>
    <string name="remove_dob_icon_text" msgid="4413507180967999944">"Supprimer la date de naissance"</string>
    <string name="blood_type" msgid="6947022772999974608">"Groupe sanguin"</string>
    <string name="unknown_blood_type" msgid="6337228278125085668">"Inconnu"</string>
    <string name="oplus" msgid="7759756742377867011">"O+"</string>
    <string name="ominus" msgid="5227278501191741055">"O-"</string>
    <string name="aplus" msgid="4982472245421753463">"A+"</string>
    <string name="aminus" msgid="1469727296074783670">"A-"</string>
    <string name="bplus" msgid="5395850743718234762">"B+"</string>
    <string name="bminus" msgid="3813367242072886088">"B-"</string>
    <string name="abplus" msgid="8061792867513932701">"AB+"</string>
    <string name="abminus" msgid="2510867828094325481">"AB-"</string>
    <string name="hh" msgid="3071675674015857183">"Hh"</string>
    <!-- no translation found for blood_type_entries:0 (5051829403671092348) -->
    <!-- no translation found for blood_type_entries:1 (5289547171251363498) -->
    <!-- no translation found for blood_type_entries:2 (1998151664134824279) -->
    <!-- no translation found for blood_type_entries:3 (8861834946033182783) -->
    <!-- no translation found for blood_type_entries:4 (3936437251649109847) -->
    <!-- no translation found for blood_type_entries:5 (891231420183639230) -->
    <!-- no translation found for blood_type_entries:6 (8911255985148284758) -->
    <!-- no translation found for blood_type_entries:7 (2352690820681480000) -->
    <!-- no translation found for blood_type_entries:8 (8050126448069904266) -->
    <!-- no translation found for blood_type_entries:9 (6638754103385431982) -->
    <!-- no translation found for blood_type_content_description:9 (1362921785855892976) -->
    <string name="allergies" msgid="2789200777539258165">"Allergies"</string>
    <string name="unknown_allergies" msgid="4383115953418061237">"Inconnues"</string>
    <string name="allergies_hint" msgid="5488918780522184147">"Par exemple, aux arachides"</string>
    <string name="medications" msgid="644428945685557183">"Traitements médicamenteux"</string>
    <string name="unknown_medications" msgid="2764171064510423734">"Inconnus"</string>
    <string name="medications_hint" msgid="3221620025945593723">"Par exemple, aspirine"</string>
    <string name="medical_conditions" msgid="6147422114803729239">"Affections médicales et remarques"</string>
    <string name="unknown_medical_conditions" msgid="8051364895172053770">"Inconnues"</string>
    <string name="medical_conditions_hint" msgid="6959152183029062882">"Par exemple, asthme"</string>
    <string name="organ_donor" msgid="5953509460007124827">"Donneur d\'organes"</string>
    <string name="unknown_organ_donor" msgid="2780515342875494225">"Inconnu"</string>
    <string name="yes" msgid="5829765567799916128">"Oui"</string>
    <string name="no" msgid="1681689233660683509">"Non"</string>
    <!-- no translation found for organ_donor_entries:0 (4680498266537823362) -->
    <!-- no translation found for organ_donor_entries:1 (4906312680266515592) -->
    <!-- no translation found for organ_donor_entries:2 (9037713957399818892) -->
    <string name="emergency_contacts_title" msgid="5462202017417821030">"Contacts en cas d\'urgence"</string>
    <string name="add_emergency_contact" msgid="4987882226775581405">"Ajouter un contact en cas d\'urgence"</string>
    <string name="remove_contact" msgid="6934983445723096759">"Supprimer <xliff:g id="CONTACT_NAME">%1$s</xliff:g> des contacts en cas d\'urgence ?"</string>
    <string name="remove_contact_icon_text" msgid="4576641386490101363">"Supprimer le contact"</string>
    <string name="remove" msgid="1243949503772376064">"Supprimer"</string>
    <string name="cancel" msgid="7401575239009060939">"Annuler"</string>
    <string name="ok" msgid="163967937451981024">"OK"</string>
    <string name="phone_type_and_phone_number" msgid="5034188169563878371">"<xliff:g id="PHONE_TYPE">%1$s</xliff:g> • <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
    <string name="user_emergency_info_title" msgid="7827058167207376581">"Informations d\'urgence"</string>
    <!-- no translation found for user_emergency_info_consent (5636028073450797246) -->
    <skip />
    <string name="emergency_info_continue" msgid="5453201508537906087">"Continuer"</string>
    <!-- no translation found for no_info_provided (6775035037534954056) -->
    <skip />
</resources>
