en	Levels
ar	مراحل اللعبة

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!
ar	"Selfless Heroes" هي لعية ستعلمك كيف تبرمج دون ان تلاحظ. حل الالغاز و ساعد ابطالك ليخرجوا من البرج بنجاح!

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!
ar	"Selfless Heroes" هي لعية ستعلمك كيف تبرمج دون ان تلاحظ. حل الالغاز و ساعد ابطالك ليخرجوا من البرج بنجاح!

en	puzzle game, video game, serious game, programming, development, puzzle, education, fun, logic, algorithm
ar	لعبة الغاز, لعبة فيديو, لعبة جادة, برمجة, تطوير, لغز, تعليم, متعة, منطق, خوارزمية

en	Are you sure you want to leave Selfless Heroes?
ar	هل انت متأكد من مغادرة لعبة "Selfless Heroes"؟

en	In order to have the best game experience, it is recommended to go fullscreen.
ar	من اجل تجربة افضل, ينصح بالذهاب لوضع ملء الشاشة.

en	Don't show this message again
ar	لا تعرض هذة الرسالة مجددا

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.
ar	النسخة الإلكترونية من Selfless Heroes تحفظ لعبتك في المتصفح. إذا حذفت سجلك أو استخدمت أداة تنظيف مثل CCleaner ، فيمكنك حذف لعبتك.

en	To make sure you don't lose your game:
ar	للتأكد من عدم فقدان لعبتك:

en	install Selfless Heroes
ar	ثبت Selfless Heroes

en	or save your game (%%mdi mdi-content-save-move$%%)
ar	او احقظ اللعبة (%%mdi mdi-content-save-move$%%)

en	Don't show this message again
ar	لا تظهر هذه الرسالة مرة أخرى

en	Exit
ar	غادر

en	Menu
ar	القائمة

en	Join the community on Discord
ar	انضم الينا علي Discord

en	Fullscreen
ar	ملء الشاشة

en	Fullscreen
ar	ملء الشاشة

en	Exit fullscreen
ar	غادر ملء الشاشة

en	Music
ar	موسيقي

en	Sound
ar	الصوت

en	Mute
ar	كتم الصوت

en	Unmute
ar	تشغيل الصوت

en	Language
ar	اللغة

en	credits
ar	قائمة الشرف

en	view online
ar	عرض اونلاين

en	The screen of your device is too small to play Selfless Heroes
ar	شاشة جهازك أصغر من أن تلعب 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.
ar	تم تصميم Selfless Heroes للعمل على سطح المكتب والكمبيوتر المحمول والكمبيوتر اللوحي. للعب هذه اللعبة ، يجب أن يكون لديك حجم شاشة على الأقل {minMaxDimension} في {minMinDimension}بيكسل :شاشتك {minMaxDimension}في {minMinDimension} بيكسل فقط.

en	new game:
ar	لعبة جديدة:

en	pseudo
ar	زائف

en	or
ar	او

en	%%mdi mdi-content-save-move$%% Load a game
ar	%%mdi mdi-content-save-move$%% اكمل لعبة

en	Save as…
ar	احفظ كـ…

en	Remove
ar	امسح

en	Are you really sure you want to delete this game? All progress will be lost.
ar	هل انت متأكد من أنك تريد مسح هذا اللعبة؟ التقدم الذي احرزته سيفقد.

en	Load a saved game %%mdi mdi-content-save-move$%% .shsv file
ar	تحميل لعبة محفوظة %%mdi mdi-content-save-move$%% ملف بصيغة shsv

en	This file is not a valid .shsv file
ar	هذا الملف ليس ملف shsv صالح

en	Back
ar	رجوع

en	BONUS
ar	إضافي

en	BOSS
ar	زعيم

en	Unlock more levels
ar	افتح المزيد من المراحل

en	Premium content
ar	المحتوي المدفوع

en	%%content-number$3%% new level categories for a total of %%content-number$34%% additional levels
ar	فئات جديدة من المراحل بمجموع%%content-number$3%% مراحل إضافية%%content-number$34%%

en	Heroes can calculate and write on eggs
ar	الابطال يمكنهم الحساب و الكتابة علي البيض

en	Heroes can speak to each other
ar	الابطال يمكنهم الكلام مع بعضهم البعض

en	Heroes can clone themselves
ar	الابطال يمكنهم استنساخ انفسهم

en	back
ar	رجوع

en	unlock premium content
ar	افتح المحتوي المدفوع

en	Unlock premium content
ar	افتح المحتوي المدفوع

en	get activation key
ar	احصل علي مفتاح التفعيل

en	activation key:
ar	مفتاح التفعيل:

en	This is not a valid activation key.
ar	مفتاح تفعيل غير صالح.

en	Congratulations! You've successfully unlocked Selfless Heroes premium content.
ar	تهانينا! لقد قمت بفتح المحتوي الإضافي لSelfless Heros بنجاح.

en	play
ar	العب

en	Play
ar	العب

en	back
ar	رجوع

en	Back
ar	رجوع

en	New solution
ar	حل جديد

en	Duplicate
ar	نسخ

en	copy
ar	نسخ

en	Delete
ar	مسح

en	Rename
ar	اعادة تسمية

en	name
ar	الاسم

en	Are you really sure you want to delete this solution?
ar	هل انت متأكد من مسح هذا الحل؟

en	ok
ar	حسنا

en	cancel
ar	إلغاء

en	Close
ar	إغلاق

en	yes
ar	نعم

en	no
ar	لا

en	Next
ar	التالي

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.
ar	يُنصح يإتباع الشرح بحرص حتي تتمكن من اللعب. إضغط علي السهم لرؤية الشرح.

en	The heroes follow these instructions step by step
ar	سيتبع الابطال هذه التعليمات خطوة بخطوة

en	Drag new instructions from here to change heroes behavior
ar	اسحب تعليمات جديدة من هنا لتغيير تصرفات الابطال

en	To see the level objective click here
ar	لرؤية الهدف المرحلة اضغط هنا

en	When your program is ready, click here to run it
ar	عندما يجهز برنامجك, اضغط هنا لتشغيله

en	If you need more help or want to see this tutorial again, click here
ar	اذا احتجت الي المزيد من المساعدة او تريد رؤية الشرح مرة اخري, اضغط هنا

en	Undo last edit
ar	ارجع عن اخر تعديل

en	Redo
ar	افعله مرة اخري

en	Delete all instructions
ar	مسح كل التعليمات

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.
ar	انتقل للكود النصي. الكود النصي يمكن نسخه من مرحله لأخري. يمكن ايضا استخدامه بواسطة اللاعبين المتقدمين الذين يريدون كتابة البرنامج بالكود بدلا من الرسوميات.

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.
ar	اضغط علي البطل لإتباع تصرفاته بشكل افضل. عند يبدا البرنامج بالعمل, سيظهر سهم ازرق يسار التعليمات ليوضح البطل المختار بأي خطوة في البرنامج .

en	Run or pause the program
ar	شغل او وقف البرنامج

en	Run the program step by step
ar	شغل البرنامج خطوة بخطوة

en	Stop the program
ar	وقف البرنامج

en	Speed setting
ar	إعدادات السرعة

en	Open the menu
ar	افتح القائمة

en	Back to level list
ar	إرجع لقائمة المراحل

en	Help
ar	المساعدة

en	Objective
ar	الهدف

en	Help
ar	المساعدة

en	general
ar	عام

en	Basic tutorial
ar	شرح بسيط

en	Advanced tutorial
ar	شرح متقدم

en	There are 3 stars to win per level:
ar	يمكنك الحصول علي ثلاث نجوم كل مرحلة:

en	star 1:
ar	النجمة 1:

en	achieve the level objective
ar	تحقيق هدف المرحلة

en	star 2:
ar	النجمة 2:

en	run time secondary objective
ar	تحقيق هدف (ثانوي) وقت التشغيل

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.
ar	لتحقيق هذا الهدف ,علي برنامجك ان يأخد اقل عدد ممكن من الخطوات لتحقيق النتيجة النهائية. اي انها يجب ان تكون اسرع ما يمكن.

en	star 3:
ar	النجمة 3:

en	code length secondary objective
ar	مهمة (ثانوية) طول الكود

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).
ar	لتحقيق هذة المهمة, علي برنامجك ان يتضمن اقل عدد ممكن من السطور ( اعداد السطور تظهر يسار تعليمات الابطال).

en	code example:
ar	مثال لكود:

en	example:
ar	مثال:

en	%%statement branching-statement$if%% allows to run instructions only if a given condition is true.
ar	تسمح لك بتفيذ تعليمات فقط اذا كان الشرط صحيحا.%%statement branching-statement$لو%%

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".
ar	يمكن قراءة المثال بالاعلي "إذا كان المربع علي يميني حائط, اذهب الي اليسار عدا ذلك اهب لليمين".

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.
ar	تقوم بتفقد الشرط إذا كان صحيحا في هذه الحالة سينفذ التعليمات بداخله (التعليمات علي الخط الرمادي الطولي). %%statement branching-statement$ لو%%إذا كان هناك واحدة. %%statement branching-statement$عدا ذلك%% عدا ذلك ستنفذ التعليمات بداخل

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.

en	Click on the plus sign to add other conditions.

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".

en	%%statement branching-statement$jump%% allows to jump backward or forward in the program.

en	You could read the above example as "Step to the right infinitely many times".

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.

en	%%statement branching-statement$jump%% is usually used with %%statement branching-statement$if%% to create loops which stop at a condition.

en	You could read the above example as "Step to the right as long as the square to the right is not a wall".

en	%%statement branching-statement$clone%% creates a clone of the hero next to him.

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%%.

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.

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.

en	You could read the above example as "Go one step to the left or to the right".

en	%%statement action-statement$step%% says to your hero to go in a direction.

en	You could read the above example as "Go one step to the right".

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.

en	You could read the above example as "Throw a fireball to the right".

en	%%statement action-statement$take%% says to your hero to take an item.

en	You could read the above example as "If there is an egg on the square on your right, take this egg".

en	%%statement action-statement$drop%% says to your hero to drop his item.

en	You could read the above example as "Drop your item on the square on your right".

en	%%statement action-statement$write%% says to your hero to write something on his item.

en	You could read the above example as "Write 3 on your item".

en	%%statement assign-statement$set%% initializes a variable.

en	You could read the above example as "Set the variable a to 3".

en	%%statement assign-statement$calc%% makes a calculation and puts the result in a variable.

en	You could read the above example as "Set the variable b to a + 2".

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.

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.

en	You could read the above example as "Memorize the nearest egg in the variable a and then go get that egg".

en	%%statement speach-statement$tell%% allows you to say a message to other heroes.

en	You could read the above example as "Tell 'ok' to the hero on the right of you".

en	You can also %%statement speach-statement$tell%% a message to every %%icon icon-hero$%% hero of the level.

en	You could read the above example as "Tell "hey" to everyone".

en	%%statement speach-statement$listen%% tells the hero to wait until he hears a specific message.

en	You could read the above example as "Wait for a hero to tell you "hey" then go right".

en	steps

en	lines

en	secondary objectives can be very difficult and it is often impossible to achieve both with the same solution

en	objective

en	secondary objectives

en	your solution is tested to make sure it works every time

en	your fastest was %%score-number${minStep}%% steps

en	your smallest was %%score-number${minLength}%% lines

en	back

en	improve

en	Run [ctrl+space]

en	Pause [ctrl+space]

en	Step by step [ctrl+enter]

en	Stop [ctrl+backspace]

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

en	Undo [ctrl+z]

en	Redo [ctrl+y]

en	Delete

en	Switch to graphic editor [ctrl+e]

en	Switch to code editor [ctrl+e]

en	Your code is ready to be run

en	Your instructions are not complete: click me for more details

en	There is an error in your code: click me for more details

en	Your code is ready to be run

en	Your code contains %%undefined$undefined%% keywords. Replace them by correct values before running your code.

en	There is an error in your code. If you switch to graphic editor now, parts of it risk to be erased.

en	line {line}

en	Errors

en	you wrote something erroneous after this {statementType}.

en	you wrote something erroneous after this %%keyword${statementType}%%.

en	%%keyword${statementType}%% is not available in this level.

en	messages are not available in this level.

en	Arithmetic operators are not available in this level.

en	you wrote something erroneous after the function %%function${keyword}()%%.

en	%%keyword${statementType}%% expects a direction (%%literal${allowedDirections}%%) and an anchor.

en	%%variable${variable}%% variable name is not allowed. Use one of the following instead: %%variable${allowedIdentifiers}%%.

en	%%number${value}%% number is either too small or too large: numbers must be between %%number${min}%% and %%number${max}%%.

en	%%string$"{message}"%% message is not allowed. Use one of the following instead: %%string${allowedMessages}%%.

en	%%function${code}%% is not a valid function. Use one of the following instead: %%function${allowedFunctions}%%.

en	%%function${code}%% is not a valid action. Use one of the following instead: %%function${allowedFunctions}%%.

en	%%function${keyword}()%% is not available in this level. Use one of the following instead: %%function${allowedFunctions}%%

en	%%function${keyword}()%% is not available in this level. Use one of the following instead: %%function${allowedFunctions}%%

en	Directions are not available in this level.

en	%%literal$everyone%% is not available in this level.

en	Numbers are not available in this level.

en	%%literal$myitem%% is not available in this level.

en	Object types are not available in this level.

en	Terrain types are not available in this level.

en	%%function${keyword}()%% requires exactly one parameter which can be a number, a variable, a direction or %%literal$myitem%%

en	%%variable${param}%% is not a valid number, variable, direction or %%literal$myitem%%

en	%%variable${param}%% is not a valid variable or direction. You can use these instead: %%variable${allowedVariables}%% %%literal${allowedDirections}%%

en	%%function${keyword}()%% requires exactly one parameter which can be a number or a variable (%%variable${allowedVariables}%%)

en	%%function${keyword}()%% requires exactly one number parameter

en	%%variable${param}%% is not a valid number

en	%%variable${param}%% is not a valid number or variable

en	%%function${keyword}()%% requires exactly one direction parameter: %%literal${directions}%%

en	%%function${keyword}()%% requires one direction (%%literal${allowedDirections}%%) or a variable (%%variable${allowedVariables}%%)

en	%%function${keyword}()%% requires one or more direction parameters (%%literal${allowedDirections}%%) or a variable (%%variable${allowedVariables}%%)

en	%%function${keyword}()%% requires exactly one object type parameter: %%literal${allowedValues}%%

en	%%variable${param}%% is not a valid direction. Use one of these instead: %%literal${allowedValues}%%

en	%%variable${param}%% is not a valid object type. Use one of these instead: %%literal${allowedValues}%%

en	%%function${keyword}()%% does not accept direction %%literal${param}%%. Use one of these instead: %%literal${allowedValues}%%

en	%%keyword${keyword}%% does not accept direction %%literal${param}%%. Use one of these instead: %%literal${allowedValues}%%

en	%%function${keyword}()%% does not accept object type %%literal${param}%%. Use one of these instead: %%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}%%)

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%%

en	you cannot pass %%literal${param}%% parameter twice to %%function${keyword}()%%

en	when you give several parameters to the %%function${keyword}()%% function, they must be of the same type

en	%%literal${keyword}%% object type is not available in this level. You can use one of the following: %%literal${allowedValues}%%

en	%%literal${keyword}%% terrain type is not available in this level. You can use one of the following: %%literal${allowedValues}%%

en	a condition must contain a valid comparator like these: %%operator${allowedOperators}%%

en	%%variable${code}%% is not a valid keyword

en	%%variable${code}%% is not a valid instruction

en	%%variable${variable}%% variable is unavailable in this level. Use one of the following: %%variable${allowedNames}%%

en	variables are not available in this level

en	%%keyword${keyword}%% condition must be closed with a %%code$:%%

en	%%keyword${elseKeyword}%% without %%keyword${ifKeyword}%% before

en	%%keyword${endifKeyword}%% without %%keyword${ifKeyword}%% before

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

en	%%bracket${anchorName}:%% found twice. Anchors must have unique names

en	%%keyword${jumpKeyword}%% to unknown anchor %%bracket${anchorName}:%%

en	anchor

en	assignment

en	direction

en	if

en	else

en	jump

en	clone

en	step

en	fireball

en	take

en	drop

en	write

en	tell

en	to

en	listen

en	set

en	calc

en	nearest

en	and

en	or

en	delete

en	direction

en	number

en	my item

en	everyone

en	"hey"

en	"lol"

en	"ho"

en	"kiss"

en	"stop"

en	"wait"

en	"ok"

en	"coffee"

en	nothing

en	hero

en	beast

en	switch

en	bonfire

en	cauldron

en	spikes

en	egg

en	wall

en	floor

en	hole

en	infected

en	nothing

en	Some of the tests failed. We reproduced the same situation as in these failed attempts.

en	Your program takes too much time

en	Your heroes fell asleep before completing the objective

en	All your heroes are dead

en	One of your heroes is dead

en	This file is not a valid .shlv file: