{
  "title_levellist": "Niveaux",
  "head_meta_og_description": "Selfless Heroes est un jeu qui vous apprendra à programmer sans que vous ne le remarquiez. Résolvez des énigmes et aidez vos héros à sortir victorieux du donjon !",
  "head_meta_description": "Selfless Heroes est un jeu qui vous apprendra à programmer sans que vous ne le remarquiez. Résolvez des énigmes et aidez vos héros à sortir victorieux du donjon !",
  "head_meta_keywords": "jeu de réflexion, jeu vidéo, serious game, programmation, développement, énigme, éducation, divertissement, logique, algorithme",
  "app_exit_warning_modal": "Êtes-vous sûr de vouloir\nquitter Selfless Heroes ?",
  "app_fullscreen_modal": "Afin d'avoir la meilleure expérience de jeu possible,\nil est recommandé de jouer en plein écran.",
  "app_fullscreen_modal_stop_propose": "Ne plus afficher ce message",
  "app_warn_local_storage_modal_1": "La version en ligne de Selfless Heroes sauvegarde votre partie dans le navigateur.\nSi vous supprimez votre historique ou si vous utilisez un utilitaire de nettoyage comme CCleaner, vous risquez de supprimer votre partie.",
  "app_warn_local_storage_modal_2": "\nAfin d'être sûr de ne pas perdre votre partie :\n\n",
  "app_warn_local_storage_modal_3": "installez Selfless Heroes",
  "app_warn_local_storage_modal_4": "\nou\nenregistrez votre partie (%%mdi mdi-content-save-move$%%)",
  "app_warn_local_storage_modal_stop_warning": "Ne plus afficher ce message",
  "navigation_exit_button": "Quitter",
  "navigation_menu_button": "Menu",
  "navigation_discord_button": "Rejoins la communauté sur Discord",
  "menu_fullscreen_label": "Plein écran",
  "menu_enable_fullscreen": "Plein écran",
  "menu_disable_fullscreen": "Quitter le mode plein écran",
  "menu_sound_label": "Son",
  "menu_music_label": "Musique",
  "mute_button_mute": "Désactiver le son",
  "mute_button_unmute": "Activer le son",
  "menu_language_label": "Langue",
  "menu_credits_label": "crédits",
  "menu_credits_link": "consulter en ligne",
  "screen_size_warning_1": "L'écran de votre appareil est trop petit pour jouer à Selfless Heroes",
  "screen_size_warning_2": "Selfless Heroes est conçu pour fonctionner sur ordinateur et tablette. Pour jouer à ce jeu, vous devez avoir un écran d'une taille minimum de {minMaxDimension} x {minMinDimension} pixels : votre écran ne fait que {maxDimension} x {minDimension} pixels.",
  "home_new_game": "nouvelle partie :",
  "home_new_career_name_placeholder": "pseudo",
  "home_new_career_or_separator": "ou",
  "home_load_career_button": "%%mdi mdi-content-save-move$%% Charger une partie",
  "home_save_career_button": "Enregistrer sous…",
  "home_remove_career_button": "Supprimer",
  "home_remove_career_warning": "Es-tu vraiment sûr de vouloir supprimer cette partie ?\nToute progression sera perdue.",
  "home_drop_career_file": "Charger une partie sauvegardée\n%%mdi mdi-content-save-move$%% fichier .shsv",
  "home_wrong_file_format_error": "Ce fichier n'est pas un fichier .shsv valide",
  "home_local_level_loading_error": "Ce fichier n'est pas un fichier .shlv valide\u00A0:",
  "level_list_back_button": "Retour",
  "level_list_bonus_label": "BONUS",
  "level_list_boss_label": "BOSS",
  "level_list_premium_levels_button": "Débloquer plus de niveaux",
  "premium_modal_title": "Contenu premium",
  "premium_modal_content_description": "%%content-number$3%% nouvelles catégories de niveaux\npour un total de\n%%content-number$34%% niveaux supplémentaires",
  "premium_modal_action_variables": "Les héros peuvent calculer\net écrire sur les œufs",
  "premium_modal_action_speach": "Les héros peuvent se parler",
  "premium_modal_action_clone": "Les héros peuvent se cloner",
  "premium_modal_back_button": "retour",
  "premium_modal_unlock_button": "débloquer\nle contenu premium",
  "unlock_premium_modal_title": "Débloquer le contenu premium",
  "unlock_premium_modal_get_key_button": "obtenir une clé d'activation",
  "unlock_premium_modal_activation_key_label": "clé d'activation :",
  "unlock_premium_modal_wrong_activation_key": "Cette clé d'activation n'est pas valide.",
  "premium_activated_modal": "Félicitations !\n\nLe contenu premium de Selfless Heroes est maintenant débloqué.",
  "level_details_edit_button": "jouer",
  "level_details_edit_button_tooltip": "Jouer",
  "level_details_back_button": "retour",
  "level_details_back_button_tooltip": "Retour",
  "level_details_add_solution_button": "Nouvelle solution",
  "level_details_duplicate_solution_button": "Dupliquer",
  "level_details_duplicate_solution_suffix": " copie",
  "level_details_delete_solution_button": "Supprimer",
  "level_details_rename_solution_button": "Renommer",
  "level_details_name_input_placeholder": "nom",
  "level_details_delete_solution_warning": "Es-tu vraiment sûr de vouloir supprimer cette solution ?",
  "modal_confirm_button": "ok",
  "modal_cancel_button": "annuler",
  "modal_close_button": "Fermer",
  "modal_confirm_yes": "oui",
  "modal_cancel_no": "non",
  "tutorial_button_next": "Suivant",
  "tutorial_basic_step_tutorial_warning": "Il est conseillé de suivre ce tutoriel avec attention afin de pouvoir jouer le plus vite possible.\n\nClique sur la flèche pour lancer le tutoriel.",
  "tutorial_basic_step_graphcode": "Les héros suivent ces instructions dans l'ordre",
  "tutorial_basic_step_palette": "Pour changer le comportement des héros, choisis une nouvelle instruction ici et glisse-la à droite",
  "tutorial_basic_step_objective": "Pour revoir l'objectif du niveau, clique ici",
  "tutorial_basic_step_runbar": "Une fois que ton programme est prêt, clique ici pour le lancer",
  "tutorial_basic_step_help": "Pour obtenir plus d'aide ou revoir ce tutoriel, clique ici",
  "tutorial_advanced_step_undo": "Annule la dernière modification",
  "tutorial_advanced_step_redo": "Rétablit la dernière modification",
  "tutorial_advanced_step_delete": "Supprime toutes les instructions",
  "tutorial_advanced_step_editor_switch": "Passe à l'éditeur de code.\nAvec l'éditeur de code, tu peux copier le programme d'un niveau pour le réutiliser dans un autre.\nLes joueurs les plus avancés peuvent l'utiliser pour créer leur programme directement en code.",
  "tutorial_advanced_step_game": "Pour mieux suivre le comportement d'un héro, sélectionne-le en cliquant dessus.\nQuand le programme est lancé, un curseur bleu apparaît à côté des instructions pour montrer à quelle étape du programme se trouve le héro sélectionné.",
  "tutorial_advanced_step_play_pause": "Lance ou pause le programme",
  "tutorial_advanced_step_step": "Exécute le programme étape par étape",
  "tutorial_advanced_step_stop": "Arrête le programme",
  "tutorial_advanced_step_speed": "Réglage de vitesse",
  "tutorial_advanced_step_menu": "Ouvre le menu",
  "level_back_button": "Retour à la liste des niveaux",
  "level_help_button": "Aide",
  "level_objective_button": "Objectif",
  "level_help_modal_title": "Aide",
  "level_help_modal_tab_general_title": "général",
  "level_help_basic_tutorial_button": "Tutoriel basique",
  "level_help_advanced_tutorial_button": "Tutoriel avancé",
  "level_help_tab_general_objectives_stars": "Il y a 3 étoiles à gagner par niveau :",
  "level_help_tab_general_objectives_star1": "étoile 1 :",
  "level_help_tab_general_objectives_star1_objective": "réussir l'objectif du niveau",
  "level_help_tab_general_objectives_star2": "étoile 2 :",
  "level_help_tab_general_objectives_star2_objective": "objectif secondaire de temps d'exécution",
  "level_help_tab_general_objectives_star2_advice": "Pour réussir cet objectif, ton programme doit faire le moins d'étapes possible pour arriver au résultat final. Autrement dit, il doit aller le plus vite possible.",
  "level_help_tab_general_objectives_star3": "étoile 3 :",
  "level_help_tab_general_objectives_star3_objective": "objectif secondaire de longueur de code",
  "level_help_tab_general_objectives_star3_advice": "Pour réussir cet objectif, ton programme doit faire le moins de lignes possible (les numéros de ligne sont affichés à gauche des instructions des héros).",
  "level_help_tab_statement_code_example": "exemple de code :",
  "level_help_tab_statement_graph_code_example": "exemple :",
  "level_help_tab_if_statement_1": "%%statement branching-statement$si%% permet d'exécuter des instructions seulement si une condition est vraie.",
  "level_help_tab_if_statement_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Si la case à ta droite est un mur, alors va à gauche. Sinon va à droite\".",
  "level_help_tab_if_statement_3": "%%statement branching-statement$si%% vérifie si la condition est vraie. Si c'est le cas, les instructions à l'intérieur du %%statement branching-statement$si%% (celles à droite de la barre verticale grise) seront exécutées. Sinon les instructions à l'intérieur du %%statement branching-statement$sinon%%, s'il y en a un, seront exécutées.",
  "level_help_tab_if_statement_4": "%%statement branching-statement$sinon%% ne fait pas partie du %%statement branching-statement$si%% à la base. Pour le faire apparaître, glisse une instruction au-dessus du %%statement branching-statement$si%%.\nPour le faire disparaître, enlève toutes les instructions à l'intérieur du %%statement branching-statement$sinon%%.",
  "level_help_tab_if_statement_6": "Clique sur le bouton plus pour ajouter une autre condition.",
  "level_help_tab_if_statement_7": "On peut lire l'exemple ci-dessus comme suit :\n\"Si la case à ta droite est un mur ou si la case à ta droite est un trou, alors va à gauche\".",
  "level_help_tab_jump_statement_1": "%%statement branching-statement$saut%% permet de sauter en avant ou en arrière dans le programme.",
  "level_help_tab_jump_statement_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Va à droite en boucle\".",
  "level_help_tab_jump_statement_4": "La première ligne crée une \"ancre\" appelée \"a\". La troisième ligne dit de retourner à cette ancre.\nTu peux nommer les ancres avec le nom de ton choix. Chaque jump doit correspondre à une ancre unique.",
  "level_help_tab_jump_statement_5": "On utilise souvent %%statement branching-statement$saut%% avec %%statement branching-statement$si%% pour créer des boucles qui s'arrêtent dans certaines conditions.",
  "level_help_tab_jump_statement_6": "On peut lire l'exemple ci-dessus comme suit :\n\"Va à droite tant que la case à ta droite n'est pas un mur\".",
  "level_help_tab_clone_statement_1": "%%statement branching-statement$clone%% crée un clone du héro à côté de lui.",
  "level_help_tab_clone_statement_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Crée un clone à ta gauche. Puis fais un pas sur ta droite\".\n\nPour le héro créé, %%statement branching-statement$clone%% a le même effet que %%statement branching-statement$saut%%. Dans cet exemple, le héro créé n'ira pas à droite puisqu'il suivra les instructions après la flèche de %%statement branching-statement$clone%%.",
  "level_help_tab_clone_statement_4": "Un clone commence sa vie avec les mêmes valeurs de variables que son créateur.\n\n%%icon mdi mdi-alert-octagon-outline$%%Attention: si un héro essaie de créer un clone sur une case déjà occupée (par un %%icon icon-hero$%% héro, un %%icon icon-cauldron$%% chaudron etc.) ou sur un case interdite (un %%icon icon-wall$%% mur), le clonage échouera. Dans certains niveaux, l'échec du clonage tue le héro qui essaye de se cloner.",
  "level_help_tab_step_function_1": "%%statement action-statement$aller%% dit au héro d'aller dans une direction. Si plusieurs directions sont données, le héro décidera au hasard entre ces directions.",
  "level_help_tab_step_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Fais un pas à gauche ou à droite\".",
  "level_help_tab_step_once_function_1": "%%statement action-statement$aller%% dit au héro d'aller dans une direction.",
  "level_help_tab_step_once_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Fais un pas à droite\".",
  "level_help_tab_fireball_function_1": "%%statement action-statement$boule de feu%% lance une boule de feu sur une case autour du héro.\nSi la boule de feu touche un autre héro, celui-ci mourra. On peut utiliser une boule de feu pour allumer un %%icon icon-bonfire$%% feu.",
  "level_help_tab_fireball_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Lance une boule de feu à droite\".",
  "level_help_tab_take_function_1": "%%statement action-statement$prendre%% dit au héro de prendre un item.",
  "level_help_tab_take_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"S'il y a un œuf sur la case à ta droite, prends cet œuf\".",
  "level_help_tab_drop_function_1": "%%statement action-statement$déposer%% dit au héro de déposer son item.",
  "level_help_tab_drop_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Dépose ton item sur la case à ta droite\".",
  "level_help_tab_write_function_1": "%%statement action-statement$écrire%% dit au héro d'écrire quelque chose sur son item.",
  "level_help_tab_write_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Écris 3 sur ton item\".",
  "level_help_tab_set_function_1": "%%statement assign-statement$init%% initialise une variable.",
  "level_help_tab_set_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Donne la valeur 3 à la variable a\".",
  "level_help_tab_calc_function_1": "%%statement assign-statement$calc%% fait un calcul et met le résultat dans une variable.",
  "level_help_tab_calc_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Donne la valeur a + 2 à la variable b\".",
  "level_help_tab_calc_function_4": "Dans Selfless Heroes, il n'y a que des nombres entiers.\n\nL'opérateur %%type-operator$\"/\"%% est la division entière.\nPar exemple, %%type-operator$9 / 2 = 4%%.\n\nL'opérateur %%type-operator$\"%\"%% est appelé \"modulo\". Il calcule le reste de la division entière.\nPar exemple, %%type-operator$9 % 2 = 1%% car %%type-operator$9 / 2 = 4 reste 1%%.",
  "level_help_tab_nearest_function_1": "%%statement assign-statement$plus proche%% cherche le plus proche objet d'un type donné (%%icon icon-cauldron$%% chaudron, %%icon icon-egg$%%œuf etc.) et met le résultat dans une variable.",
  "level_help_tab_nearest_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Mémorise l'œuf le plus proche dans la variable a puis va chercher cet œuf\".",
  "level_help_tab_tell_function_1": "%%statement speach-statement$dire%% permet de dire un message à d'autres héros.",
  "level_help_tab_tell_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Dis \"ok\" au héro à droite de toi\".",
  "level_help_tab_tell_function_4": "On peut également %%statement speach-statement$dire%% un message à tous les %%icon icon-hero$%% héros du niveau.",
  "level_help_tab_tell_function_5": "On peut lire l'exemple ci-dessus comme suit :\n\"Dis \"hey\" à tous les héros\".",
  "level_help_tab_listen_function_1": "%%statement speach-statement$écouter%% dis au héro d'attendre jusqu'à ce qu'il entende un message spécifique.",
  "level_help_tab_listen_function_2": "On peut lire l'exemple ci-dessus comme suit :\n\"Attends qu'un héro te dise \"hey\" puis va à droite\".",
  "level_modal_speed_target_unit": "étapes",
  "level_modal_length_target_unit": "lignes",
  "level_modal_secondary_objectives_difficulty_warning": "les objectifs secondaires peuvent être très difficiles et il est souvent impossible de réussir les deux avec la même solution",
  "level_objective_modal_objective_title": "objectif",
  "level_objective_modal_secondary_objectives_title": "objectifs secondaires",
  "win_modal_testing_explanation": "la solution est testée pour s'assurer qu'elle marche à chaque fois",
  "win_modal_prior_code_speed": "ton meilleur temps était %%score-number${minStep}%% étapes",
  "win_modal_prior_code_length": "ta solution la plus courte faisait %%score-number${minLength}%% lignes",
  "win_modal_back_button": "retour",
  "win_modal_continue_edit_button": "améliorer",
  "run_bar_play_button": "Lancer [ctrl+space]",
  "run_bar_pause_button": "Pause [ctrl+space]",
  "run_bar_step_button": "Étape par étape [ctrl+enter]",
  "run_bar_stop_button": "Stop [ctrl+backspace]",
  "run_bar_speed_range": "Vitesse [alt+←] [alt+→]",
  "editor_bar_undo_button": "Annuler [ctrl+z]",
  "editor_bar_redo_button": "Rétablir [ctrl+y]",
  "editor_bar_delete_button": "Supprimer",
  "editor_bar_switch_to_graph": "Passer à l'éditeur graphique [ctrl+e]",
  "editor_bar_switch_to_code": "Passer à l'éditeur de code [ctrl+e]",
  "code_state_ok_tooltip": "Ton code est prêt à être exécuté",
  "code_state_not_runnable_tooltip": "Des instructions sont incomplètes :\nclique pour plus de détails",
  "code_state_not_compilable_tooltip": "Le code contient une erreur :\nclique pour plus de détails",
  "code_state_ok_modal": "Le code est prêt à être exécuté",
  "code_state_not_runnable_modal": "Le code contient des mot-clés %%undefined$undefined%%.\nRemplace-les par des valeurs correctes avant d'exécuter le code.",
  "switch_editor_warning": "Le code contient une erreur.\nEn passant à l'éditeur graphique,\ndes parties du code risquent d'être effacées.",
  "code_error_position_template": "ligne {line}",
  "errors_modal_title": "Erreurs",
  "exception_mismatch_statement_template": "tu as écrit quelque chose d'erroné après cette {statementType}.",
  "exception_mismatch_keyword_template": "tu as écrit quelque chose d'erroné après ce %%keyword${statementType}%%.",
  "exception_forbidden_primary_statement_template": "%%keyword${statementType}%% n'est pas disponible dans ce niveau.",
  "exception_forbidden_message_literal_type_template": "Les messages ne sont pas disponibles dans ce niveau.",
  "exception_forbidden_arithmetic_operator_literal_type_template": "Les opérateurs arithmétiques ne sont pas disponibles dans ce niveau.",
  "exception_mismatch_function_template": "tu as écrit quelque chose d'erroné après la fonction %%function${keyword}()%%.",
  "exception_invalid_clone_params_template": "%%keyword${statementType}%% attend une direction (%%literal${allowedDirections}%%) et une ancre.",
  "exception_invalid_variable_identifier_template": "%%variable${variable}%% n'est pas un nom de variable autorisé. Utilise un des noms suivants : %%variable${allowedIdentifiers}%%.",
  "exception_forbidden_integer_template": "%%number${value}%% est soit trop petit soit trop grand : les nombres doivent être entre %%number${min}%% et %%number${max}%%.",
  "exception_forbidden_message_literal_template": "%%string$\"{message}\"%% n'est pas un message autorisé. Utilise un des messages suivants : %%string${allowedMessages}%%.",
  "exception_invalid_value_function_template": "%%function${code}%% n'est pas une fonction valide. Utilise une des fonctions suivantes : %%function${allowedFunctions}%%.",
  "exception_invalid_action_function_template": "%%function${code}%% n'est pas une action valide. Utilise une des actions suivantes : %%function${allowedFunctions}%%.",
  "exception_forbidden_action_function_template": "%%function${keyword}()%% n'est pas disponible dans ce niveau. Utilise une des actions suivantes : %%function${allowedFunctions}%%",
  "exception_forbidden_value_function_template": "%%function${keyword}()%% n'est pas disponible dans ce niveau. Utilise une des fonctions suivantes : %%function${allowedFunctions}%%",
  "exception_forbidden_direction_literal_type_template": "Les directions ne sont pas disponibles dans ce niveau.",
  "exception_forbidden_everyone_literal_type_template": "%%literal$everyone%% n'est pas disponible dans ce niveau.",
  "exception_forbidden_integer_literal_type_template": "Les nombres ne sont pas disponibles dans ce niveau.",
  "exception_forbidden_myitem_literal_type_template": "%%literal$myitem%% n'est pas disponible dans ce niveau.",
  "exception_forbidden_object_type_literal_type_template": "Les types d'objets ne sont pas disponibles dans ce niveau.",
  "exception_forbidden_terrain_type_literal_type_template": "Les types de terrain ne sont pas disponibles dans ce niveau.",
  "exception_invalid_params_one_dir_integer_variable_myitem_template": "%%function${keyword}()%% attend exactement un paramètre qui peut être un nombre, une variable, une direction ou %%literal$myitem%%",
  "exception_invalid_dir_integer_variable_myitem_param_template": "%%variable${param}%% n'est pas une direction, une variable, un nombre ou %%literal$myitem%%",
  "exception_invalid_dir_variable_param_template": "%%variable${param}%% n'est pas une direction ou une variable valide. Tu peux utiliser un des termes suivants à la place : %%variable${allowedVariables}%% %%literal${allowedDirections}%%",
  "exception_invalid_params_one_integer_or_variable_template": "%%function${keyword}()%% attend exactement un paramètre qui peut être un nombre ou une variable (%%variable${allowedVariables}%%)",
  "exception_invalid_params_one_integer_template": "%%function${keyword}()%% attend exactement un nombre en paramètre",
  "exception_invalid_integer_param_template": "%%variable${param}%% n'est pas un nombre valide",
  "exception_invalid_integer_or_variable_param_template": "%%variable${param}%% n'est pas une variable ou un nombre valide",
  "exception_invalid_params_one_dir_template": "%%function${keyword}()%% attend exactement un paramètre de direction : %%literal${directions}%%",
  "exception_invalid_params_one_dir_variable_template": "%%function${keyword}()%% attend un paramètre de direction (%%literal${allowedDirections}%%) ou une variable (%%variable${allowedVariables}%%)",
  "exception_invalid_params_one_more_dir_variable_template": "%%function${keyword}()%% attend un ou plusieurs paramètres de direction (%%literal${allowedDirections}%%) ou une variable (%%variable${allowedVariables}%%)",
  "exception_invalid_params_one_object_type_param_template": "%%function${keyword}()%% attend exactement un paramètre type d'objet : %%literal${allowedValues}%%",
  "exception_invalid_direction_param_template": "%%variable${param}%% n'est pas une direction valide. Utilise celles-là : %%literal${allowedValues}%%",
  "exception_invalid_object_type_param_template": "%%variable${param}%% n'est pas un type d'objet valide. Utilise ceux-là : %%literal${allowedValues}%%",
  "exception_invalid_direction_param_not_here_template": "%%function${keyword}()%% n'accepte pas la direction %%literal${param}%%. Utilise celles-là à la place : %%literal${allowedValues}%%",
  "exception_primary_statement_invalid_direction_param_not_here_template": "%%keyword${keyword}%% n'accepte pas la direction %%literal${param}%%. Utilise celles-là à la place : %%literal${allowedValues}%%",
  "exception_invalid_object_type_param_not_nothing_template": "%%function${keyword}()%% n'accepte pas le type d'objet %%literal${param}%%. Utilise ceux-là à la place : %%literal${allowedValues}%%",
  "exception_invalid_params_calc_function_template": "%%function${keyword}()%% prend 3 paramètres. Les paramètres 1 et 3 doivent être des nombres, des directions, %%literal$myitem%% ou des variables et le paramètre 2 doit être un opérateur (%%operator${operators}%%)",
  "exception_invalid_params_tell_function_template": "%%function${keyword}()%% prend 2 paramètres. Le paramètre 1 doit etre un message (%%string${allowedMessages}%%) et le paramètre 2 doit être soit une direction (%%literal${allowedDirections}%%) soit %%literal$everyone%%",
  "exception_duplicate_param_template": "tu ne peux pas donner deux fois %%literal${param}%% à %%function${keyword}()%%",
  "exception_multiple_param_several_types_template": "quand tu donnes plusieurs paramètres à la fonction %%function${keyword}()%%, ils doivent être tous du même type",
  "exception_forbidden_object_type_template": "le type d'objet %%literal${keyword}%% n'est pas disponible dans ce niveau. Tu peux utiliser l'un des suivants : %%literal${allowedValues}%%",
  "exception_forbidden_terrain_type_template": "le type de terrain %%literal${keyword}%% n'est pas disponible dans ce niveau. Tu peux utiliser l'un des suivants : %%literal${allowedValues}%%",
  "exception_boolean_no_comparison_operator_template": "une condition doit contenir un comparateur valide comme ceux-ci : %%operator${allowedOperators}%%",
  "exception_invalid_expression_template": "%%variable${code}%% n'est pas un mot-clé valide",
  "exception_invalid_statement_template": "%%variable${code}%% n'est pas une instruction valide",
  "exception_forbidden_variable_identifier_template": "la variable %%variable${variable}%% n'est pas disponible dans ce niveau. Tu peux utiliser l'une des suivantes : %%variable${allowedNames}%%",
  "exception_all_forbidden_variable_identifier_template": "les variables ne sont pas disponibles dans ce niveau",
  "exception_open_statement_template": "la condition du %%keyword${keyword}%% doit être fermée avec un %%code$:%%",
  "exception_else_no_if_template": "%%keyword${elseKeyword}%% sans %%keyword${ifKeyword}%% avant",
  "exception_endif_no_if_template": "%%keyword${endifKeyword}%% sans %%keyword${ifKeyword}%% avant",
  "exception_if_no_endif_template": "%%keyword${ifKeyword}%% sans %%keyword${endifKeyword}%%",
  "exception_duplicate_anchor_template": "%%bracket${anchorName}:%% trouvée deux fois. Les ancres doivent avoir des noms uniques",
  "exception_jump_to_unknown_anchor_template": "%%keyword${jumpKeyword}%% vers une ancre inconnue %%bracket${anchorName}:%%",
  "type_anchor": "ancre",
  "type_assign": "assignation",
  "type_direction": "direction",
  "graph_node_if": "si",
  "graph_node_else": "sinon",
  "graph_node_jump": "saut",
  "graph_node_clone": "clone",
  "graph_node_function_step": "aller",
  "graph_node_function_fireball": "boule de feu",
  "graph_node_function_take": "prendre",
  "graph_node_function_drop": "déposer",
  "graph_node_function_write": "écrire",
  "graph_node_function_tell": "dire",
  "graph_node_function_tell_after_1": "à",
  "graph_node_function_listen": "écouter",
  "graph_node_function_set": "init",
  "graph_node_function_calc": "calc",
  "graph_node_function_nearest": "plus proche",
  "operator_boolean_and": "et",
  "operator_boolean_or": "ou",
  "operator_boolean_delete": "enlever",
  "drop_down_list_direction": "direction",
  "drop_down_list_number": "nombre",
  "drop_down_list_my_item_literal": "mon item",
  "drop_down_list_everyone_literal": "tout le monde",
  "drop_down_list_message_literal_hey": "\"hey\"",
  "drop_down_list_message_literal_lol": "\"lol\"",
  "drop_down_list_message_literal_ho": "\"ho\"",
  "drop_down_list_message_literal_kiss": "\"bisou\"",
  "drop_down_list_message_literal_stop": "\"stop\"",
  "drop_down_list_message_literal_wait": "\"attends\"",
  "drop_down_list_message_literal_ok": "\"ok\"",
  "drop_down_list_message_literal_coffee": "\"café\"",
  "drop_down_list_object_type_nothing": "rien",
  "drop_down_list_object_type_hero": "héro",
  "drop_down_list_object_type_npc": "monstre",
  "drop_down_list_object_type_switch": "bouton",
  "drop_down_list_object_type_bonfire": "feu",
  "drop_down_list_object_type_cauldron": "chaudron",
  "drop_down_list_object_type_spikes": "piques",
  "drop_down_list_object_type_egg": "œuf",
  "drop_down_list_terrain_type_wall": "mur",
  "drop_down_list_terrain_type_floor": "sol",
  "drop_down_list_terrain_type_hole": "trou",
  "drop_down_list_terrain_type_infected": "infecté",
  "drop_down_list_terrain_type_void": "vide",
  "level_test_failed_modal": "Certains tests ont échoué.\nNous avons reproduit une des situations problématiques.",
  "loss_reason_too_many_steps": "Ton programme prend trop de temps",
  "loss_reason_all_hero_ended": "Les héros se sont endormis avant de remplir l'objectif",
  "loss_reason_all_hero_dead": "Tous les héros sont morts",
  "loss_reason_one_hero_dead": "Un des héros est mort"
}