Skip to content

Unify all javascript Arabic words to one shape #178

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 33 additions & 33 deletions 1-js/01-getting-started/1-intro/article.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions 1-js/01-getting-started/2-manuals-specifications/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## الوصف

[وصف The ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) يحتوي على المعلومات الأكثر عمقاً وتفصيلاً ورسميةً عن جافاسكريبت. وهي تقوم بتعريف اللغة.
[وصف The ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) يحتوي على المعلومات الأكثر عمقاً وتفصيلاً ورسميةً عن جافا سكريبت. وهي تقوم بتعريف اللغة.

و لكن كونها بهذه الرسمية، تجعل فهمها من أول مرة صعبا. لذلك إذا كنت تريد مصدر المعلومى الأكثر وثوقاً عن تفاصيل اللغة، الوصف هو المكان الصحيح. لكنها ليست للإستعمال اليومي.

Expand All @@ -22,13 +22,13 @@

أيضاً، غالباً ما يكون من الأفضل استخدام البحث عبر الإنترنت بدلاً من ذلك. فقط استخدم "[مصطلح] MDN" للإستعلام، مثال <https://google.com/search?q=MDN+parseInt> لتبحث عن دالة `parseInt`.

* **MSDN** – مراجع ميكروسوفت يوجد بها معلومات كثيرة، متضمنة جافاسكريبت (غالباً يشار إليها JScript). إذا كنت تريد شيئا أكثر تخصصا عن انترنت اكسبلورر، من الأفضل الذهاب إلى: <http://msdn.microsoft.com/>.
* **MSDN** – مراجع ميكروسوفت يوجد بها معلومات كثيرة، متضمنة جافا سكريبت (غالباً يشار إليها JScript). إذا كنت تريد شيئا أكثر تخصصا عن انترنت اكسبلورر، من الأفضل الذهاب إلى: <http://msdn.microsoft.com/>.

أيضاً، يمكن غن نستخدم بحث الإنترنت بعبارات مثل "RegExp MSDN" or "RegExp MSDN jscript".

## جدول التوافق

جافاسكريبت لغة فى سياق متطور، تضاف إليها خصائص جديدة بانتظام.
جافا سكريبت لغة فى سياق متطور، تضاف إليها خصائص جديدة بانتظام.

لتَّـحَقّـق من الدعم ما بين المتصفحات والمحركات الأخرى، انظر:

Expand Down
2 changes: 1 addition & 1 deletion 1-js/01-getting-started/3-code-editors/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
- [فيجوال ستديو كود](https://code.visualstudio.com/) (يعمل على أكثر من نظام تشغيل، مجاني).
- [ويب ستورم](http://www.jetbrains.com/webstorm/) (يعمل على أكثر من نظام تشغيل، مدفوع).

بالنسبة للويندوز، يمكن استخدام برنامج فيجوال ستديو، لايجب الخلط بينه وبين الفيجوال ستديو كود، فيجوال ستديو هو محرر مدفوع يعمل على نظام ويندوز فقط، ومناسب تماماً لبيئة الـ.NET. أنه أيضاً جيد للجافاسكريبت. كما يوجد إصدار مجاني منه [Visual Studio Community](https://www.visualstudio.com/vs/community/).
بالنسبة للويندوز، يمكن استخدام برنامج فيجوال ستديو، لايجب الخلط بينه وبين الفيجوال ستديو كود، فيجوال ستديو هو محرر مدفوع يعمل على نظام ويندوز فقط، ومناسب تماماً لبيئة الـ.NET. أنه أيضاً جيد لجافا سكريبت. كما يوجد إصدار مجاني منه [Visual Studio Community](https://www.visualstudio.com/vs/community/).

عادة ما تكون تكلفتها ضئيلة للغاية مقارنة براتب المطور المؤهل، لذلك فقط اختر الأفضل بالنسبة لك. العديد من بيئات التطوير مدفوعة، لكن لها فترة سماحية.

Expand Down
18 changes: 9 additions & 9 deletions 1-js/02-first-steps/01-hello-world/article.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# أهلاً، بالعالم!

هذا الجزء من البرنامج التعليمي عن أساسيات لغة الجافا سكريبت، اللغة نفسها.
هذا الجزء من البرنامج التعليمي عن أساسيات لغة جافا سكريبت، اللغة نفسها.

لكن نحتاج إلى بيئة عمل من أجل تشغيل النصوص الخاصة بنا، وبما أن هذا الكتاب عبر الانترنت، لذافإن المتصفح خيار جيد. سوف نقوم بالاحتفاظ بالأوامر الخاصة بالمتصفح (مثل `alert`) للحد الأدنى بحيث لا تقضي وقتًا عليها إذا كنت تخطط للتركيز على بيئة أخرى (مثل Node.js). سوف نركز على الجافا سكريبت في المتصفح [الجزء التالي](/ui) من البرنامج التعليمي.
لكن نحتاج إلى بيئة عمل من أجل تشغيل النصوص الخاصة بنا، وبما أن هذا الكتاب عبر الانترنت، لذافإن المتصفح خيار جيد. سوف نقوم بالاحتفاظ بالأوامر الخاصة بالمتصفح (مثل `alert`) للحد الأدنى بحيث لا تقضي وقتًا عليها إذا كنت تخطط للتركيز على بيئة أخرى (مثل Node.js). سوف نركز على جافا سكريبت في المتصفح [الجزء التالي](/ui) من البرنامج التعليمي.

لذا أولاً، دعونا نرفق نصا برمجيا في صفحة الويب. بالنسبة للبيئات التي تعمل على الخوادم (مثل Node.js)، يمكنك تنفيذها من خلال استخدام أمر مثل `"node my.js"`.


## الوسم "script"

يمكن وضع برامج الجافاسكريبت في أي جزء في مستند HTML باستخدام وسم `<script>`.
يمكن وضع برامج جافا سكريبت في أي جزء في مستند HTML باستخدام وسم `<script>`.

على سبيل المثال:

Expand Down Expand Up @@ -38,18 +38,18 @@
يمكن أن تقوم بتشغيل المثال بالضغط على زر "تشغيل" في الجانب الأيمن العلوي بالمربع الأعلى.
```

الوسم `<script>` يحتوي على شفرات جافاسكريبت التي يمكن أن تُنفذ بشكل تلقائي عندما يقوم المتصفح بمعالجة الوسم.
الوسم `<script>` يحتوي على شفرات جافا سكريبت التي يمكن أن تُنفذ بشكل تلقائي عندما يقوم المتصفح بمعالجة الوسم.


## الترميز الحديث

الوسم `<script>` يحتوي على بعض الخصائص التي نادراً مايتم استخدامها في وقتنا الحاضر، لكن يمكن أن تجدها في الشفرات البرمجية القديمة:

الخاصية `type`: <code>&lt;script <u>type</u>=...&gt;</code>
: معيار HTML القديم، HTML4، يتطلب أن يحتوي وسم script على `type`. عادة ما كان `type="text/javascript"`. لم تعد مطلوبة الآن. وأيضاً، معايير HTML الحديثة غيرت معنى هذه الخاصية. والآن، يمكن أن تستخدم لوحدات الجافا سكريبت. لكن هذا الموضوع متقدم، وسنتحدث عن الوحدات في جزء آخر من البرنامج التعليمي.
: معيار HTML القديم، HTML4، يتطلب أن يحتوي وسم script على `type`. عادة ما كان `type="text/javascript"`. لم تعد مطلوبة الآن. وأيضاً، معايير HTML الحديثة غيرت معنى هذه الخاصية. والآن، يمكن أن تستخدم لوحدات جافا سكريبت. لكن هذا الموضوع متقدم، وسنتحدث عن الوحدات في جزء آخر من البرنامج التعليمي.

الخاصية `language`: <code>&lt;script <u>language</u>=...&gt;</code>
: كان الغرض من استخدام هذه الخاصية هو إظهار لغة النص البرمجي، لم تعد هذه الخاصية منطقية الآن لأن الجافا سكريبت هي اللغة الافتراضية. فليست هناك حاجة لاستخدامها.
: كان الغرض من استخدام هذه الخاصية هو إظهار لغة النص البرمجي، لم تعد هذه الخاصية منطقية الآن لأن جافا سكريبت هي اللغة الافتراضية. فليست هناك حاجة لاستخدامها.

التعليقات قبل وبعد النصوص البرمجية.
: في الكتب والأدلة القديمة جداً، قد تجد تعليقات داخل وسم `<script>`، مثل هذا:
Expand All @@ -60,12 +60,12 @@
//--></script>
```

لا يتم استخدام هذه الخدعة في الجافاسكريبت الحديثة. تخفي هذه التعليقات شفرات الجافاسكريبت في المتصفحات القديمة التي لاتعرف كيفية عمل معالجة للوسم `<script>. نظراً لأن المتصفحات التي تم إصدارها في آخر 15 عاماً لا توجد فيها هذه المشكلة، فإن هذا النوع من التعليقات يمكن أن يساعدك في تحديد الشفرة القديمة حقاً.
لا يتم استخدام هذه الخدعة في جافا سكريبت الحديثة. تخفي هذه التعليقات شفرات جافا سكريبت في المتصفحات القديمة التي لاتعرف كيفية عمل معالجة للوسم `<script>. نظراً لأن المتصفحات التي تم إصدارها في آخر 15 عاماً لا توجد فيها هذه المشكلة، فإن هذا النوع من التعليقات يمكن أن يساعدك في تحديد الشفرة القديمة حقاً.


## النصوص البرمجية الخارجية

إذا كان لدينا عدد كبير من شيفرات الجافا سكريبت، فإننا يمكن أن نضعها في ملف منفصل.
إذا كان لدينا عدد كبير من شيفرات جافا سكريبت، فإننا يمكن أن نضعها في ملف منفصل.

يتم إرفاق ملفات النصوص البرمجية HTML باستخدام خاصية `src`:

Expand Down Expand Up @@ -124,7 +124,7 @@

## ملخص

- يمكن استخدام وسم `<script>` لإضافة شيفرة الجافا سكريبت إلى صفحة.
- يمكن استخدام وسم `<script>` لإضافة شيفرة جافا سكريبت إلى صفحة.
- الخصائص `type` و`language` غير مطلوبة.
- يمكن إدراج النص البرمجي في ملف خارجي باستخدام `<script src="path/to/script.js"></script>`.

Expand Down
6 changes: 3 additions & 3 deletions 1-js/02-first-steps/04-variables/article.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# المتغيرات

:معظم الوقت, تطبيق الجافاسكربت يحتاج للعمل مع معلومات. يوجد هنا مثالان
:معظم الوقت, تطبيق جافا سكريبت يحتاج للعمل مع معلومات. يوجد هنا مثالان
1. متجر علي الانترنت -- المعلومات قد تتضمن السلع التي يتم بيعها و عربة التسوق
2. تطبيق دردشه -- المعلومات قد تتضمن المستخدمين والرسائل والمزيد

Expand All @@ -10,7 +10,7 @@

[المتغير](https://en.wikipedia.org/wiki/Variable_(computer_science)) "يُسمي مخزن" للبيانات. نحن نستطيع استخدام المتغيرات لتخزين السلع والزائرين والبيانات الاخري

لأنشاء متغير في الجافاسكربت, نستخدم الكلمه
لأنشاء متغير في جافا سكريبت, نستخدم الكلمه
`let`

الجمله بالاسفل تُنشئ (بعباره اخري: *تعلن*) متغير يأخذ اسم "message"
Expand Down Expand Up @@ -159,7 +159,7 @@ So, we should declare a variable once and then refer to it without `let`.

## تسمية المتغير [#variable-naming]

هناك طريقتان فقط لتسمية المتغير في الجافاسكربت
هناك طريقتان فقط لتسمية المتغير في جافا سكريبت

1. يجب أن يحتوي الاسم على أحرف أو أرقام أو الرموز `$` و` _` فقط.
2. الحرف الاول من الاسم يجب ألا يكون رقم.
Expand Down
16 changes: 8 additions & 8 deletions 1-js/02-first-steps/05-types/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

القيمة في جافا سكربت دائما تكون من نوع معين . على سبيل المثال نص أو رقم.

توجد 8 أنواع بيانات أساسية في الجافا سكربت . هنا سوف نغطيهم بشكل عام وفي الفصول القادمة سنتكلم عن كل نوع بالتفصيل.
توجد 8 أنواع بيانات أساسية في جافا سكريبت . هنا سوف نغطيهم بشكل عام وفي الفصول القادمة سنتكلم عن كل نوع بالتفصيل.

نستطيع أن نضع أي نوع في متغير . على سبيل المثال المتغير قد يكون في لحظة ما نص ثم يتم تخزين رقم فيه:

Expand All @@ -12,7 +12,7 @@ let message = "hello";
message = 123456;
```

لغات البرمجة التي تسمح بذلك مثل الجافا سكربت يطلق عليها
لغات البرمجة التي تسمح بذلك مثل جافا سكريبت يطلق عليها
"dynamically typed" يعني أنه يوجد أنواع بيانات محددة لكن المتغيرات غير مقيدة بهم .

## Number
Expand Down Expand Up @@ -67,7 +67,7 @@ n = 12.345;

## BigInt

في الجافا سكربت، النوع "رقم" لا يمثل الأعداد الصحيحة أكبر من <code>(2<sup>53</sup>-1)</code> ( `9007199254740991`)، أو أقل من <code>-(-2<sup>53</sup>-1)</code> للأرقام السالبة. إنها قيود فنية ناتجة عن تمثيلهم الداخلي.
في جافا سكريبت، النوع "رقم" لا يمثل الأعداد الصحيحة أكبر من <code>(2<sup>53</sup>-1)</code> ( `9007199254740991`)، أو أقل من <code>-(-2<sup>53</sup>-1)</code> للأرقام السالبة. إنها قيود فنية ناتجة عن تمثيلهم الداخلي.

لمعظم الأغراض هذا يكفي، لكن في بعض الأحيان نحتاج لأرقام كبيرة حقاً ، على سبيل المثال. للتشفير أو الطوابع الزمنية الدقيقة للميكرو ثانية.

Expand All @@ -88,7 +88,7 @@ const bigInt = 1234567890123456789012345678901234567890n;

## String

النص في الجافا سكربت يتم إحاطته بعلامات تنصيص.
النص في جافا سكريبت يتم إحاطته بعلامات تنصيص.

```js
let str = "Hello";
Expand All @@ -102,7 +102,7 @@ In JavaScript, there are 3 types of quotes.
2. علامات التنصيص المفردة: `'Hello'`.
3. الباك تيك: <code>&#96;Hello&#96;</code>.

علامات التنصيص المزدوجة والمفردة هما علامات تنصيص "بسيطة" . عملياً لا يوجد بينهم فرق في الجافا سكربت.
علامات التنصيص المزدوجة والمفردة هما علامات تنصيص "بسيطة" . عملياً لا يوجد بينهم فرق في جافا سكريبت.

الباك تيك عبارة عن علامات تنصيص "ممتدة وظيفياً" . تسمح لنا بتضمين متغيرات وتعبيرات داخل النص عن طريق إحاطتهم ب `${…}`، على سبيل المثال:

Expand All @@ -128,7 +128,7 @@ alert( "the result is ${1 + 2}" ); // the result is ${1 + 2} (علامات ال
```smart header="لا يوجد نوع *character* ."
في بعض اللغات، يوجد نوع خاص "character" يعبر عن الحرف الواحد. For example,على سبيل المثال، في لغة سي وجافا يدعى "char".

في الجافا سكربت، لا يوجد مثل هذا النوع. يوجد نوع واحد فقط: `string`. النص قد يتكون من حرف واحد أو أكثر.
في جافا سكريبت، لا يوجد مثل هذا النوع. يوجد نوع واحد فقط: `string`. النص قد يتكون من حرف واحد أو أكثر.
```

## Boolean (logical type)
Expand Down Expand Up @@ -164,7 +164,7 @@ alert( isGreater ); // نعم (نتيجة المقارنة هي "نعم")
let age = null;
```

في الجافا سكربت ، `null` ليست "مرجع لكائن غير موجود" أو "null pointer" مثل الموجود في لغات أخرى.
في جافا سكريبت ، `null` ليست "مرجع لكائن غير موجود" أو "null pointer" مثل الموجود في لغات أخرى.

إنها مجرد قيمة خاصة تعبر عن "لا شئ" أو "فارغ" أو "قيمة غير معروفة".

Expand Down Expand Up @@ -250,7 +250,7 @@ typeof alert // "function" (3)

1. `Math` كائن مدمج داخلياً لتدعيم العمليات الرياضية. سنتعلمه في الفصل <info:number>. هنا، يخدم فقط كمثال للكائن.
2. نتيجة `typeof null` هي `"object"`. هذا رسمياً يعتبر خطأ في سلوك `typeof` ، يأتي من الأيام الأولى لجافا سكربت وتم الحفاظ عليه من أجل التوافقية. قطعاً `null` ليس كائن. إنه قيمة خاصة بنوع منفصل خاص.
3. نتيجة `typeof alert` هي `"function"`، لأن `alert` دالة. سندرس الدوال في الفصول القادمة وهناك سنرى أنه لا توجد نوع خاص "دالة" في جافا سكربت. الدوال الدوال تنتمي للنوع كائن. لكن `typeof` تعاملهم بشكل مختلف، يرجع `"دالة"`. هذا أيضاً يأتي من الأيام الأولى للجافا سكربت. فنياً، مثل هذا السلوك غير صحيح، لكن قد يكون ملائم في الممارسة.
3. نتيجة `typeof alert` هي `"function"`، لأن `alert` دالة. سندرس الدوال في الفصول القادمة وهناك سنرى أنه لا توجد نوع خاص "دالة" في جافا سكربت. الدوال الدوال تنتمي للنوع كائن. لكن `typeof` تعاملهم بشكل مختلف، يرجع `"دالة"`. هذا أيضاً يأتي من الأيام الأولى لجافا سكربت. فنياً، مثل هذا السلوك غير صحيح، لكن قد يكون ملائم في الممارسة.

## خلاصة

Expand Down
4 changes: 2 additions & 2 deletions 1-js/02-first-steps/07-type-conversions/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ alert( Boolean("") ); // false
```

````warn header="من فضلك لاحظ: النص المكون من صفر `\"0\"` يكون `true`"
بعض اللغات (أعني PHP) تعامل `"0"` على أنه `false`. لكن في الجافاسكربت، النص غير الفارغ دائماً `true`.
بعض اللغات (أعني PHP) تعامل `"0"` على أنه `false`. لكن في جافا سكريبت، النص غير الفارغ دائماً `true`.

```js run
alert( Boolean("0") ); // true
Expand Down Expand Up @@ -147,4 +147,4 @@ alert( Boolean(" ") ); // المسافات، أيضاً true (أي نص غير
- `undefined` تكون `NaN` كرقم ليست `0`.
- `"0"` والنصوص التي تحتوي على مسافات فقط `" "` هي true كقيمة منطقية.

لم يتم تغطية الكائنات هنا. سنعود إليهم لاحقاً في هذا الفصل <info:object-toprimitive> تكون مكرسة حصرياً للكائنات بعد أن تعمل أشياء أساسية أكثر عن الجافا سكربت .
لم يتم تغطية الكائنات هنا. سنعود إليهم لاحقاً في هذا الفصل <info:object-toprimitive> تكون مكرسة حصرياً للكائنات بعد أن تعمل أشياء أساسية أكثر عن جافا سكريبت .
Loading