en	Levels
fr	Niveaux

en	Selfless Heroes is a game that will teach you how to program without you noticing. Solve puzzles and help your heroes emerge victorious from the dungeon!
fr	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 !

en	Selfless Heroes is a game that will teach you how to program without you noticing. Solve puzzles and help your heroes emerge victorious from the dungeon!
fr	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 !

en	puzzle game, video game, serious game, programming, development, puzzle, education, fun, logic, algorithm
fr	jeu de réflexion, jeu vidéo, serious game, programmation, développement, énigme, éducation, divertissement, logique, algorithme

en	Are you sure you want to leave Selfless Heroes?
fr	Êtes-vous sûr de vouloir quitter Selfless Heroes ?

en	In order to have the best game experience, it is recommended to go fullscreen.
fr	Afin d'avoir la meilleure expérience de jeu possible, il est recommandé de jouer en plein écran.

en	Don't show this message again
fr	Ne plus afficher ce message

en	The online version of Selfless Heroes saves your game in the browser. If you delete your history or use a cleaning utility such as CCleaner, you may delete your game.
fr	La version en ligne de Selfless Heroes sauvegarde votre partie dans le navigateur. Si vous supprimez votre historique ou si vous utilisez un utilitaire de nettoyage comme CCleaner, vous risquez de supprimer votre partie.

en	To make sure you don't lose your game:
fr	Afin d'être sûr de ne pas perdre votre partie :

en	install Selfless Heroes
fr	installez Selfless Heroes

en	or save your game (%%mdi mdi-content-save-move$%%)
fr	ou enregistrez votre partie (%%mdi mdi-content-save-move$%%)

en	Don't show this message again
fr	Ne plus afficher ce message

en	Exit
fr	Quitter

en	Menu

en	Join the community on Discord
fr	Rejoins la communauté sur Discord

en	Fullscreen
fr	Plein écran

en	Fullscreen
fr	Plein écran

en	Exit fullscreen
fr	Quitter le mode plein écran

en	Music
fr	Musique

en	Sound
fr	Son

en	Mute
fr	Désactiver le son

en	Unmute
fr	Activer le son

en	Language
fr	Langue

en	credits
fr	crédits

en	view online
fr	consulter en ligne

en	The screen of your device is too small to play Selfless Heroes
fr	L'écran de votre appareil est trop petit pour jouer à Selfless Heroes

en	Selfless Heroes is designed to work on desktop, laptop and tablet. To play this game, you must have a screen size of at least {minMaxDimension} x {minMinDimension} pixels: your screen is only {maxDimension} x {minDimension} pixels.
fr	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.

en	new game:
fr	nouvelle partie :

en	pseudo

en	or
fr	ou

en	%%mdi mdi-content-save-move$%% Load a game
fr	%%mdi mdi-content-save-move$%% Charger une partie

en	Save as…
fr	Enregistrer sous…

en	Remove
fr	Supprimer

en	Are you really sure you want to delete this game? All progress will be lost.
fr	Es-tu vraiment sûr de vouloir supprimer cette partie ? Toute progression sera perdue.

en	Load a saved game %%mdi mdi-content-save-move$%% .shsv file
fr	Charger une partie sauvegardée %%mdi mdi-content-save-move$%% fichier .shsv

en	This file is not a valid .shsv file
fr	Ce fichier n'est pas un fichier .shsv valide

en	Back
fr	Retour

en	BONUS

en	BOSS

en	Unlock more levels
fr	Débloquer plus de niveaux

en	Premium content
fr	Contenu premium

en	%%content-number$3%% new level categories for a total of %%content-number$34%% additional levels
fr	%%content-number$3%% nouvelles catégories de niveaux pour un total de %%content-number$34%% niveaux supplémentaires

en	Heroes can calculate and write on eggs
fr	Les héros peuvent calculer et écrire sur les œufs

en	Heroes can speak to each other
fr	Les héros peuvent se parler

en	Heroes can clone themselves
fr	Les héros peuvent se cloner

en	back
fr	retour

en	unlock premium content
fr	débloquer le contenu premium

en	Unlock premium content
fr	Débloquer le contenu premium

en	get activation key
fr	obtenir une clé d'activation

en	activation key:
fr	clé d'activation :

en	This is not a valid activation key.
fr	Cette clé d'activation n'est pas valide.

en	Congratulations! You've successfully unlocked Selfless Heroes premium content.
fr	Félicitations ! Le contenu premium de Selfless Heroes est maintenant débloqué.

en	play
fr	jouer

en	Play
fr	Jouer

en	back
fr	retour

en	Back
fr	Retour

en	New solution
fr	Nouvelle solution

en	Duplicate
fr	Dupliquer

en	copy
fr	copie

en	Delete
fr	Supprimer

en	Rename
fr	Renommer

en	name
fr	nom

en	Are you really sure you want to delete this solution?
fr	Es-tu vraiment sûr de vouloir supprimer cette solution ?

en	ok

en	cancel
fr	annuler

en	Close
fr	Fermer

en	yes
fr	oui

en	no
fr	non

en	Next
fr	Suivant

en	It is advisable to follow this tutorial carefully in order to be able to play as soon as possible. Click on the arrow to launch the tutorial.
fr	Il est conseillé de suivre ce tutoriel avec attention afin de pouvoir jouer le plus vite possible. Clique sur la flèche pour lancer le tutoriel.

en	The heroes follow these instructions step by step
fr	Les héros suivent ces instructions dans l'ordre

en	Drag new instructions from here to change heroes behavior
fr	Pour changer le comportement des héros, choisis une nouvelle instruction ici et glisse-la à droite

en	To see the level objective click here
fr	Pour revoir l'objectif du niveau, clique ici

en	When your program is ready, click here to run it
fr	Une fois que ton programme est prêt, clique ici pour le lancer

en	If you need more help or want to see this tutorial again, click here
fr	Pour obtenir plus d'aide ou revoir ce tutoriel, clique ici

en	Undo last edit
fr	Annule la dernière modification

en	Redo
fr	Rétablit la dernière modification

en	Delete all instructions
fr	Supprime toutes les instructions

en	Switch to code editor. Code editor can be used to copy a code from one level to another. It is also intended to be used by advanced players who want to write their program using code instead of the graphic interface.
fr	Passe à l'éditeur de code. Avec l'éditeur de code, tu peux copier le programme d'un niveau pour le réutiliser dans un autre. Les joueurs les plus avancés peuvent l'utiliser pour créer leur programme directement en code.

en	Select a hero by clicking on it to better follow its behaviour. While the program is running, a blue cursor will appear to the left of the instructions to show at which step of the program the selected hero is.
fr	Pour mieux suivre le comportement d'un héro, sélectionne-le en cliquant dessus. Quand 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é.

en	Run or pause the program
fr	Lance ou pause le programme

en	Run the program step by step
fr	Exécute le programme étape par étape

en	Stop the program
fr	Arrête le programme

en	Speed setting
fr	Réglage de vitesse

en	Open the menu
fr	Ouvre le menu

en	Back to level list
fr	Retour à la liste des niveaux

en	Help
fr	Aide

en	Objective
fr	Objectif

en	Help
fr	Aide

en	general
fr	général

en	Basic tutorial
fr	Tutoriel basique

en	Advanced tutorial
fr	Tutoriel avancé

en	There are 3 stars to win per level:
fr	Il y a 3 étoiles à gagner par niveau :

en	star 1:
fr	étoile 1 :

en	achieve the level objective
fr	réussir l'objectif du niveau

en	star 2:
fr	étoile 2 :

en	run time secondary objective
fr	objectif secondaire de temps d'exécution

en	To achieve this objective, your program should take as few steps as possible to achieve the final result. In other words, it should go as fast as possible.
fr	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.

en	star 3:
fr	étoile 3 :

en	code length secondary objective
fr	objectif secondaire de longueur de code

en	To achieve this objective, your program should be as few lines as possible (line numbers are displayed to the left of the heroes' instructions).
fr	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).

en	code example:
fr	exemple de code :

en	example:
fr	exemple :

en	%%statement branching-statement$if%% allows to run instructions only if a given condition is true.
fr	%%statement branching-statement$si%% permet d'exécuter des instructions seulement si une condition est vraie.

en	You could read the above example as "If the square to the right of me is a wall, then go to the left. Otherwise go to the right".
fr	On peut lire l'exemple ci-dessus comme suit : "Si la case à ta droite est un mur, alors va à gauche. Sinon va à droite".

en	%%statement branching-statement$if%% checks if the condition is true in which case it will run the instructions inside it (instructions to the right of the vertical gray line). Otherwise it will run the instructions inside the %%statement branching-statement$else%% if there is one.
fr	%%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.

en	%%statement branching-statement$else%% is not initially part of the %%statement branching-statement$if%%. To make it appear, drag any instruction over the %%statement branching-statement$if%%. If you remove all the instructions inside %%statement branching-statement$else%%, it will disappear.
fr	%%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%%. Pour le faire disparaître, enlève toutes les instructions à l'intérieur du %%statement branching-statement$sinon%%.

en	Click on the plus sign to add other conditions.
fr	Clique sur le bouton plus pour ajouter une autre condition.

en	You could read the above example as "If the square to the right of me is a wall or if the square to the right of me is a hole, then go to the left".
fr	On peut lire l'exemple ci-dessus comme suit : "Si la case à ta droite est un mur ou si la case à ta droite est un trou, alors va à gauche".

en	%%statement branching-statement$jump%% allows to jump backward or forward in the program.
fr	%%statement branching-statement$saut%% permet de sauter en avant ou en arrière dans le programme.

en	You could read the above example as "Step to the right infinitely many times".
fr	On peut lire l'exemple ci-dessus comme suit : "Va à droite en boucle".

en	The first line creates an "anchor" named "a". The third line says to jump back to this anchor. You can choose any name you want for your anchors. Each jump must match a unique anchor.
fr	La première ligne crée une "ancre" appelée "a". La troisième ligne dit de retourner à cette ancre. Tu peux nommer les ancres avec le nom de ton choix. Chaque jump doit correspondre à une ancre unique.

en	%%statement branching-statement$jump%% is usually used with %%statement branching-statement$if%% to create loops which stop at a condition.
fr	On utilise souvent %%statement branching-statement$saut%% avec %%statement branching-statement$si%% pour créer des boucles qui s'arrêtent dans certaines conditions.

en	You could read the above example as "Step to the right as long as the square to the right is not a wall".
fr	On peut lire l'exemple ci-dessus comme suit : "Va à droite tant que la case à ta droite n'est pas un mur".

en	%%statement branching-statement$clone%% creates a clone of the hero next to him.
fr	%%statement branching-statement$clone%% crée un clone du héro à côté de lui.

en	You could read the above example as "Create a clone on your left. Then step to the right". For the created hero, %%statement branching-statement$clone%% acts like %%statement branching-statement$jump%%. In this example, the created clone won't step to the right because he will begin to follow instructions after the arrow of %%statement branching-statement$clone%%.
fr	On peut lire l'exemple ci-dessus comme suit : "Crée un clone à ta gauche. Puis fais un pas sur ta droite". Pour 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%%.

en	The created clone starts his life with the same variables values as his creator's. %%icon mdi mdi-alert-octagon-outline$%%Warning: if you try to create a clone on a square already occupied (by a %%icon icon-hero$%% hero, a %%icon icon-cauldron$%% cauldron etc.) or on a forbidden square (like a %%icon icon-wall$%% wall), the cloning process will fail. In certain levels, this failure causes the death of the hero trying to clone himself.
fr	Un clone commence sa vie avec les mêmes valeurs de variables que son créateur. %%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.

en	%%statement action-statement$step%% says to your hero to go in a direction. If you specify multiple directions, the hero will decide randomly between these directions.
fr	%%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.

en	You could read the above example as "Go one step to the left or to the right".
fr	On peut lire l'exemple ci-dessus comme suit : "Fais un pas à gauche ou à droite".

en	%%statement action-statement$step%% says to your hero to go in a direction.
fr	%%statement action-statement$aller%% dit au héro d'aller dans une direction.

en	You could read the above example as "Go one step to the right".
fr	On peut lire l'exemple ci-dessus comme suit : "Fais un pas à droite".

en	%%statement action-statement$fireball%% throws a fireball on a square around the hero. If the fireball hits another hero it will kill him. You can use a fireball to light a %%icon icon-bonfire$%% bonfire.
fr	%%statement action-statement$boule de feu%% lance une boule de feu sur une case autour du héro. Si 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.

en	You could read the above example as "Throw a fireball to the right".
fr	On peut lire l'exemple ci-dessus comme suit : "Lance une boule de feu à droite".

en	%%statement action-statement$take%% says to your hero to take an item.
fr	%%statement action-statement$prendre%% dit au héro de prendre un item.

en	You could read the above example as "If there is an egg on the square on your right, take this egg".
fr	On peut lire l'exemple ci-dessus comme suit : "S'il y a un œuf sur la case à ta droite, prends cet œuf".

en	%%statement action-statement$drop%% says to your hero to drop his item.
fr	%%statement action-statement$déposer%% dit au héro de déposer son item.

en	You could read the above example as "Drop your item on the square on your right".
fr	On peut lire l'exemple ci-dessus comme suit : "Dépose ton item sur la case à ta droite".

en	%%statement action-statement$write%% says to your hero to write something on his item.
fr	%%statement action-statement$écrire%% dit au héro d'écrire quelque chose sur son item.

en	You could read the above example as "Write 3 on your item".
fr	On peut lire l'exemple ci-dessus comme suit : "Écris 3 sur ton item".

en	%%statement assign-statement$set%% initializes a variable.
fr	%%statement assign-statement$init%% initialise une variable.

en	You could read the above example as "Set the variable a to 3".
fr	On peut lire l'exemple ci-dessus comme suit : "Donne la valeur 3 à la variable a".

en	%%statement assign-statement$calc%% makes a calculation and puts the result in a variable.
fr	%%statement assign-statement$calc%% fait un calcul et met le résultat dans une variable.

en	You could read the above example as "Set the variable b to a + 2".
fr	On peut lire l'exemple ci-dessus comme suit : "Donne la valeur a + 2 à la variable b".

en	In Selfless Heroes, there are only integer numbers. The operator %%type-operator$"/"%% is integer division. For example, %%type-operator$9 / 2 = 4%%. The operator %%type-operator$"%"%% is called "modulo". It calculates the remainder of the integer division. For example, %%type-operator$9 % 2 = 1%% because %%type-operator$9 / 2 = 4%% has a remainder of 1.
fr	Dans Selfless Heroes, il n'y a que des nombres entiers. L'opérateur %%type-operator$"/"%% est la division entière. Par exemple, %%type-operator$9 / 2 = 4%%. L'opérateur %%type-operator$"%"%% est appelé "modulo". Il calcule le reste de la division entière. Par exemple, %%type-operator$9 % 2 = 1%% car %%type-operator$9 / 2 = 4 reste 1%%.

en	%%statement assign-statement$nearest%% searches for the nearest object of a given type (%%icon icon-cauldron$%% cauldron, %%icon icon-egg$%%egg etc.) and puts the result in a variable.
fr	%%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.

en	You could read the above example as "Memorize the nearest egg in the variable a and then go get that egg".
fr	On peut lire l'exemple ci-dessus comme suit : "Mémorise l'œuf le plus proche dans la variable a puis va chercher cet œuf".

en	%%statement speach-statement$tell%% allows you to say a message to other heroes.
fr	%%statement speach-statement$dire%% permet de dire un message à d'autres héros.

en	You could read the above example as "Tell 'ok' to the hero on the right of you".
fr	On peut lire l'exemple ci-dessus comme suit : "Dis "ok" au héro à droite de toi".

en	You can also %%statement speach-statement$tell%% a message to every %%icon icon-hero$%% hero of the level.
fr	On peut également %%statement speach-statement$dire%% un message à tous les %%icon icon-hero$%% héros du niveau.

en	You could read the above example as "Tell "hey" to everyone".
fr	On peut lire l'exemple ci-dessus comme suit : "Dis "hey" à tous les héros".

en	%%statement speach-statement$listen%% tells the hero to wait until he hears a specific message.
fr	%%statement speach-statement$écouter%% dis au héro d'attendre jusqu'à ce qu'il entende un message spécifique.

en	You could read the above example as "Wait for a hero to tell you "hey" then go right".
fr	On peut lire l'exemple ci-dessus comme suit : "Attends qu'un héro te dise "hey" puis va à droite".

en	steps
fr	étapes

en	lines
fr	lignes

en	secondary objectives can be very difficult and it is often impossible to achieve both with the same solution
fr	les objectifs secondaires peuvent être très difficiles et il est souvent impossible de réussir les deux avec la même solution

en	objective
fr	objectif

en	secondary objectives
fr	objectifs secondaires

en	your solution is tested to make sure it works every time
fr	la solution est testée pour s'assurer qu'elle marche à chaque fois

en	your fastest was %%score-number${minStep}%% steps
fr	ton meilleur temps était %%score-number${minStep}%% étapes

en	your smallest was %%score-number${minLength}%% lines
fr	ta solution la plus courte faisait %%score-number${minLength}%% lignes

en	back
fr	retour

en	improve
fr	améliorer

en	Run [ctrl+space]
fr	Lancer [ctrl+space]

en	Pause [ctrl+space]

en	Step by step [ctrl+enter]
fr	Étape par étape [ctrl+enter]

en	Stop [ctrl+backspace]

en	Speed [alt+←] [alt+→]
fr	Vitesse [alt+←] [alt+→]

en	Undo [ctrl+z]
fr	Annuler [ctrl+z]

en	Redo [ctrl+y]
fr	Rétablir [ctrl+y]

en	Delete
fr	Supprimer

en	Switch to graphic editor [ctrl+e]
fr	Passer à l'éditeur graphique [ctrl+e]

en	Switch to code editor [ctrl+e]
fr	Passer à l'éditeur de code [ctrl+e]

en	Your code is ready to be run
fr	Ton code est prêt à être exécuté

en	Your instructions are not complete: click me for more details
fr	Des instructions sont incomplètes : clique pour plus de détails

en	There is an error in your code: click me for more details
fr	Le code contient une erreur : clique pour plus de détails

en	Your code is ready to be run
fr	Le code est prêt à être exécuté

en	Your code contains %%undefined$undefined%% keywords. Replace them by correct values before running your code.
fr	Le code contient des mot-clés %%undefined$undefined%%. Remplace-les par des valeurs correctes avant d'exécuter le code.

en	There is an error in your code. If you switch to graphic editor now, parts of it risk to be erased.
fr	Le code contient une erreur. En passant à l'éditeur graphique, des parties du code risquent d'être effacées.

en	line {line}
fr	ligne {line}

en	Errors
fr	Erreurs

en	you wrote something erroneous after this {statementType}.
fr	tu as écrit quelque chose d'erroné après cette {statementType}.

en	you wrote something erroneous after this %%keyword${statementType}%%.
fr	tu as écrit quelque chose d'erroné après ce %%keyword${statementType}%%.

en	%%keyword${statementType}%% is not available in this level.
fr	%%keyword${statementType}%% n'est pas disponible dans ce niveau.

en	messages are not available in this level.
fr	Les messages ne sont pas disponibles dans ce niveau.

en	Arithmetic operators are not available in this level.
fr	Les opérateurs arithmétiques ne sont pas disponibles dans ce niveau.

en	you wrote something erroneous after the function %%function${keyword}()%%.
fr	tu as écrit quelque chose d'erroné après la fonction %%function${keyword}()%%.

en	%%keyword${statementType}%% expects a direction (%%literal${allowedDirections}%%) and an anchor.
fr	%%keyword${statementType}%% attend une direction (%%literal${allowedDirections}%%) et une ancre.

en	%%variable${variable}%% variable name is not allowed. Use one of the following instead: %%variable${allowedIdentifiers}%%.
fr	%%variable${variable}%% n'est pas un nom de variable autorisé. Utilise un des noms suivants : %%variable${allowedIdentifiers}%%.

en	%%number${value}%% number is either too small or too large: numbers must be between %%number${min}%% and %%number${max}%%.
fr	%%number${value}%% est soit trop petit soit trop grand : les nombres doivent être entre %%number${min}%% et %%number${max}%%.

en	%%string$"{message}"%% message is not allowed. Use one of the following instead: %%string${allowedMessages}%%.
fr	%%string$"{message}"%% n'est pas un message autorisé. Utilise un des messages suivants : %%string${allowedMessages}%%.

en	%%function${code}%% is not a valid function. Use one of the following instead: %%function${allowedFunctions}%%.
fr	%%function${code}%% n'est pas une fonction valide. Utilise une des fonctions suivantes : %%function${allowedFunctions}%%.

en	%%function${code}%% is not a valid action. Use one of the following instead: %%function${allowedFunctions}%%.
fr	%%function${code}%% n'est pas une action valide. Utilise une des actions suivantes : %%function${allowedFunctions}%%.

en	%%function${keyword}()%% is not available in this level. Use one of the following instead: %%function${allowedFunctions}%%
fr	%%function${keyword}()%% n'est pas disponible dans ce niveau. Utilise une des actions suivantes : %%function${allowedFunctions}%%

en	%%function${keyword}()%% is not available in this level. Use one of the following instead: %%function${allowedFunctions}%%
fr	%%function${keyword}()%% n'est pas disponible dans ce niveau. Utilise une des fonctions suivantes : %%function${allowedFunctions}%%

en	Directions are not available in this level.
fr	Les directions ne sont pas disponibles dans ce niveau.

en	%%literal$everyone%% is not available in this level.
fr	%%literal$everyone%% n'est pas disponible dans ce niveau.

en	Numbers are not available in this level.
fr	Les nombres ne sont pas disponibles dans ce niveau.

en	%%literal$myitem%% is not available in this level.
fr	%%literal$myitem%% n'est pas disponible dans ce niveau.

en	Object types are not available in this level.
fr	Les types d'objets ne sont pas disponibles dans ce niveau.

en	Terrain types are not available in this level.
fr	Les types de terrain ne sont pas disponibles dans ce niveau.

en	%%function${keyword}()%% requires exactly one parameter which can be a number, a variable, a direction or %%literal$myitem%%
fr	%%function${keyword}()%% attend exactement un paramètre qui peut être un nombre, une variable, une direction ou %%literal$myitem%%

en	%%variable${param}%% is not a valid number, variable, direction or %%literal$myitem%%
fr	%%variable${param}%% n'est pas une direction, une variable, un nombre ou %%literal$myitem%%

en	%%variable${param}%% is not a valid variable or direction. You can use these instead: %%variable${allowedVariables}%% %%literal${allowedDirections}%%
fr	%%variable${param}%% n'est pas une direction ou une variable valide. Tu peux utiliser un des termes suivants à la place : %%variable${allowedVariables}%% %%literal${allowedDirections}%%

en	%%function${keyword}()%% requires exactly one parameter which can be a number or a variable (%%variable${allowedVariables}%%)
fr	%%function${keyword}()%% attend exactement un paramètre qui peut être un nombre ou une variable (%%variable${allowedVariables}%%)

en	%%function${keyword}()%% requires exactly one number parameter
fr	%%function${keyword}()%% attend exactement un nombre en paramètre

en	%%variable${param}%% is not a valid number
fr	%%variable${param}%% n'est pas un nombre valide

en	%%variable${param}%% is not a valid number or variable
fr	%%variable${param}%% n'est pas une variable ou un nombre valide

en	%%function${keyword}()%% requires exactly one direction parameter: %%literal${directions}%%
fr	%%function${keyword}()%% attend exactement un paramètre de direction : %%literal${directions}%%

en	%%function${keyword}()%% requires one direction (%%literal${allowedDirections}%%) or a variable (%%variable${allowedVariables}%%)
fr	%%function${keyword}()%% attend un paramètre de direction (%%literal${allowedDirections}%%) ou une variable (%%variable${allowedVariables}%%)

en	%%function${keyword}()%% requires one or more direction parameters (%%literal${allowedDirections}%%) or a variable (%%variable${allowedVariables}%%)
fr	%%function${keyword}()%% attend un ou plusieurs paramètres de direction (%%literal${allowedDirections}%%) ou une variable (%%variable${allowedVariables}%%)

en	%%function${keyword}()%% requires exactly one object type parameter: %%literal${allowedValues}%%
fr	%%function${keyword}()%% attend exactement un paramètre type d'objet : %%literal${allowedValues}%%

en	%%variable${param}%% is not a valid direction. Use one of these instead: %%literal${allowedValues}%%
fr	%%variable${param}%% n'est pas une direction valide. Utilise celles-là : %%literal${allowedValues}%%

en	%%variable${param}%% is not a valid object type. Use one of these instead: %%literal${allowedValues}%%
fr	%%variable${param}%% n'est pas un type d'objet valide. Utilise ceux-là : %%literal${allowedValues}%%

en	%%function${keyword}()%% does not accept direction %%literal${param}%%. Use one of these instead: %%literal${allowedValues}%%
fr	%%function${keyword}()%% n'accepte pas la direction %%literal${param}%%. Utilise celles-là à la place : %%literal${allowedValues}%%

en	%%keyword${keyword}%% does not accept direction %%literal${param}%%. Use one of these instead: %%literal${allowedValues}%%
fr	%%keyword${keyword}%% n'accepte pas la direction %%literal${param}%%. Utilise celles-là à la place : %%literal${allowedValues}%%

en	%%function${keyword}()%% does not accept object type %%literal${param}%%. Use one of these instead: %%literal${allowedValues}%%
fr	%%function${keyword}()%% n'accepte pas le type d'objet %%literal${param}%%. Utilise ceux-là à la place : %%literal${allowedValues}%%

en	%%function${keyword}()%% takes 3 parameters. Params 1 and 3 must be either numbers, directions, %%literal$myitem%% or variables and param 2 must be an operator (%%operator${operators}%%)
fr	%%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}%%)

en	%%function${keyword}()%% takes 2 parameters. Param 1 must be a message (%%string${allowedMessages}%%) and param 2 must be either a direction (%%literal${allowedDirections}%%) or %%literal$everyone%%
fr	%%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%%

en	you cannot pass %%literal${param}%% parameter twice to %%function${keyword}()%%
fr	tu ne peux pas donner deux fois %%literal${param}%% à %%function${keyword}()%%

en	when you give several parameters to the %%function${keyword}()%% function, they must be of the same type
fr	quand tu donnes plusieurs paramètres à la fonction %%function${keyword}()%%, ils doivent être tous du même type

en	%%literal${keyword}%% object type is not available in this level. You can use one of the following: %%literal${allowedValues}%%
fr	le type d'objet %%literal${keyword}%% n'est pas disponible dans ce niveau. Tu peux utiliser l'un des suivants : %%literal${allowedValues}%%

en	%%literal${keyword}%% terrain type is not available in this level. You can use one of the following: %%literal${allowedValues}%%
fr	le type de terrain %%literal${keyword}%% n'est pas disponible dans ce niveau. Tu peux utiliser l'un des suivants : %%literal${allowedValues}%%

en	a condition must contain a valid comparator like these: %%operator${allowedOperators}%%
fr	une condition doit contenir un comparateur valide comme ceux-ci : %%operator${allowedOperators}%%

en	%%variable${code}%% is not a valid keyword
fr	%%variable${code}%% n'est pas un mot-clé valide

en	%%variable${code}%% is not a valid instruction
fr	%%variable${code}%% n'est pas une instruction valide

en	%%variable${variable}%% variable is unavailable in this level. Use one of the following: %%variable${allowedNames}%%
fr	la variable %%variable${variable}%% n'est pas disponible dans ce niveau. Tu peux utiliser l'une des suivantes : %%variable${allowedNames}%%

en	variables are not available in this level
fr	les variables ne sont pas disponibles dans ce niveau

en	%%keyword${keyword}%% condition must be closed with a %%code$:%%
fr	la condition du %%keyword${keyword}%% doit être fermée avec un %%code$:%%

en	%%keyword${elseKeyword}%% without %%keyword${ifKeyword}%% before
fr	%%keyword${elseKeyword}%% sans %%keyword${ifKeyword}%% avant

en	%%keyword${endifKeyword}%% without %%keyword${ifKeyword}%% before
fr	%%keyword${endifKeyword}%% sans %%keyword${ifKeyword}%% avant

en	%%keyword${ifKeyword}%% without %%keyword${endifKeyword}%%
fr	%%keyword${ifKeyword}%% sans %%keyword${endifKeyword}%%

en	%%bracket${anchorName}:%% found twice. Anchors must have unique names
fr	%%bracket${anchorName}:%% trouvée deux fois. Les ancres doivent avoir des noms uniques

en	%%keyword${jumpKeyword}%% to unknown anchor %%bracket${anchorName}:%%
fr	%%keyword${jumpKeyword}%% vers une ancre inconnue %%bracket${anchorName}:%%

en	anchor
fr	ancre

en	assignment
fr	assignation

en	direction

en	if
fr	si

en	else
fr	sinon

en	jump
fr	saut

en	clone

en	step
fr	aller

en	fireball
fr	boule de feu

en	take
fr	prendre

en	drop
fr	déposer

en	write
fr	écrire

en	tell
fr	dire

en	to
fr	à

en	listen
fr	écouter

en	set
fr	init

en	calc

en	nearest
fr	plus proche

en	and
fr	et

en	or
fr	ou

en	delete
fr	enlever

en	direction

en	number
fr	nombre

en	my item
fr	mon item

en	everyone
fr	tout le monde

en	"hey"

en	"lol"

en	"ho"

en	"kiss"
fr	"bisou"

en	"stop"

en	"wait"
fr	"attends"

en	"ok"

en	"coffee"
fr	"café"

en	nothing
fr	rien

en	hero
fr	héro

en	beast
fr	monstre

en	switch
fr	bouton

en	bonfire
fr	feu

en	cauldron
fr	chaudron

en	spikes
fr	piques

en	egg
fr	œuf

en	wall
fr	mur

en	floor
fr	sol

en	hole
fr	trou

en	infected
fr	infecté

en	nothing
fr	vide

en	Some of the tests failed. We reproduced the same situation as in these failed attempts.
fr	Certains tests ont échoué. Nous avons reproduit une des situations problématiques.

en	Your program takes too much time
fr	Ton programme prend trop de temps

en	Your heroes fell asleep before completing the objective
fr	Les héros se sont endormis avant de remplir l'objectif

en	All your heroes are dead
fr	Tous les héros sont morts

en	One of your heroes is dead
fr	Un des héros est mort

en	This file is not a valid .shlv file:
fr	Ce fichier n'est pas un fichier .shlv valide :