diff --git a/contributor_docs/ar/access.md b/contributor_docs/ar/access.md new file mode 100644 index 0000000000..03921f3a0a --- /dev/null +++ b/contributor_docs/ar/access.md @@ -0,0 +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]: يشير مفهوم "الهيمنة اللغوية" أو "الإمبريالية اللغوية" إلى السيطرة المستمرة أو أولوية أو فرض لغات معينة مثل الإنجليزية على حساب اللغات الأصلية، وذلك نتيجة للتوسع الإمبريالي والعولمة. diff --git a/contributor_docs/ar/contributor_guidelines.md b/contributor_docs/ar/contributor_guidelines.md new file mode 100644 index 0000000000..2fecb467bb --- /dev/null +++ b/contributor_docs/ar/contributor_guidelines.md @@ -0,0 +1,616 @@ + +# إرشادات المساهمة + +مرحبًا بك في إرشادات المساهمة! هذا المستند موجه للمساهمين الجدد الذين يرغبون في المساهمة في كود 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) + - [المتطلبات الأساسية](https://github.com/islml/p5.js/blob/Arabic-translations-for-contributor_docs/contributor_docs/ar/contributor_guidelines.md#المتطلبات-الأساسية) + - [المقدمة](https://github.com/islml/p5.js/blob/Arabic-translations-for-contributor_docs/contributor_docs/ar/contributor_guidelines.md#المقدمة) + - [البدء السريع للمطورين](#البدء-السريع-للمطورين) + - [استخدام ميزة التعديل المباشر في Github](#استخدام-ميزة-التعديل-المباشر-في-Github) + - [عمل Fork للريبو الأساسية](عمل-fork-للريبو-الأساسية) + - [استخدام Github Desktop](#استخدام-Github-Desktop) + - [استخدام واجهة أوامر git](#استخدام-واجهة-أوامر-git) + - [نظرة عامة على بنية المشروع](#نظرة-عامة-على-بنية-المشروع) + - [إعداد بيئة العمل Build Setup](#إعداد-بيئة-العمل-Build-Setup) + - [سير العمل مع Git](#سير-العمل-مع-Git) + - [كود المصدر](#كود-المصدر) + - [الـUnit testsg](#الـUnit-tests) + - [التوثيق المضمن Inline Documentation](#التوثيق-المضمن-Inline-Documentation) + - [إتاحة الوصول Accessibility](#إتاحة-الوصول-Accessibility) + - [معايير كتابة الكود](#معايير-كتابة-الكود) + - [مبادئ تصميم البرمجيات](#مبادئ-تصميم-البرمجيات) +- [الـPull Requests](#الـPull-Requests) + - [إنشاء الـPull Request](#إنشاء-الـPull-Request) + - [معلومات الـPull Request](#معلومات-الـPull-Request) + - [العنوان Title](#العنوان-Title) + - [خانة Resolves](#خانة-Resolves) + - [التغييرات](#التغييرات) + - [لقطات الشاشة للتغيير](#لقطات-الشاشة-للتغيير) + - [قائمة التحقق للـPR](#قائمة-التحقق-للـPR) + - [إعادة الترتيب وحل التعارضات Rebase and resolve conflicts](#إعادة-الترتيب-وحل-التعارضات-Rebase-and-resolve-conflicts) + - [النقاش والتعديل](#النقاش-والتعديل) + +--- + + +# كل شيء عن الـ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 إما في وسم `