Skip to main content

مكتبة قوية لتحويل لغة Python كاملة إلى العربية مع دعم اللهجات المختلفة

Project description

pyarabify

مكتبة لتحويل Python كاملة للعربية

Version Python License

المطور: MERO


المحتويات

  1. نظرة عامة
  2. المميزات
  3. ما الجديد في 2.2.0
  4. التثبيت
  5. البدء السريع
  6. الاستخدام التفصيلي
  7. اللهجات المدعومة
  8. أوامر سطر الأوامر
  9. البحث في GitHub
  10. المساعد الذكي
  11. تحويل المعادلات
  12. الرسوميات
  13. مولد المشاريع
  14. دعم المكتبات الشهيرة
  15. الأمثلة والدروس
  16. API المرجعي
  17. المساهمة

نظرة عامة

pyarabify هي مكتبة Python وقوية تتيح لك كتابة وتنفيذ أكواد Python بالكامل باللغة العربية. تدعم المكتبة جميع إصدارات Python من 2.7 وحتى أحدث إصدار، وتوفر ترجمة لجميع الكلمات المحجوزة، الدوال المدمجة، أنواع الأخطاء، والوحدات الشائعة.

الإصدار 2.2.0 يمثل قفزة نوعية في المكتبة، حيث يضيف:

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

لماذا pyarabify؟

  • تعليم البرمجة بالعربية: مثالية للمبتدئين الذين يفضلون التعلم بلغتهم الأم
  • قاموس ضخم: أكثر من 12,000+ كلمة مترجمة تغطي كامل لغة Python
  • ست لهجات عربية: فصحى، مختصر، مصري، خليجي، فلسطيني، عراقي
  • **مساعد يجيب على أسئلتك البرمجية بالعربية
  • بحث في GitHub: ابحث عن المستودعات والمشاريع مباشرة
  • مولد مشاريع: ابدأ مشروعك بكود جاهز بالعربية
  • قابلة للتوسع: أضف كلماتك المخصصة بسهولة
  • أخطاء بالعربية: رسائل خطأ مفهومة ومترجمة بالكامل
  • ترجمة عكسية: حول أكوادك العربية لإنجليزية والعكس
  • متوافقة 100%: تعمل مع جميع مكتبات Python القياسية
  • دعم Git: 57 دالة لإدارة المستودعات بالعربية
  • دعم الويب: افتح الروابط، احصل على المحتوى، حمل الملفات

المميزات

1. ترجمة كاملة للكلمات المحجوزة

import  استرداد / استورد / جيب
from  من
def  دالة / وظيفة / فنكشن
class صنف / فئة
if  اذا / لو
for  لكل / ل
while  طالما / بينما
try  حاول / جرب
except  ماعدا / إلا
return  ارجع / رجع
True  صحيح / صح
False  خطأ / غلط
None  لاشيء / فارغ / ماكو

2. دعم جميع الدوال المدمجة

print()  اطبع() / قول()
input()  ادخال() / ادخل()
len()  طول()
range()  نطاق()
open()  افتح()
sum()  مجموع()
max()  اكبر()
min()  اصغر()
type()  نوع()
str()  نص()
int()  عدد_صحيح()
float()  عدد_عشري()
list()  قائمة()
dict()  قاموس()

3. ترجمة الأخطاء والاستثناءات

ValueError  خطأ_قيمة
TypeError  خطأ_نوع
SyntaxError  خطأ_صيغة
NameError  خطأ_اسم
IndexError  خطأ_فهرس
KeyError  خطأ_مفتاح
FileNotFoundError  خطأ_ملف_غير_موجود
ZeroDivisionError  خطأ_قسمة_على_صفر

4. ست لهجات عربية مختلفة

  1. الفصحى (formal): اللغة العربية الفصيحة
  2. مختصر (short): كلمات مختصرة للكتابة السريعة
  3. مصري (egyptian): اللهجة المصرية
  4. خليجي (gulf): اللهجة الخليجية
  5. فلسطيني (palestinian): اللهجة الفلسطينية
  6. عراقي (iraqi): اللهجة العراقية

ما الجديد في 2.2.0

المميزات الجديدة

1. لهجتان عربيتان جديدتان

تمت إضافة دعم للهجتين الفلسطينية والعراقية:

اللهجة الفلسطينية:
جيب math
فنكشن حساب(رقم):
    لو رقم > 0:
        اطبع("موجب")
    والا:
        اطبع("سالب")

اللهجة العراقية:
جيب random
فنكشن لعبة():
    اذا العدد == ماكو:
        اطبع("ماكو عدد")

2. البحث المتقدم في GitHub

ابحث عن المستودعات، المستخدمين، والأكواد مباشرة من المكتبة:

from pyarabify import ghb

نتائج = ghb.بحث_في_جيتهب("python machine learning", "repositories", 10)
ghb.عرض_نتائج_البحث(نتائج)

تفاصيل = ghb.تفاصيل_المستودع("username/repo")

من سطر الأوامر:

pyarabify بحث "python machine learning"

3. المساعد الذكي

احصل على إجابات لأسئلتك البرمجية:

from pyarabify import hlp

جواب = hlp.اسأل("ما فائدة دالة range؟")
اطبع(جواب)

شرح = hlp.شرح_كود('''
لكل i في نطاق(5):
    اطبع(i)
''')
اطبع(شرح)

نصائح = hlp.اقتراحات(كودك_هنا)

من سطر الأوامر:

pyarabify اسأل "ما فائدة دالة range"

4. تحويل المعادلات العربية

حول المعادلات المكتوبة بالعربية إلى أكواد قابلة للتنفيذ:

from pyarabify import mth

معادلة_عربية = "خمسة زائد ثلاثة ضرب اثنان"
معادلة_برمجية = mth.حول_معادلة(معادلة_عربية)
نتيجة = mth.احسب(معادلة_عربية)

اطبع(نتيجة)  # 11

الأرقام المدعومة:

صفر, واحد, اثنان, ثلاثة, اربعة, خمسة, ستة, سبعة, ثمانية, تسعة
عشرة, عشرون, ثلاثون, مئة, الف

العمليات المدعومة:

زائد (+), ناقص (-), ضرب (*), قسمة (/)
اس (**), باقي (%), جمع, طرح, مضروب

5. دعم الرسوميات (Turtle Graphics)

ارسم أشكالاً هندسية باستخدام أوامر:

from pyarabify import drw

سلحفاة = drw.انشئ_سلحفاة()

سلحفاة.ارسم_دائرة(100)
سلحفاة.ارسم_مربع(150)
سلحفاة.ارسم_مثلث(200)
سلحفاة.ارسم_نجمة(5, 150)
سلحفاة.ارسم_مستطيل(200, 100)

سلحفاة.لون_القلم("أحمر")
سلحفاة.سمك_القلم(3)
سلحفاة.سرعة(5)

سلحفاة.انتظر()

6. مولد المشاريع الجاهزة

ابدأ مشروعك بكود جاهز بالكامل بالعربية:

from pyarabify import prj

prj.قائمة_المشاريع()

prj.انشئ_مشروع("آلة_حاسبة")
prj.انشئ_مشروع("قائمة_مهام")
prj.انشئ_مشروع("لعبة_تخمين")

من سطر الأوامر:

pyarabify انشئ_مشروع آلة_حاسبة
cd آلة_حاسبة
pyarabify main.py

المشاريع الجاهزة:

  • آلة_حاسبة: آلة حاسبة كاملة بجميع العمليات
  • قائمة_مهام: نظام إدارة مهام تفاعلي
  • لعبة_تخمين: لعبة تخمين الأرقام

7. تصحيح إملائي تلقائي

يصحح الأخطاء الإملائية تلقائياً:

from pyarabify import spl

كود_خاطئ = "اطبغ('مرحباً')"  # خطأ إملائي
كود_صحيح = spl.تصحيح(كود_خاطئ)
اطبع(كود_صحيح)  # اطبع('مرحباً')

8. عرض الأخطاء بالعربية (edat)

نظام جديد لعرض رسائل الأخطاء بالعربية مع تحديد مكان الخطأ:

from pyarabify import edat

edat()

اسم_غير_موجود

الناتج:

============================================================
خطأ: اسم غير معرف
============================================================
الملف: "test.py", السطر: 4
  in <module>

التفاصيل: name 'اسم_غير_موجود' is not defined
============================================================

الأخطاء المدعومة:

  • NameError → خطأ: اسم غير معرف
  • SyntaxError → خطأ في بناء الجملة
  • TypeError → خطأ في النوع
  • ValueError → خطأ في القيمة
  • ZeroDivisionError → خطأ: قسمة على صفر
  • FileNotFoundError → خطأ: ملف غير موجود

9. دعم للمكتبات الشهيرة

ترجمة كاملة لأهم مكتبات Python:

numpy:
- array  مصفوفة
- zeros  اصفار
- ones  احاد
- sum  مجموع
- mean  متوسط

pandas:
- DataFrame  جدول_بيانات
- read_csv  اقرأ_csv
- groupby  جمع_حسب

matplotlib.pyplot:
- plot  ارسم
- scatter  نثر
- bar  اعمدة
- xlabel  عنوان_س
- ylabel  عنوان_ص

requests:
- get  احصل
- post  ارسل

datetime:
- datetime  تاريخ_وقت
- now  الان
- today  اليوم

math:
- sqrt  جذر
- sin  جيب
- cos  جيب_تمام
- pi  باي

التثبيت

من PyPI

pip install pyarabify

من المصدر

git clone https://github.com/6x-u/pyarabify.git
cd pyarabify
pip install -e .

التحقق من التثبيت

pyarabify --version
pyarabify اختبر

البدء

1. أول برنامج لك بالعربية

from pyarabify import execute

code = '''
اطبع("hi brooo")
'''

execute(code)

2. استخدام المتغيرات والعمليات

from pyarabify import execute

code = '''
العدد_الأول = 10
العدد_الثاني = 20
المجموع = العدد_الأول + العدد_الثاني
اطبع("المجموع =", المجموع)
'''

execute(code)

3. تنفيذ ملف

أنشئ ملف test.py:

اطبع("مرحباً من الملف!")

دالة جمع(أ, ب):
    ارجع أ + ب

النتيجة = جمع(5, 3)
اطبع("5 + 3 =", النتيجة)

نفذ الملف:

pyarabify test.py

الاستخدام

1. الدوال

from pyarabify import execute

code = '''
دالة حساب_المساحة(الطول, العرض):
    المساحة = الطول * العرض
    ارجع المساحة

دالة طباعة_معلومات(الاسم, العمر):
    اطبع("الاسم:", الاسم)
    اطبع("العمر:", العمر)

مساحة_المستطيل = حساب_المساحة(10, 5)
اطبع("المساحة =", مساحة_المستطيل)

طباعة_معلومات("أحمد", 25)
'''

execute(code)

2. الأصناف (Classes)

from pyarabify import execute

code = '''
صنف طالب:
    دالة __init__(الذات, الاسم, الدرجة):
        الذات.الاسم = الاسم
        الذات.الدرجة = الدرجة
    
    دالة عرض_المعلومات(الذات):
        اطبع("الطالب:", الذات.الاسم)
        اطبع("الدرجة:", الذات.الدرجة)
    
    دالة نجح(الذات):
        اذا الذات.الدرجة >= 50:
            ارجع صحيح
        والا:
            ارجع خطأ

طالب1 = طالب("محمد", 85)
طالب1.عرض_المعلومات()

اذا طالب1.نجح():
    اطبع("ناجح!")
والا:
    اطبع("راسب")
'''

execute(code)

3. الحلقات

from pyarabify import execute

code = '''
اطبع("حلقة for:")
لكل رقم في نطاق(5):
    اطبع("الرقم:", رقم)

اطبع("\nحلقة while:")
عداد = 0
بينما عداد < 5:
    اطبع("العداد:", عداد)
    عداد = عداد + 1
'''

execute(code)

4. معالجة الأخطاء

from pyarabify import execute

code = '''
حاول:
    النتيجة = 10 / 0
ماعدا خطأ_قسمة_على_صفر:
    اطبع("خطأ: لا يمكن القسمة على صفر!")

حاول:
    القائمة = [1, 2, 3]
    اطبع(القائمة[10])
ماعدا خطأ_فهرس:
    اطبع("خطأ: الفهرس خارج النطاق")
'''

execute(code)

5. استخدام المكتبات

from pyarabify import execute

code = '''
استرداد رياضيات كـ ر
استرداد عشوائي كـ ع

دالة حساب_الدائرة(نصف_القطر):
    المساحة = ر.pi * ر.pow(نصف_القطر, 2)
    المحيط = 2 * ر.pi * نصف_القطر
    ارجع المساحة, المحيط

مساحة, محيط = حساب_الدائرة(5)
اطبع("مساحة الدائرة:", مساحة)
اطبع("محيط الدائرة:", محيط)

رقم_عشوائي = ع.randint(1, 100)
اطبع("رقم عشوائي:", رقم_عشوائي)
'''

execute(code)

اللهجات

1. الفصحى (formal)

from pyarabify import execute

code = '''
دالة اهلا():
    اطبع("مرحباً بالعربية الفصحى")

اهلا()
'''

execute(code, dialect='formal')

2. المختصر (short)

from pyarabify import execute

code = '''
دل اهلا():
    قول("مرحباً بالاختصارات")

اهلا()
'''

execute(code, dialect='short')

3. المصري (egyptian)

from pyarabify import execute

code = '''
وظيفة اهلا():
    اطبع("أهلاً باللهجة المصرية")

اهلا()
'''

execute(code, dialect='egyptian')

4. الخليجي (gulf)

from pyarabify import execute

code = '''
دالة اهلا():
    اطبع("هلا باللهجة الخليجية")

اهلا()
'''

execute(code, dialect='gulf')

5. الفلسطيني (palestinian)

from pyarabify import execute

code = '''
فنكشن اهلا():
    لو صح:
        اطبع("أهلين باللهجة الفلسطينية")
    والا:
        اطبع("مش صح")

اهلا()
'''

execute(code, dialect='palestinian')

6. العراقي (iraqi)

from pyarabify import execute

code = '''
فنكشن اهلا():
    القيمة = ماكو
    اذا القيمة == ماكو:
        اطبع("مرحبا باللهجة العراقية")
    والا:
        اطبع("ماكو مشكلة")

اهلا()
'''

execute(code, dialect='iraqi')

أوامر سطر الأوامر

1. تنفيذ ملف

pyarabify program.py
pyarabify program.py --dialect palestinian
pyarabify program.py --show-english

2. الترجمة

pyarabify ترجم hello world
pyarabify ترجم "def add(a, b): return a + b"

3. عرض الأمثلة

pyarabify مثال الحلقات
pyarabify مثال الدوال
pyarabify مثال الشروط
pyarabify مثال القوائم
pyarabify مثال الأصناف

4. الاختبار

pyarabify اختبر

5. البحث في GitHub

pyarabify بحث "python machine learning"
pyarabify بحث numpy
pyarabify بحث django

6. إنشاء مشروع

pyarabify انشئ_مشروع آلة_حاسبة
pyarabify انشئ_مشروع قائمة_مهام
pyarabify انشئ_مشروع لعبة_تخمين

7. السؤال

pyarabify اسأل "ما فائدة دالة range"
pyarabify اسأل "كيف استخدم الحلقات"

8. الوضع (REPL)

pyarabify
pyarabify --dialect palestinian

مثال:

>>> اطبع("مرحباً")
مرحباً
>>> س = 10
>>> ص = 20
>>> اطبع(س + ص)
30
>>> خروج()

البحث في GitHub

ابحث عن المستودعات والمشاريع مباشرة:

من Python

from pyarabify import ghb

اطبع("البحث عن مستودعات Python:")
نتائج = ghb.بحث_مستودعات("python machine learning", 5)
ghb.عرض_نتائج_البحث(نتائج, "repositories")

اطبع("\nالبحث عن مستخدمين:")
مستخدمين = ghb.بحث_مستخدمين("python developer", 3)
ghb.عرض_نتائج_البحث(مستخدمين, "users")

اطبع("\nالبحث في الكود:")
كود = ghb.بحث_كود("def main", 5)
ghb.عرض_نتائج_البحث(كود, "code")

اطبع("\nتفاصيل مستودع:")
تفاصيل = ghb.تفاصيل_المستودع("torvalds/linux")

من سطر الأوامر

pyarabify بحث "python"
pyarabify بحث "machine learning"
pyarabify بحث "django rest framework"

المساعد

احصل على إجابات فورية وشروحات:

من Python

from pyarabify import hlp

جواب = hlp.اسأل("ما فائدة دالة range؟")
اطبع(جواب)

جواب = hlp.اسأل("كيف استخدم الحلقات؟")
اطبع(جواب)

جواب = hlp.اسأل("ما الفرق بين list و tuple؟")
اطبع(جواب)

كود = '''
لكل i في نطاق(5):
    اطبع(i)
'''

شرح = hlp.شرح_كود(كود)
اطبع("شرح الكود:")
اطبع(شرح)

اقتراحات = hlp.اقتراحات(كود)
اطبع("اقتراحات التحسين:")
اطبع(اقتراحات)

من سطر الأوامر

pyarabify اسأل "ما فائدة range"
pyarabify اسأل "كيف استخدم for"
pyarabify اسأل "ما هو lambda"

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

حول المعادلات العربية إلى أكواد:

from pyarabify import mth

معادلة1 = "خمسة زائد ثلاثة"
نتيجة1 = mth.احسب(معادلة1)
اطبع(معادلة1, "=", نتيجة1)

معادلة2 = "عشرة ضرب اثنان"
نتيجة2 = mth.احسب(معادلة2)
اطبع(معادلة2, "=", نتيجة2)

معادلة3 = "مائة قسمة خمسة"
نتيجة3 = mth.احسب(معادلة3)
اطبع(معادلة3, "=", نتيجة3)

معادلة4 = "اثنان اس عشرة"
نتيجة4 = mth.احسب(معادلة4)
اطبع(معادلة4, "=", نتيجة4)

معادلة_مركبة = "خمسة زائد ثلاثة ضرب اثنان"
نتيجة_مركبة = mth.احسب(معادلة_مركبة)
اطبع(معادلة_مركبة, "=", نتيجة_مركبة)

رقم = mth.حول_نص_لرقم("خمسة")
اطبع("خمسة =", رقم)

رقم2 = mth.حول_نص_لرقم("عشرون")
اطبع("عشرون =", رقم2)

الرسوميات

ارسم أشكالاً مذهلة باستخدام Turtle:

from pyarabify import drw

سلحفاة = drw.انشئ_سلحفاة()

سلحفاة.لون_القلم("أزرق")
سلحفاة.سمك_القلم(3)
سلحفاة.سرعة(5)

اطبع("رسم دائرة...")
سلحفاة.ارسم_دائرة(100)

سلحفاة.ارفع_القلم()
سلحفاة.اذهب_الى(200, 0)
سلحفاة.اخفض_القلم()

اطبع("رسم مربع...")
سلحفاة.لون_القلم("أحمر")
سلحفاة.ارسم_مربع(150)

سلحفاة.ارفع_القلم()
سلحفاة.اذهب_الى(-200, 0)
سلحفاة.اخفض_القلم()

اطبع("رسم نجمة...")
سلحفاة.لون_القلم("أخضر")
سلحفاة.ارسم_نجمة(5, 150)

اطبع("رسم مثلث...")
سلحفاة.ارفع_القلم()
سلحفاة.اذهب_الى(0, -200)
سلحفاة.اخفض_القلم()
سلحفاة.لون_القلم("برتقالي")
سلحفاة.ارسم_مثلث(200)

سلحفاة.انتظر()

رسم بالتعبئة:

from pyarabify import drw

س = drw.انشئ_سلحفاة()

س.لون_القلم("أسود")
س.لون_التعبئة("أصفر")
س.سمك_القلم(2)

س.ابدأ_التعبئة()
س.ارسم_دائرة(100)
س.انهي_التعبئة()

س.انتظر()

مولد المشاريع

ابدأ مشروعك الآن بكود جاهز:

من Python

from pyarabify import prj

اطبع("المشاريع المتاحة:")
prj.قائمة_المشاريع()

اطبع("\nإنشاء مشروع آلة حاسبة:")
prj.انشئ_مشروع("آلة_حاسبة")

اطبع("\nإنشاء مشروع قائمة المهام:")
prj.انشئ_مشروع("قائمة_مهام", "./مشاريعي")

اطبع("\nإنشاء لعبة تخمين:")
prj.انشئ_مشروع("لعبة_تخمين")

من سطر الأوامر

pyarabify انشئ_مشروع
pyarabify انشئ_مشروع آلة_حاسبة
pyarabify انشئ_مشروع قائمة_مهام
pyarabify انشئ_مشروع لعبة_تخمين

المشاريع الجاهزة

1. آلة_حاسبة

آلة حاسبة كاملة بجميع العمليات الحسابية (جمع، طرح، ضرب، قسمة)

2. قائمة_مهام

نظام إدارة مهام تفاعلي مع إضافة وحذف وعرض المهام

3. لعبة_تخمين

لعبة تخمين الأرقام مع نظام محاولات ونتائج


دعم المكتبات الشهيرة

جميع المكتبات الشهيرة مدعومة بترجمات كاملة:

NumPy

استرداد numpy كـ np

مصفوفة = np.مصفوفة([1, 2, 3, 4, 5])
اصفار = np.اصفار((3, 3))
احاد = np.احاد((2, 2))

المجموع = np.مجموع(مصفوفة)
المتوسط = np.متوسط(مصفوفة)
الاكبر = np.اكبر(مصفوفة)

Pandas

استرداد pandas كـ pd

بيانات = {
    'الاسم': ['أحمد', 'محمد', 'فاطمة'],
    'العمر': [25, 30, 28],
    'الراتب': [5000, 6000, 5500]
}

جدول = pd.جدول_بيانات(بيانات)
اطبع(جدول.راس())
اطبع(جدول.وصف())

Matplotlib

استرداد matplotlib.pyplot كـ plt

س = [1, 2, 3, 4, 5]
ص = [2, 4, 6, 8, 10]

plt.ارسم(س, ص)
plt.عنوان_س('المحور السيني')
plt.عنوان_ص('المحور الصادي')
plt.عنوان('رسم بياني')
plt.اعرض()

Requests

استرداد requests كـ req

استجابة = req.احصل('https://api.github.com')
اطبع(استجابة.json())

بيانات = {'key': 'value'}
استجابة = req.ارسل('https://api.example.com', json=بيانات)

DateTime

استرداد datetime

الان = datetime.تاريخ_وقت.الان()
اطبع("التاريخ والوقت الحالي:", الان)

اليوم = datetime.تاريخ.اليوم()
اطبع("التاريخ:", اليوم)

Math

استرداد math كـ ر

جذر_25 = ر.جذر(25)
جيب_90 = ر.جيب(ر.باي / 2)
اس_2_10 = ر.اس(2, 10)

اطبع("جذر 25 =", جذر_25)
اطبع("جيب 90 =", جيب_90)
اطبع("2 أس 10 =", اس_2_10)

الأمثلة والدروس

تشغيل الأمثلة

من سطر الأوامر:

python -m pyarabify.examples.المتغيرات
python -m pyarabify.examples.الحلقات
python -m pyarabify.examples.الدوال
python -m pyarabify.examples.الشروط
python -m pyarabify.examples.القوائم
python -m pyarabify.examples.الأصناف

الأمثلة المتوفرة

  1. المتغيرات: تعلم كيفية إنشاء واستخدام المتغيرات
  2. الحلقات: أمثلة على حلقات for و while
  3. الدوال: كيفية تعريف واستخدام الدوال
  4. الشروط: الجمل الشرطية (if, elif, else)
  5. القوائم: التعامل مع القوائم والعمليات عليها
  6. الأصناف: البرمجة الكائنية (OOP)

API المرجعي

execute

تنفيذ كود Python مكتوب بالعربية

from pyarabify import execute

result = execute(
    code='اطبع("مرحباً")',
    dialect='formal',
    show_english=False,
    globals_dict=None,
    locals_dict=None
)

المعاملات:

  • code (str): الكود العربي
  • dialect (str): اللهجة (formal/short/egyptian/gulf/palestinian/iraqi)
  • show_english (bool): عرض الكود المترجم
  • globals_dict (dict): المتغيرات العامة
  • locals_dict (dict): المتغيرات المحلية

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

  • dict: {'status': 'success/error', 'english_code': '...'}

execute_file

تنفيذ ملف Python مكتوب بالعربية

from pyarabify import execute_file

execute_file('program.py', dialect='formal', show_english=False)

to_english

تحويل كود عربي إلى إنجليزي

from pyarabify import to_english

arabic = 'اطبع("مرحباً")'
english = to_english(arabic, dialect='formal')
اطبع(english)

to_arabic

تحويل كود إنجليزي إلى عربي

from pyarabify import to_arabic

english = 'print("Hello")'
arabic = to_arabic(english, dialect='formal')
اطبع(arabic)

ArabicParser

فئة المحلل اللغوي

from pyarabify import ArabicParser

parser = ArabicParser(dialect='formal')
parser.add_custom_word('اعرض', 'display')
code = parser.to_english('اعرض("مرحباً")')

الدوال:

  • parse(code): تحليل وترجمة
  • add_custom_word(arabic, english, category): إضافة كلمة
  • set_dialect(dialect): تغيير اللهجة
  • get_available_dialects(): الحصول على اللهجات

git

دوال Git

from pyarabify import git

git.احصل_على_الحالة()
git.اضف_للتتبع(".")
git.احفظ_التغييرات("رسالة")
git.ادفع_إلى_المستودع()
git.اسحب_التحديثات()
git.استنسخ_مستودع("https://github.com/user/repo.git")

web

دوال الويب

from pyarabify import web

web.افتح_رابط("https://github.com")
محتوى = web.الحصول("https://api.github.com")
web.تحميل("https://example.com/file.pdf", "ملف.pdf")

ghb

البحث في GitHub

from pyarabify import ghb

نتائج = ghb.بحث_في_جيتهب("python", "repositories", 10)
ghb.عرض_نتائج_البحث(نتائج)
تفاصيل = ghb.تفاصيل_المستودع("username/repo")

hlp

المساعد

from pyarabify import hlp

جواب = hlp.اسأل("سؤالك هنا")
شرح = hlp.شرح_كود("كودك هنا")
اقتراحات = hlp.اقتراحات("كودك هنا")

mth

تحويل المعادلات العربية

from pyarabify import mth

نتيجة = mth.احسب("خمسة زائد ثلاثة")
معادلة = mth.حول_معادلة("عشرة ضرب اثنان")
رقم = mth.حول_نص_لرقم("خمسون")

الدوال المتاحة:

  • احسب(معادلة): حساب معادلة عربية وإرجاع النتيجة
  • حول_معادلة(معادلة): تحويل معادلة عربية لكود Python
  • حول_نص_لرقم(نص): تحويل نص عربي لرقم

drw

الرسوميات باستخدام Turtle

from pyarabify import drw

سلحفاة = drw.انشئ_سلحفاة()
سلحفاة.ارسم_دائرة(100)
سلحفاة.ارسم_مربع(150)
سلحفاة.ارسم_نجمة(5, 100)
سلحفاة.انتظر()

الدوال المتاحة:

  • انشئ_سلحفاة(): إنشاء كائن رسم
  • ارسم_دائرة(نصف_القطر): رسم دائرة
  • ارسم_مربع(الطول): رسم مربع
  • ارسم_مثلث(الطول): رسم مثلث
  • ارسم_نجمة(عدد_الرؤوس, الحجم): رسم نجمة
  • ارسم_مستطيل(الطول, العرض): رسم مستطيل
  • لون_القلم(اللون): تغيير لون القلم
  • سمك_القلم(السمك): تغيير سمك القلم
  • سرعة(السرعة): تغيير سرعة الرسم

prj

مولد المشاريع

from pyarabify import prj

prj.قائمة_المشاريع()
prj.انشئ_مشروع("آلة_حاسبة")
prj.انشئ_مشروع("قائمة_مهام", "./مجلد")

الدوال المتاحة:

  • قائمة_المشاريع(): عرض المشاريع الجاهزة
  • انشئ_مشروع(اسم, مسار): إنشاء مشروع جاهز

المشاريع المتاحة:

  • آلة_حاسبة: آلة حاسبة كاملة
  • قائمة_مهام: نظام إدارة مهام
  • لعبة_تخمين: لعبة تخمين الأرقام

spl

التصحيح الإملائي

from pyarabify import spl

كود_صحيح = spl.تصحيح("اطبغ('مرحباً')")
اقتراحات = spl.اقتراحات_الكلمات("اطبغ")

الدوال المتاحة:

  • تصحيح(كود): تصحيح الأخطاء الإملائية
  • اقتراحات_الكلمات(كلمة): الحصول على اقتراحات

lib

دعم المكتبات

from pyarabify import lib

ترجمات = lib.get_library_translations("numpy")

المكتبات المدعومة:

  • numpy
  • pandas
  • matplotlib
  • requests
  • datetime
  • math
  • random
  • os
  • sys

aut

التثبيت التلقائي

from pyarabify import aut

aut.تثبيت_تلقائي("requests")
aut.استيراد_مع_تثبيت("numpy")

الدوال المتاحة:

  • تثبيت_تلقائي(اسم_المكتبة): تثبيت مكتبة
  • استيراد_مع_تثبيت(اسم_المكتبة): استيراد مع التثبيت

edat

عرض الأخطاء بالعربية

from pyarabify import edat

edat()

اسم_غير_موجود

الناتج:

============================================================
خطأ: اسم غير معرف
============================================================
الملف: "test.py", السطر: 5
  in <module>

التفاصيل: name 'اسم_غير_موجود' is not defined
============================================================

الأخطاء المدعومة:

  • NameError → خطأ: اسم غير معرف
  • SyntaxError → خطأ في بناء الجملة
  • TypeError → خطأ في النوع
  • ValueError → خطأ في القيمة
  • AttributeError → خطأ: خاصية غير موجودة
  • KeyError → خطأ: مفتاح غير موجود
  • IndexError → خطأ: فهرس خارج النطاق
  • ZeroDivisionError → خطأ: قسمة على صفر
  • FileNotFoundError → خطأ: ملف غير موجود

استخدام

from pyarabify import edat
from pyarabify import execute

edat()

code = '''
دالة قسم(أ, ب):
    ارجع أ / ب

النتيجة = قسم(10, 0)
'''

execute(code)


APIs

1. API ترجمة الأكواد (Translation API)

to_english - تحويل عربي لإنجليزي

تحويل كود Python المكتوب بالعربية إلى كود إنجليزي

التعريف:

to_english(arabic_code, dialect='formal')

المعاملات:

  • arabic_code (str): الكود العربي المراد ترجمته
  • dialect (str): اللهجة المستخدمة (افتراضياً: 'formal')
    • اللهجات المتاحة: formal, short, egyptian, gulf, palestinian, iraqi

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

  • (str): الكود الإنجليزي المترجم

أمثلة تفصيلية:

from pyarabify import to_english

كود_عربي_1 = 'اطبع("مرحباً بالعالم")'
كود_انجليزي_1 = to_english(كود_عربي_1)
print(كود_انجليزي_1)

كود_عربي_2 = '''
دالة جمع(أ, ب):
    النتيجة = أ + ب
    ارجع النتيجة

المجموع = جمع(5, 3)
اطبع(المجموع)
'''
كود_انجليزي_2 = to_english(كود_عربي_2, dialect='formal')
print(كود_انجليزي_2)

كود_عربي_3 = '''
لو العدد > 10:
    اطبع("كبير")
والا:
    اطبع("صغير")
'''
كود_انجليزي_3 = to_english(كود_عربي_3, dialect='palestinian')
print(كود_انجليزي_3)

حالات استخدام متقدمة:

from pyarabify import to_english

كود_معقد = '''
صنف شخص:
    دالة __init__(نفسه, الاسم, العمر):
        نفسه.الاسم = الاسم
        نفسه.العمر = العمر
    
    دالة عرف_نفسك(نفسه):
        اطبع("أنا", نفسه.الاسم)
        اطبع("عمري", نفسه.العمر)

احمد = شخص("أحمد", 25)
احمد.عرف_نفسك()
'''

كود_انجليزي = to_english(كود_معقد)
print("الكود المترجم:")
print(كود_انجليزي)

to_arabic - تحويل إنجليزي لعربي

تحويل كود Python الإنجليزي إلى كود عربي

التعريف:

to_arabic(english_code, dialect='formal')

المعاملات:

  • english_code (str): الكود الإنجليزي المراد ترجمته
  • dialect (str): اللهجة المستهدفة (افتراضياً: 'formal')

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

  • (str): الكود العربي المترجم

أمثلة:

from pyarabify import to_arabic

english_code_1 = 'print("Hello World")'
arabic_code_1 = to_arabic(english_code_1)
print(arabic_code_1)

english_code_2 = '''
def calculate_sum(a, b):
    result = a + b
    return result

total = calculate_sum(10, 20)
print(total)
'''
arabic_code_2 = to_arabic(english_code_2, dialect='formal')
print(arabic_code_2)

english_code_3 = '''
for i in range(5):
    print(i)
'''
arabic_code_3 = to_arabic(english_code_3, dialect='short')
print(arabic_code_3)

مثال - ترجمة برنامج كامل:

from pyarabify import to_arabic

full_program = '''
class Calculator:
    def __init__(self):
        self.result = 0
    
    def add(self, value):
        self.result += value
    
    def subtract(self, value):
        self.result -= value
    
    def get_result(self):
        return self.result

calc = Calculator()
calc.add(10)
calc.add(5)
calc.subtract(3)
print("Result:", calc.get_result())
'''

arabic_program = to_arabic(full_program, dialect='formal')
print("البرنامج بالعربية:")
print(arabic_program)

2. API التنفيذ (Execution API)

execute - تنفيذ كود عربي

تنفيذ كود Python مكتوب بالعربية

التعريف:

execute(code, dialect='formal', show_english=False, globals_dict=None, locals_dict=None)

المعاملات:

  • code (str): الكود العربي المراد تنفيذه
  • dialect (str): اللهجة المستخدمة (افتراضياً: 'formal')
  • show_english (bool): عرض الكود المترجم قبل التنفيذ (افتراضياً: False)
  • globals_dict (dict): قاموس المتغيرات العامة
  • locals_dict (dict): قاموس المتغيرات المحلية

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

  • (dict): قاموس يحتوي على:
    • status: حالة التنفيذ ('success' أو 'error')
    • english_code: الكود الإنجليزي المترجم
    • error: رسالة الخطأ (إن وجد)

أمثله

from pyarabify import execute

code1 = 'اطبع("هاا")'
result1 = execute(code1)
print("Status:", result1['status'])

code2 = '''
العدد_الأول = 10
العدد_الثاني = 20
المجموع = العدد_الأول + العدد_الثاني
اطبع("المجموع =", المجموع)
'''
result2 = execute(code2, show_english=True)

code3 = '''
دالة حساب_المساحة(الطول, العرض):
    المساحة = الطول * العرض
    ارجع المساحة

مساحة_المستطيل = حساب_المساحة(5, 10)
اطبع("المساحة =", مساحة_المستطيل)
'''
result3 = execute(code3, dialect='formal')

استخدام مع متغيرات :

from pyarabify import execute

globals_dict = {'x': 100, 'y': 200}
locals_dict = {}

code = '''
المجموع = x + y
اطبع("المجموع =", المجموع)
'''

result = execute(code, globals_dict=globals_dict, locals_dict=locals_dict)

مثال متقدم - برنامج تفاعلي:

from pyarabify import execute

program = '''
صنف آلة_حاسبة:
    دالة __init__(نفسه):
        نفسه.النتيجة = 0
    
    دالة جمع(نفسه, قيمة):
        نفسه.النتيجة = نفسه.النتيجة + قيمة
        ارجع نفسه.النتيجة
    
    دالة طرح(نفسه, قيمة):
        نفسه.النتيجة = نفسه.النتيجة - قيمة
        ارجع نفسه.النتيجة

آلة = آلة_حاسبة()
اطبع("بعد جمع 10:", آلة.جمع(10))
اطبع("بعد جمع 5:", آلة.جمع(5))
اطبع("بعد طرح 3:", آلة.طرح(3))
'''

result = execute(program, show_english=True)

execute_file - تنفيذ ملف عربي

تنفيذ ملف Python مكتوب بالعربية

التعريف:

execute_file(file_path, dialect='formal', show_english=False)

المعاملات:

  • file_path (str): مسار الملف
  • dialect (str): اللهجة المستخدمة
  • show_english (bool): عرض الكود المترجم

أمثلة:

from pyarabify import execute_file

execute_file('program.py')

execute_file('calculator.py', dialect='egyptian')

execute_file('game.py', dialect='palestinian', show_english=True)

3. API عرض الأخطاء (Error Display API)

edat - تفعيل معالج الأخطاء العربي

تفعيل نظام عرض الأخطاء بالعربية

التعريف:

from pyarabify import edat
edat()

الاستخدام:

from pyarabify import edat

edat()

اسم_غير_موجود

أمثلة تفصيلية:

from pyarabify import edat, execute

edat()

code = '''
دالة قسمة(أ, ب):
    اذا ب == 0:
        رفع خطأ_قيمة("لا يمكن القسمة على صفر")
    ارجع أ / ب

النتيجة = قسمة(10, 0)
'''

execute(code)

مثال متقدم - معالجة أخطاء متعددة:

from pyarabify import edat, execute

edat()

program = '''
حاول:
    قائمة = [1, 2, 3]
    اطبع(قائمة[10])
ماعدا خطأ_فهرس:
    اطبع("الفهرس خارج النطاق")

حاول:
    ملف = افتح("ملف_غير_موجود.txt")
ماعدا خطأ_ملف_غير_موجود:
    اطبع("الملف غير موجود")
'''

execute(program)

4. API تحويل المعادلات (Math Equations API)

احسب - حساب معادلة عربية

تقييم معادلة رياضية مكتوبة بالعربية وإرجاع النتيجة

التعريف:

from pyarabify.src.mth import احسب
احسب(معادلة)

المعاملات:

  • معادلة (str): المعادلة الرياضية بالعربية

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

  • (int/float): نتيجة المعادلة
  • (str): رسالة خطأ إذا فشلت

الأرقام المدعومة:

صفر, واحد, اثنان, اثنين, ثلاثة, ثلاثه, اربعة, اربعه, أربعة, أربعه
خمسة, خمسه, ستة, سته, سبعة, سبعه, ثمانية, ثمانيه, تسعة, تسعه
عشرة, عشره, عشرون, عشرين, ثلاثون, ثلاثين, اربعون, اربعين
خمسون, خمسين, ستون, ستين, سبعون, سبعين, ثمانون, ثمانين, تسعون, تسعين
مئة, مائة, مئه, مائه, الف, ألف

العمليات المدعومة:

زائد (+), جمع (+), اضافة (+)
ناقص (-), طرح (-)
ضرب (*), مضروب (*), في (*)
قسمة (/), مقسوم (/), على (/)
اس (**), قوة (**)
باقي (%)

أمثلة تفصيلية:

from pyarabify.src.mth import احسب

نتيجة1 = احسب("خمسة زائد ثلاثة")
print(نتيجة1)

نتيجة2 = احسب("عشرة ضرب اثنان")
print(نتيجة2)

نتيجة3 = احسب("مائة قسمة خمسة")
print(نتيجة3)

نتيجة4 = احسب("اثنان اس عشرة")
print(نتيجة4)

نتيجة5 = احسب("خمسة زائد ثلاثة ضرب اثنان")
print(نتيجة5)

نتيجة6 = احسب("عشرون باقي ثلاثة")
print(نتيجة6)

أمثلة معقدة:

from pyarabify.src.mth import احسب

معادلة1 = "خمسون زائد عشرون ضرب اثنان"
print(f"{معادلة1} = {احسب(معادلة1)}")

معادلة2 = "مائة ناقص خمسون قسمة عشرة"
print(f"{معادلة2} = {احسب(معادلة2)}")

معادلة3 = "ثلاثة اس اربعة زائد عشرة"
print(f"{معادلة3} = {احسب(معادلة3)}")

حول_معادلة - تحويل معادلة لكود

تحويل معادلة عربية إلى كود Python قابل للتنفيذ

التعريف:

from pyarabify.src.mth import حول_معادلة
حول_معادلة(معادلة)

أمثلة:

from pyarabify.src.mth import حول_معادلة

كود1 = حول_معادلة("خمسة زائد ثلاثة")
print(كود1)

كود2 = حول_معادلة("عشرة ضرب اثنان")
print(كود2)

حول_نص_لرقم - تحويل نص لرقم

تحويل نص عربي يمثل رقم إلى قيمة رقمية

التعريف:

from pyarabify.src.mth import حول_نص_لرقم
حول_نص_لرقم(نص)

أمثلة:

from pyarabify.src.mth import حول_نص_لرقم

رقم1 = حول_نص_لرقم("خمسة")
print(رقم1)

رقم2 = حول_نص_لرقم("عشرون")
print(رقم2)

رقم3 = حول_نص_لرقم("مائة")
print(رقم3)

إضافة كلمات مخصصة

from pyarabify import ArabicParser

parser = ArabicParser()
parser.add_custom_word('اعرض', 'show', category='builtins')
parser.add_custom_word('سجل', 'log', category='builtins')

code = '''
دالة اعرض(رسالة):
    اطبع("عرض:", رسالة)

اعرض("مرحباً")
'''

from pyarabify import execute
execute(code)

القاموس الكامل

إحصائيات القاموس

  • إجمالي الكلمات: 12,238+
  • الكلمات المحجوزة: 60+
  • الدوال المدمجة: 100+
  • دوال القوائم والنصوص: 50+
  • الاستثناءات: 30+
  • المكتبات: 25+
  • دوال Git: 57
  • دوال الويب: 15+
  • اللهجات: 6

المتطلبات

  • Python 2.7 أو أعلى
  • Python 3.x (جميع الإصدارات)

لا توجد متطلبات خارجية إلزامية

المتطلبات الاختيارية (للمميزات)

  • turtle (مثبتة افتراضياً مع Python): للرسوميات
  • اتصال بالإنترنت: للبحث في GitHub

الأسئلة الشائعة

هل يمكنني مزج الكود العربي والإنجليزي؟

نعم، يمكنك استخدام الكود الإنجليزي الأصلي مع الكود العربي

هل تعمل المكتبة مع Python 2؟

نعم، المكتبة متوافقة مع Python 2.7 وجميع إصدارات Python 3

كيف أضيف كلمات جديدة؟

from pyarabify import ArabicParser

parser = ArabicParser()
parser.add_custom_word('كلمتك_العربية', 'english_word')

هل يمكنني استخدام المكتبة في مشاريعي التجارية؟

نعم، المكتبة مرخصة تحت MIT License

هل تدعم المكتبة جميع مكتبات Python؟

المكتبة تترجم أشهر المكتبات، ويمكنك إضافة ترجمات مخصصة لأي مكتبة

كيف أساهم في المشروع؟

راجع قسم المساهمة أدناه


الترخيص

MIT License - انظر ملف LICENSE للتفاصيل


المساهمة

نرحب بمساهماتك

  1. Fork المشروع
  2. أنشئ branch جديد
  3. Commit تغييراتك
  4. Push للـ branch
  5. افتح Pull Request

أفكار للمساهمة:

  • إضافة لهجات عربية جديدة
  • ترجمة مكتبات Python إضافية
  • تحسين التصحيح الإملائي
  • إضافة أمثلة ودروس جديدة
  • تحسين التوثيق

الدعم


الشكر والتقدير

شكراً لاستخدامك pyarabify. نأمل أن تساعد هذه المكتبة في نشر البرمجة بالعربية وجعلها متاحة للجميع

إذا أعجبتك المكتبة، لا تنسى إعطائها نجمة على GitHub


خارطة الطريق

الإصدارات القادمة

الإصدار 2.3.0 (قريباً):

  • دعم Pygame للألعاب
  • واجهة (GUI) بالعربية
  • المزيد من اللهجات العربية
  • دروس تفاعلية متقدمة

الإصدار 3.0.0 (مستقبلاً):

  • محرر أكواد متكامل بالعربية
  • منصة تعليمية
  • دعم الذكاء الاصطناعي
  • ربط مع Arduino و Raspberry Pi

تم التطوير بواسطة MERO

Telegram: @QP4RM GitHub: 6x-u

نسخة: 2.2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyarabify-2.2.0.tar.gz (112.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyarabify-2.2.0-py3-none-any.whl (97.2 kB view details)

Uploaded Python 3

File details

Details for the file pyarabify-2.2.0.tar.gz.

File metadata

  • Download URL: pyarabify-2.2.0.tar.gz
  • Upload date:
  • Size: 112.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for pyarabify-2.2.0.tar.gz
Algorithm Hash digest
SHA256 e8946fe5c28420f4df51b00ddca8c2632f95f0088f7b3088028f3b151d611288
MD5 c4b6d442b2ad09d2e5c2eda49c655645
BLAKE2b-256 6ecdbbc9855ba364fdbb668b60259bef3f1cd84346b071e3bdcc4d68f2c734b5

See more details on using hashes here.

File details

Details for the file pyarabify-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyarabify-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 97.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for pyarabify-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0f19f6ec523fe8c49037ef6929b4209a56aa6cdccde718418e2cd23e51d665f
MD5 7d38c698a678b636ff25014654a73554
BLAKE2b-256 9e27ccd5fe62da1c1c6a9c7a623f10b9e78da94f56168c74504d48f40a441d60

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page