From eede518a941c9f93d7767a0596c812873ae6e9a8 Mon Sep 17 00:00:00 2001 From: islml <155185075+islml@users.noreply.github.com> Date: Fri, 28 Feb 2025 22:52:32 +0200 Subject: [PATCH 01/40] Create access.md --- contributor_docs/ar/access.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 contributor_docs/ar/access.md diff --git a/contributor_docs/ar/access.md b/contributor_docs/ar/access.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/contributor_docs/ar/access.md @@ -0,0 +1 @@ + From a6a7698ce9bb195393d450b7bc159108e2856ea1 Mon Sep 17 00:00:00 2001 From: islml <155185075+islml@users.noreply.github.com> Date: Fri, 28 Feb 2025 23:36:34 +0200 Subject: [PATCH 02/40] Update access.md --- contributor_docs/ar/access.md | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/contributor_docs/ar/access.md b/contributor_docs/ar/access.md index 8b13789179..03921f3a0a 100644 --- a/contributor_docs/ar/access.md +++ b/contributor_docs/ar/access.md @@ -1 +1,56 @@ +# تركيزنا على الإتاحة +في [مؤتمر المساهمين لعام 2019](https://p5js.org/events/contributors-conference-2019)، التزمت مكتبة p5.js بعدم إضافة أي ميزات جديدة إلا إذا كانت تزيد من الإتاحة (بمعنى الشمولية وسهولة الوصول). لن نقبل طلبات الميزات التي لا تدعم هذه الجهود. نحن ملتزمون بالاعتراف بالعوائق وتفكيكها ومنعها. وهذا يشمل أخذ التجارب المتقاطعة[^1] للتنوع في الاعتبار، والتي قد تؤثر على الإتاحة والمشاركة. من بين هذه التجارب: الجندر، العرق، الإثنية، التوجه الجنسي، اللغة، الموقع الجغرافي، وغيرها. +نحن نضع احتياجات الفئات المهمشة في مقدمة الأولويات على حساب راحة الفئات ذات الامتيازات داخل مجتمع p5.js. نحن نستكشف بشكل جماعي معنى الإتاحة، ونتعلم كيفية ممارستها وتعليمها. نحن نختار أن ننظر إلى الإتاحة من خلال أطر واسعة ومتقاطعة وتحالفية. هذا الالتزام جزء من القيم الأساسية لمكتبة p5.js، كما هو موضح في [بيان المجتمع](https://p5js.org/about/#community-statement). + +## أنزاع الإتاحة + +إن زيادة الإتاحة لا تعني التركيز على زيادة العدد الإجمالي للأشخاص في مجتمع p5.js. بل هي التزام مستمر بجعل مكتبة p5.js متاحة وسهلة الوصول للأشخاص الذين تم استبعادهم من هذا المجتمع نتيجة للاضطهاد البنيوي. يمتد هذا الالتزام ليشمل الأدوات والمنصات التي تقدمها مكتبة p5.js، وكذلك تشكيل القيادة وعمليات اتخاذ القرار والإجراءات التي تتخذها قيادة p5.js. نحن نرفض ثقافة التكنولوجيا القائمة على السرعة والنمو والمنافسة. نحن نولي الأولوية للوعي، والتمهل، وتوفير التسهيلات، والمساءلة باعتبارها أفعالًا من الرعاية الجماعية. + +تعني الإتاحة هنا جعل p5.js عادلة ومنصفة لـ: + +- الأشخاص الذين يتحدثون لغات غير الإنجليزية +- الأشخاص السود، والسكان الأصليين، والأشخاص الملونين، والأشخاص من الأعراق المهمشة +- الأشخاص المثليين والمثليات ومزدوجي التوجه الجنسي والكوير وغير محددي الهوية الجنسية والبانسكسوال واللاجنسيين +- الأشخاص المتحولين جنسيًا، وأصحاب الهوية الجندرية غير الثابتة، واللاجندريين، والأشخاص ثنائيي الجنس، وأصحاب الهويات الجندرية المتنوعة، والنساء، وغيرهم من أصحاب الهويات الجندرية المهمشة +- الأشخاص المكفوفين، أو الصم (d/Deaf)[^2] أو ضعاف السمع، أو ذوي الإعاقة، أو ذوي التنوع العصبي، أو المصابين بأمراض مزمنة[^3] +- الأشخاص من ذوي الدخل المنخفض أو الذين يفتقرون إلى الموارد المالية أو الثقافية +- الأشخاص الذين لديهم خبرة قليلة أو معدومة في المصادر المفتوحة أو البرمجة الإبداعية +- الأشخاص من خلفيات تعليمية متنوعة +- الأشخاص من جميع الفئات العمرية، بما في ذلك الأطفال وكبار السن +- الأشخاص الذين يمتلكون مستويات متفاوتة من المهارات التقنية والأدوات وإمكانية الوصول للإنترنت +- الأشخاص من خلفيات دينية متنوعة +- أي أشخاص آخرين يتعرضون بشكل منهجي للإقصاء أو تم تمثيلهم تاريخيًا بشكل ناقص +- وجميع التقاطعات بين هذه الهويات + +نحن ندرك مدى تعقيد المصطلحات المستخدمة لوصف هوياتنا المختلفة. فاللغة متغيرة، دقيقة، وتخضع دائمًا للنقاش. هذه القائمة ليست شاملة أو نهائية، لكنها محاولة لتسمية التزاماتنا وتحمل المسؤولية تجاهها، وتجاه الاحتياجات المتنوعة لمجتمع p5.js. + + +### أمثلة +فيما يلي أمثلة على الجهود التي نعتقد أنها تزيد من الإتاحة: + +- ترجمة الوثائق والمواد الأخرى إلى لغات أكثر، مع تقليل هيمنة اللغة الإنجليزية[^4] (على سبيل المثال: مشروع رولاندو فارغاس [برمجة بلغة كونا](https://medium.com/@ProcessingOrg/culture-as-translation-processing-in-kuna-language-with-rolando-vargas-and-edinson-izquierdo-8079f14851f7)، ومشروع فيليبي سانتوس غوميز وجوليا برازيل وكاثرين فين زاندر ومارسيا مانسينو [Pê Cinco: الترجمة والترويج للناطقين بالبرتغالية](https://medium.com/processing-foundation/translating-p5-js-into-portuguese-for-the-brazilian-community-14b969e77ab1)) +- تحسين دعمنا للتقنيات المساعدة، مثل برامج قراءة الشاشة (على سبيل المثال: مشروع كايتي ليو [إضافة نص بديل في p5.js](https://medium.com/processing-foundation/adding-alt-text-e2c7684e44f8)، ومشروع كلير كيرني-فولب [مشروع إتاحة p5](https://medium.com/processing-foundation/p5-accessibility-115d84535fa8)) +- اتباع [إرشادات إمكانية الوصول لمحتوى الويب (WCAG)](https://www.w3.org/TR/WCAG21/) في أدواتنا، والعمل على تسهيل اتباعها من قِبل المستخدمين في مشاريعهم +- جعل رسائل الأخطاء في مكتبة p5.js أكثر وضوحًا ودعمًا للأشخاص الذين يستخدمون الأداة (على سبيل المثال: [نظام الأخطاء الودية في p5.js (FES)](./friendly_error_system.md)) +- الإرشاد ودعم متعلمي p5.js داخل المجتمعات التي تم استبعادها تاريخيًا وتهميشها في مجالات البرمجة الإبداعية والفنون الرقمية +- استضافة فعاليات مجتمعية (على سبيل المثال: [يوم إتاحة p5.js لعام 2022](https://p5js.org/events/p5js-access-day-2022)، وفعالية [الويب الذي نريده: p5.js x W3C TPAC 2020](https://medium.com/processing-foundation/p5-js-x-w3c-tpac-bee4c621a053)) باستخدام أساليب تنظيمية تركز على الإتاحة (مثل: توفير مترجم لغة الإشارة الأمريكية ASL، والتعليقات المباشرة، واختيار أماكن ميسّرة للجميع) +- دعم إنشاء موارد تعليمية (على سبيل المثال: منهج أديكيمي سيجواد-أوكاديكي [A11y Syllabus](http://a11ysyllabus.site/)) +- نشر وثائق وتقارير عن عملنا تتبع إرشادات WCAG، وتستخدم لغة بسيطة، وتركز على المبتدئين من خلفيات متنوعة (على سبيل المثال: [تقرير إتاحة p5.js من OSACC](https://github.com/processing/OSACC-p5.js-Access-Report)) + + +## إدارة المشروع وإستمرارية العمل عليه +نحن لا نقبل طلبات الميزات الجديدة التي لا تدعم جهودنا في زيادة الإتاحة. ستجدون هذا المعيار منعكسًا في الـIssues والـPull Requests لدينا. كما نؤكد التزامنا بالحفاظ على مجموعة الميزات الحالية في مكتبة p5.js. نرغب في إصلاح الأخطاء بغض النظر عن الجزء الذي توجد فيه داخل قاعدة الكود. نحن نؤمن بأن الحفاظ على استمرارية الأداة يجعلها أكثر سهولةً للمبتدئين. + +___ + +يرجى اعتبار هذا المستند "مستندًا حيًا" قابلًا للتحديث المستمر. سنواصل النقاش حول معنى إعطاء الأولوية للإتاحة، وندعو مجتمعنا للمشاركة والتفاعل مع هذا المستند والقيم التي يصفها. إذا كانت لديك أفكار أو اقتراحات، ندعوك لمشاركتها عبر فتح Issue على GitHub أو عبر إرسال بريد إلكتروني إلى: hello@p5js.org. + +تمت مراجعة هذه النسخة من بيان الإتاحة الخاص بـ p5.js بالتعاون مع: إيفلين ماسو، نات ديكر، بوبي جو سميث الثالث، سامي فيلر، سونيا (سوه يون) تشوي، شين شين، كيت هولينباخ، لورين لي مكارثي، كارولين سيندرز، تشيان تشيان يي، تريستان جوفاني ماغنو إسبينوزا، تانفي شارما، تسيجي تافيسي، وسارة سيستون، وذلك خلال مؤتمر مساهمي الفنون مفتوحة المصدر 2023. + +تمت صياغته النهائية ونشره بواسطة بوبي جو سميث الثالث ونات ديكر بدعم من برنامج زمالة مؤسسة Processing. + +[^1]: كرينشو، كيمبرلي (1989). "إزالة التهميش عند تقاطع العرق والجنس: نقد نسوي أسود لعقيدة مكافحة التمييز، والنظرية النسوية، والسياسات المناهضة للعنصرية". منتدى القانون بجامعة شيكاغو. 1989 (1): 139–167. الرقم الدولي المعياري للدوريات: ISSN 0892-5593. النص الكامل متاح على Archive.org. +[^2]: الحرف الكبير "D" في كلمة Deaf يشير إلى الأشخاص الذين ينتمون ثقافيًا إلى مجتمع الصم ويعتبرون جزءًا منه، بينما الحرف الصغير "d" في كلمة deaf فهو مصطلح سمعي يصف الأشخاص الذين يعانون من ضعف السمع لكنهم ليسوا بالضرورة مرتبطين بهوية ثقافية خاصة بمجتمع الصم. +[^3]: توجد تفضيلات متباينة داخل مجتمع ذوي الإحتياجيات الخاصة فيما يتعلق باستخدام اللغة التي تُقدِّم الشخص أولًا (*person-first language*) مقارنةً باللغة التي تُقدِّم الهوية أولًا (*identity-first language*). يمكن الاطلاع على المزيد حول هذا النقاش في المقال: [تفكيك الجدل حول اللغة التي تُقدِّم الشخص أولًا مقابل الهوية أولًا داخل مجتمع التوحد](https://news.northeastern.edu/2018/07/12/unpacking-the-debate-over-person-first-vs-identity-first-language-in-the-autism-community/)، بالإضافة إلى مقال [لغة تعزيز الإعاقة: اللغة التي تُقدِّم الشخص أولًا مقابل اللغة التي تُقدِّم الهوية أولًا](https://editorstorontoblog.com/2024/02/23/disability-affirming-language-person-first-versus-identity-first-language/)، وأيضًا [مسرد اللغة التي تُقدِّم الشخص أولًا واللغة التي تُقدِّم الهوية أولًا](https://ogs.ny.gov/system/files/documents/2024/02/person-first-and-identity-first-glossary_english_final.pdf)، الذي يوضح المزيد من المصطلحات ذات الصلة. +[^4]: يشير مفهوم "الهيمنة اللغوية" أو "الإمبريالية اللغوية" إلى السيطرة المستمرة أو أولوية أو فرض لغات معينة مثل الإنجليزية على حساب اللغات الأصلية، وذلك نتيجة للتوسع الإمبريالي والعولمة. From cd2e9d3361b3c66a4b7d87c36152c4c8fca7a638 Mon Sep 17 00:00:00 2001 From: islml <155185075+islml@users.noreply.github.com> Date: Fri, 28 Feb 2025 23:37:35 +0200 Subject: [PATCH 03/40] Create contributor_guidelines.md --- contributor_docs/ar/contributor_guidelines.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 contributor_docs/ar/contributor_guidelines.md diff --git a/contributor_docs/ar/contributor_guidelines.md b/contributor_docs/ar/contributor_guidelines.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/contributor_docs/ar/contributor_guidelines.md @@ -0,0 +1 @@ + From 61aff7a2d945a18bc94fb1ed0ac72a0ecd58a646 Mon Sep 17 00:00:00 2001 From: islml <155185075+islml@users.noreply.github.com> Date: Fri, 28 Feb 2025 23:55:57 +0200 Subject: [PATCH 04/40] Update contributor_guidelines.md --- contributor_docs/ar/contributor_guidelines.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/contributor_docs/ar/contributor_guidelines.md b/contributor_docs/ar/contributor_guidelines.md index 8b13789179..e3216f18ca 100644 --- a/contributor_docs/ar/contributor_guidelines.md +++ b/contributor_docs/ar/contributor_guidelines.md @@ -1 +1,51 @@ +# إرشادات المساهمة + +مرحبًا بك في إرشادات المساهمة! هذا المستند موجه للمساهمين الجدد الذين يرغبون في المساهمة في كود p5.js، وللمساهمين الذين يريدون تذكير أنفسهم ببعض الخطوات التقنية، أو لأي شيء آخر متعلق بالمساهمات البرمجية في p5.js. + +إذا كنت ترغب في المساهمة خارج ريبوز p5.js (مثل كتابة دروس، تخطيط حصص، أو تنظيم فعاليات)، يُرجى الاطلاع على الصفحات ذات الصلة بدلًا من ذلك. المشرفون أو Maintainers قد يجدون [إرشادات المشرفين](./steward_guidelines.md) أكثر فائدة فيما يتعلق بمراجعة الـIssues والـPull Requests. + +هذا مستند طويل وشامل نسبيًا، لكننا سنحاول توضيح كل خطوة وكل نقطة بشكل واضح قدر الإمكان. يُرجى استخدام جدول المحتويات للوصول إلى الأقسام ذات الصلة بك. لا تتردد في تخطي الأقسام التي لا تهمك أو ليست متعلقة بالمساهمات التي تخطط لها. + +**إذا كنت مساهمًا جديدًا، قد ترغب في بدء القراءة من القسم الأول "كل شيء عن الـIssues". وإذا كنت تريد خطوات سريعة لإعداد بيئة التطوير، يمكنك الانتقال إلى قسم "البدء السريع للمطورين".** + + + + +# جدول المحتويات + +- [كل شيء عن الـIssues](#كل-شيء-عن-الـIssues) + - [ما هي الـIssues؟](#ما-هي-الـIssues؟) + - [قوالب الـIssues](#قوالب-الـIssues) + - [اكتشاف Bug](#اكتشاف-Bug) + - [تحسين ميزة موجودة](#تحسين-ميزة-موجودة) + - [طلب ميزة جديدة](#طلب-ميزة-جديدة) + - [نقاش](#نقاش) +- [العمل على كود الريبو الخاص بـ p5.js](#العمل-على-كود-الريبو-الخاص-بـ-p5js) + - [البدء السريع للمطورين](#البدء-السريع-للمطورين) + - [استخدام ميزة التعديل المباشر في Github](#استخدام-ميزة-التعديل-المباشر-في-Github) + - [عمل Fork للريبو الخاص بـ p5.js والعمل من الـFork الخاص بك](#عمل-Fork-للريبو-الخاص-بـ-p5js-والعمل-من-الـFork-الخاص-بك) + - [استخدام Github Desktop](#استخدام-Github-Desktop) + - [استخدام واجهة سطر أوامر git](#استخدام-واجهة-سطر-أوامر-git) + - [تفصيل مكونات الكود](#تفصيل-مكونات-الكود) + - [إعداد بيئة البناء (Build Setup)](#إعداد-بيئة-البناء-Build-Setup) + - [آلية العمل مع Git](#آلية-العمل-مع-Git) + - [كود المصدر](#كود-المصدر) + - [الاختبارات (Unit Tests)](#الاختبارات-Unit-Tests) + - [التوثيق المضمن](#التوثيق-المضمن) + - [إتاحة الوصول (Accessibility)](#إتاحة-الوصول-Accessibility) + - [معايير الكود](#معايير-الكود) + - [مبادئ تصميم البرمجيات](#مبادئ-تصميم-البرمجيات) +- [الـPull Requests](#الـPull-Requests) + - [إنشاء Pull Request](#إنشاء-Pull-Request) + - [معلومات الـPull Request](#معلومات-الـPull-Request) + - [العنوان](#العنوان) + - [إغلاق الـIssues المرتبطة (Resolves)](#إغلاق-الـIssues-المرتبطة-Resolves) + - [التغييرات](#التغييرات) + - [لقطات الشاشة للتغيير](#لقطات-الشاشة-للتغيير) + - [قائمة التحقق للـPR](#قائمة-التحقق-للـPR) + - [إعادة الدمج وحل التعارضات (Rebase and resolve conflicts)](#إعادة-الدمج-وحل-التعارضات-Rebase-and-resolve-conflicts) + - [النقاش والتعديل](#النقاش-والتعديل) + +--- + From 28942c79f348ab7ec807ed435f408d5ba98bd3dd Mon Sep 17 00:00:00 2001 From: islml <155185075+islml@users.noreply.github.com> Date: Sat, 1 Mar 2025 00:11:35 +0200 Subject: [PATCH 05/40] Update contributor_guidelines.md --- contributor_docs/ar/contributor_guidelines.md | 69 ++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/contributor_docs/ar/contributor_guidelines.md b/contributor_docs/ar/contributor_guidelines.md index e3216f18ca..186a71eb04 100644 --- a/contributor_docs/ar/contributor_guidelines.md +++ b/contributor_docs/ar/contributor_guidelines.md @@ -17,7 +17,7 @@ - [كل شيء عن الـIssues](#كل-شيء-عن-الـIssues) - [ما هي الـIssues؟](#ما-هي-الـIssues؟) - [قوالب الـIssues](#قوالب-الـIssues) - - [اكتشاف Bug](#اكتشاف-Bug) + - [اكتشفت Bug](#اكتشفت-Bug) - [تحسين ميزة موجودة](#تحسين-ميزة-موجودة) - [طلب ميزة جديدة](#طلب-ميزة-جديدة) - [نقاش](#نقاش) @@ -49,3 +49,70 @@ --- + +# كل شيء عن الـIssues + +معظم الأنشطة في ريبو p5.js على GitHub تحدث في الـIssues، وهي مكان رائع لبدء رحلتك في المساهمة. + + +## ما هي الـIssues؟ + +![لقطة شاشة مقصوصة من ريبو مكتبة p5.js على GitHub، تُظهر فقط الزاوية العلوية اليمنى. مربع أحمر مُضاف على الصورة يُحيط بعلامة تبويب الـIssues.](../images/issues-tab.png) + +الـIssue هي الاسم العامي لمنشور على GitHub يهدف إلى وصف، كما هو واضح من الاسم، مشكلة. يمكن أن تكون الـIssue تقريرًا عن bug، أو طلبًا لإضافة ميزة جديدة، أو نقاشًا، أو أي شيء يعمل كمنشور مرتبط بتطوير مكتبة p5.js. يمكن لأي شخص يمتلك حسابًا على GitHub إضافة تعليقات أسفل كل Issue، بما في ذلك البوتات! هذا هو المكان الذي يناقش فيه المساهمون المواضيع المتعلقة بتطوير المشروع داخل الريبو. + +على الرغم من أنه يمكن فتح Issue لأسباب متنوعة، إلا أننا عادةً ما نستخدم الـIssues فقط لمناقشة تطوير الكود المصدري الخاصة بـp5.js. أما المواضيع مثل تصحيح الأخطاء (debugging) في كودك الخاصة، أو دعوة متعاونين لمشروعك، أو أي مواضيع غير ذات صلة، فمن الأفضل مناقشتها إما في [المنتدى](https://discourse.processing.com) أو على منصات أخرى مثل [Discord](https://discord.gg/SHQ8dH25r9). + +لقد أنشأنا قوالب Issues سهلة الاستخدام لمساعدتك في تحديد ما إذا كان الموضوع الذي تريد طرحه مناسبًا كـIssue على GitHub أم أنه من الأفضل نشره في مكان آخر! + + + +## قوالب الـIssues + +تُسهِّل قوالب الـIssues في مكتبة p5.js على المشرفين (Stewards) والمسؤولين (Maintainers) فهم الـIssues ومراجعتها. كما أنها تجعل من الأسهل عليك تقديم الـIssue المناسبة والحصول على رد أسرع. + +![لقطة شاشة لمثال على شكل Issue على GitHub. عنوان الـIssue في الصورة هو "Warning being logged in Safari when using a filter shader in 2D mode #6597"](../images/github-issue.png) + +لتقديم Issue جديدة، ما عليك سوى التوجه إلى تبويب "الـIssues" في ريبو p5.js، ثم النقر على زر "New issue" الموجود على الجهة اليمنى. ستظهر لك مجموعة من الخيارات المختلفة، وكل خيار إما مرتبط بقالب Issue معين أو يُوجِّهك إلى المكان المناسب لطرح سؤالك. نوصي باختيار الخيار الأكثر صلة بمشكلتك لضمان حصول الـIssue الخاصة بك على الاهتمام المناسب في الوقت المناسب. + +![لقطة شاشة مقصوصة لصفحة الـIssues في مستودع GitHub مع تمييز زر "New issue" الأخضر داخل إطار أحمر.](../images/new-issue.png) + + +## ["اكتشفت Bug"](https://github.com/processing/p5.js/issues/new?assignees=\&labels=Bug\&projects=\&template=found-a-bug.yml) + +عندما تواجه سلوكًا غير صحيح محتمل في p5.js أو شيئًا لا يعمل كما هو موصوف في التوثيق، استخدم [هذا القالب](https://github.com/processing/p5.js/issues/new?assignees=\&labels=Bug\&projects=\&template=found-a-bug.yml). يرجى الانتباه أنه إذا كنت تحاول تصحيح شيفرتك وتعتقد أن المشكلة قد تكون بسبب الكود الخاص بك، فمن الأفضل أن تسأل أولًا في [منتدى Discourse](https://discourse.processing.org). + +هناك بعض الحقول التي تحتاج إلى تعبئتها في هذا القالب: + +1. **أكثر جزء مناسب من مكتبة p5.js؟** - يساعدنا هذا في تحديد القسم المسؤول عن المشكلة، مما يسمح بإضافة الوسوم المناسبة تلقائيًا إلى الـIssue. +2. **إصدار p5.js** - يمكنك العثور على رقم إصدار p5.js إما في وسم `