<?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_name" msgid="3369897473091780760">"Boîte à outils SIM"</string>
    <string name="menu_end_session" msgid="9087134977926181033">"Fermer la session"</string>
    <string name="help" msgid="1290449694178547017">"Aide"</string>
    <string name="menu_back" msgid="7136697148453089659">"Retour"</string>
    <string name="service_name" msgid="6767598098497885828">"Nom du service"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Aucun service disponible"</string>
    <string name="button_ok" msgid="7914432227722142434">"OK"</string>
    <string name="button_cancel" msgid="137404731092374681">"Annuler"</string>
    <string name="button_yes" msgid="755426085739326674">"Oui"</string>
    <string name="button_no" msgid="564962410861983724">"Non"</string>
    <string name="alphabet" msgid="9068318253752197929">"Alphabets"</string>
    <string name="digits" msgid="7391551783961486324">"Chiffres (0-9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Appel en cours"</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Appel en cours de configuration"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"État de l\'application"</string>
    <string name="enable_app" msgid="1980493713217690903">"Activé"</string>
    <string name="disable_app" msgid="2298201833946002357">"Désactivé"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"Boîte à outils SIM"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Lecture de la sonnerie"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Ouvrir le canal?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Envoi de données en cours…"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Réception de données en cours…"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Canal fermé"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"OUI"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"NON"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Veuillez insérer une carte SIM pour lancer SIM Toolkit."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Messages des services mobiles"</string>
</resources>
