You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/ar/CONTRIBUTING.md

14 KiB

المساهمة في منهج علم البيانات للمبتدئين

شكرًا لاهتمامك بالمساهمة في منهج علم البيانات للمبتدئين! نحن نرحب بمساهمات المجتمع.

جدول المحتويات

مدونة السلوك

لقد تبنى هذا المشروع مدونة السلوك مفتوحة المصدر من مايكروسوفت.
للمزيد من المعلومات، راجع الأسئلة الشائعة حول مدونة السلوك
أو تواصل مع opencode@microsoft.com لأي أسئلة أو تعليقات إضافية.

كيف يمكنني المساهمة؟

الإبلاغ عن الأخطاء

قبل إنشاء تقارير الأخطاء، يرجى التحقق من المشكلات الموجودة لتجنب التكرار. عند إنشاء تقرير خطأ، قم بتضمين أكبر قدر ممكن من التفاصيل:

  • استخدم عنوانًا واضحًا ووصفيًا
  • وصف الخطوات الدقيقة لإعادة إنتاج المشكلة
  • قدم أمثلة محددة (مقتطفات من الكود، لقطات شاشة)
  • وصف السلوك الذي لاحظته وما كنت تتوقعه
  • قم بتضمين تفاصيل بيئتك (نظام التشغيل، إصدار Python، المتصفح)

اقتراح تحسينات

اقتراحات التحسينات مرحب بها! عند اقتراح تحسينات:

  • استخدم عنوانًا واضحًا ووصفيًا
  • قدم وصفًا مفصلًا للتحسين المقترح
  • اشرح لماذا سيكون هذا التحسين مفيدًا
  • اذكر أي ميزات مشابهة في مشاريع أخرى، إذا كان ذلك ممكنًا

المساهمة في التوثيق

تحسينات التوثيق دائمًا محل تقدير:

  • تصحيح الأخطاء الإملائية والنحوية
  • تحسين وضوح الشروحات
  • إضافة توثيق مفقود
  • تحديث المعلومات القديمة
  • إضافة أمثلة أو حالات استخدام

المساهمة بالكود

نرحب بمساهمات الكود بما في ذلك:

  • دروس أو تمارين جديدة
  • تصحيح الأخطاء
  • تحسينات على الدفاتر الحالية
  • مجموعات بيانات أو أمثلة جديدة
  • تحسينات لتطبيق الاختبارات

البدء

المتطلبات الأساسية

قبل المساهمة، تأكد من أن لديك:

  1. حساب GitHub
  2. Git مثبت على نظامك
  3. Python 3.7+ وJupyter مثبتين
  4. Node.js وnpm (للمساهمات في تطبيق الاختبارات)
  5. معرفة بهيكلية المنهج

راجع INSTALLATION.md للحصول على تعليمات الإعداد التفصيلية.

التفرع والاستنساخ

  1. قم بتفرع المستودع على GitHub

  2. استنسخ التفرع الخاص بك محليًا:

    git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git
    cd Data-Science-For-Beginners
    
  3. أضف المصدر الرئيسي:

    git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
    

إنشاء فرع

قم بإنشاء فرع جديد لعملك:

git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix

تسمية الفروع:

  • feature/ - ميزات أو دروس جديدة
  • fix/ - تصحيحات الأخطاء
  • docs/ - تغييرات التوثيق
  • refactor/ - إعادة هيكلة الكود

إرشادات المساهمة

لمحتوى الدروس

عند المساهمة بدروس أو تعديل الدروس الحالية:

  1. اتبع الهيكلية الحالية:

    • README.md مع محتوى الدرس
    • دفتر Jupyter مع التمارين
    • واجب (إذا كان ذلك ممكنًا)
    • رابط إلى الاختبارات المسبقة واللاحقة
  2. قم بتضمين هذه العناصر:

    • أهداف تعليمية واضحة
    • شروحات خطوة بخطوة
    • أمثلة كود مع تعليقات
    • تمارين للتدريب
    • روابط إلى موارد إضافية
  3. تأكد من إمكانية الوصول:

    • استخدم لغة واضحة وبسيطة
    • قدم نصوص بديلة للصور
    • أضف تعليقات على الكود
    • ضع في اعتبارك أنماط التعلم المختلفة

لدفاتر Jupyter

  1. قم بمسح جميع المخرجات قبل الالتزام:

    jupyter nbconvert --clear-output --inplace notebook.ipynb
    
  2. قم بتضمين خلايا Markdown مع الشروحات

  3. استخدم تنسيقًا متسقًا:

    # Import libraries at the top
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    # Use meaningful variable names
    # Add comments for complex operations
    # Follow PEP 8 style guidelines
    
  4. اختبر دفترك بالكامل قبل الإرسال

لكود Python

اتبع إرشادات PEP 8:

# Good practices
import pandas as pd

def calculate_mean(data):
    """Calculate the mean of a dataset.
    
    Args:
        data (list): List of numerical values
        
    Returns:
        float: Mean of the dataset
    """
    return sum(data) / len(data)

لمساهمات تطبيق الاختبارات

عند تعديل تطبيق الاختبارات:

  1. اختبر محليًا:

    cd quiz-app
    npm install
    npm run serve
    
  2. قم بتشغيل المدقق:

    npm run lint
    
  3. قم بالبناء بنجاح:

    npm run build
    
  4. اتبع دليل أسلوب Vue.js والأنماط الحالية

للترجمات

عند إضافة أو تحديث الترجمات:

  1. اتبع الهيكلية في مجلد translations/
  2. استخدم رمز اللغة كاسم المجلد (مثل fr للفرنسية)
  3. حافظ على نفس هيكل الملفات مثل النسخة الإنجليزية
  4. قم بتحديث روابط الاختبارات لتضمين معلمة اللغة: ?loc=fr
  5. اختبر جميع الروابط والتنسيقات

عملية طلب السحب

قبل الإرسال

  1. قم بتحديث فرعك بأحدث التغييرات:

    git fetch upstream
    git rebase upstream/main
    
  2. اختبر تغييراتك:

    • قم بتشغيل جميع الدفاتر المعدلة
    • اختبر تطبيق الاختبارات إذا تم تعديله
    • تحقق من عمل جميع الروابط
    • تحقق من الأخطاء الإملائية والنحوية
  3. قم بالالتزام بتغييراتك:

    git add .
    git commit -m "Brief description of changes"
    

    اكتب رسائل التزام واضحة:

    • استخدم الزمن الحاضر ("إضافة ميزة" وليس "تمت إضافة ميزة")
    • استخدم صيغة الأمر ("نقل المؤشر إلى..." وليس "ينقل المؤشر إلى...")
    • اجعل السطر الأول لا يتجاوز 72 حرفًا
    • أشر إلى المشكلات وطلبات السحب عند الاقتضاء
  4. ادفع إلى التفرع الخاص بك:

    git push origin feature/your-feature-name
    

إنشاء طلب السحب

  1. انتقل إلى المستودع
  2. انقر على "Pull requests" → "New pull request"
  3. انقر على "compare across forks"
  4. اختر التفرع والفرع الخاص بك
  5. انقر على "Create pull request"

تنسيق عنوان طلب السحب

استخدم عناوين واضحة ووصفيّة وفقًا لهذا التنسيق:

[Component] Brief description

أمثلة:

  • [Lesson 7] Fix Python notebook import error
  • [Quiz App] Add German translation
  • [Docs] Update README with new prerequisites
  • [Fix] Correct data path in visualization lesson

وصف طلب السحب

قم بتضمين في وصف طلب السحب:

  • ماذا: ما التغييرات التي أجريتها؟
  • لماذا: لماذا هذه التغييرات ضرورية؟
  • كيف: كيف نفذت التغييرات؟
  • الاختبار: كيف اختبرت التغييرات؟
  • لقطات الشاشة: قم بتضمين لقطات الشاشة للتغييرات المرئية
  • المشكلات ذات الصلة: رابط إلى المشكلات ذات الصلة (مثل "Fixes #123")

عملية المراجعة

  1. الفحوصات التلقائية ستعمل على طلب السحب الخاص بك
  2. المشرفون سيقومون بمراجعة مساهمتك
  3. قم بمعالجة الملاحظات عن طريق إجراء التزامات إضافية
  4. بمجرد الموافقة، سيقوم المشرف بدمج طلب السحب الخاص بك

بعد دمج طلب السحب الخاص بك

  1. احذف فرعك:

    git branch -d feature/your-feature-name
    git push origin --delete feature/your-feature-name
    
  2. قم بتحديث التفرع الخاص بك:

    git checkout main
    git pull upstream main
    git push origin main
    

إرشادات التنسيق

Markdown

  • استخدم مستويات عناوين متسقة

  • قم بتضمين أسطر فارغة بين الأقسام

  • استخدم كتل الكود مع محددات اللغة:

    ```python
    import pandas as pd
    ```
    
  • أضف نصوص بديلة للصور: ![Alt text](../../translated_images/ar/image.4ee84a82b5e4c9e6651b13fd27dcf615e427ec584929f2cef7167aa99151a77a.png)

  • حافظ على طول الأسطر معقولًا (حوالي 80-100 حرف)

Python

  • اتبع دليل أسلوب PEP 8
  • استخدم أسماء متغيرات ذات معنى
  • أضف تعليقات توضيحية إلى الوظائف
  • قم بتضمين تلميحات النوع حيثما كان ذلك مناسبًا:
    def process_data(df: pd.DataFrame) -> pd.DataFrame:
        """Process the input dataframe."""
        return df
    

JavaScript/Vue.js

  • اتبع دليل أسلوب Vue.js 2
  • استخدم تكوين ESLint المقدم
  • اكتب مكونات قابلة لإعادة الاستخدام
  • أضف تعليقات للمنطق المعقد

تنظيم الملفات

  • حافظ على الملفات ذات الصلة معًا
  • استخدم أسماء ملفات وصفية
  • اتبع هيكلية الدليل الحالية
  • لا تقم بالالتزام بالملفات غير الضرورية (.DS_Store، .pyc، node_modules، إلخ)

اتفاقية ترخيص المساهم

هذا المشروع يرحب بالمساهمات والاقتراحات. تتطلب معظم المساهمات منك
الموافقة على اتفاقية ترخيص المساهم (CLA) التي تعلن أنك لديك الحق في،
وتقوم فعليًا، بمنحنا الحقوق لاستخدام مساهمتك. للحصول على التفاصيل، قم بزيارة
https://cla.microsoft.com.

عند تقديم طلب سحب، سيقوم CLA-bot تلقائيًا بتحديد ما إذا كنت بحاجة
لتقديم CLA وتزيين طلب السحب بشكل مناسب (مثل وضع علامة أو تعليق). ببساطة اتبع
التعليمات المقدمة من الروبوت. ستحتاج إلى القيام بذلك مرة واحدة فقط عبر جميع المستودعات التي تستخدم CLA الخاص بنا.

أسئلة؟

شكرًا لك!

مساهماتك تجعل هذا المنهج أفضل للجميع. شكرًا لك على تخصيص الوقت للمساهمة!


إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.