مساعد صيغ LibreOffice Calc


أداة Python لإنشاء واختبار وإدارة صيغ LibreOffice Calc بسرعة – مع نظام المفضلة، ومزامنة الفريق، ودعم تعدد اللغات، ومدير الإضافات.

🚀 الميزات


  • 📑 4 علامات تبويب مع أكثر من 60 دالة

  • 🌐 38 لغة (بما فيها الهندية مع تثبيت تلقائي للخط)

  • ⭐ نظام المفضلة (محلي ومزامنة الفريق عبر محرك الشبكة)

  • 🛠 لوحة المسؤول لمفضلات الفريق (محمية بكلمة مرور)

  • 📋 صيغ قابلة للنسخ مباشرةً مع تمييز بناء الجملة

  • ✏️ حقل إخراج قابل للتحرير مع التراجع/الإعادة

  • 📖 مساعدة مدمجة ومرجع دوال (لكل لغة)

  • 💾 حفظ تلقائي (JSON، كتابة ذرية)

  • 🌙 الوضع الداكن

  • 🔌 مدير الإضافات لإنشاء إضافات الصيغ الخاصة بك

  • 🔤 دعم RTL (من اليمين إلى اليسار) – اكتشاف تلقائي لاتجاه الكتابة

  • 🗄️ النسخ الاحتياطي والاستعادة – حفظ جميع الإعدادات والمفضلة باسم وكلمة مرور

  • 🔤 دعم RTL (من اليمين إلى اليسار) – اكتشاف تلقائي لاتجاه الكتابة

  • 🗄️ النسخ الاحتياطي والاستعادة – حفظ جميع الإعدادات والمفضلة باسم وكلمة مرور

  • ⌨️ اختصار لوحة مفاتيح عالمي Ctrl+F12 للتصغير/الاستعادة
  • 🔍 مدقق JSON – التحقق وتصحيح languages.json وformula_explanations.json تلقائيا

  • 🖥️ طريقة الاستخدام


    1. أدخل القيم

  • نطاق الخلايا (مثل A1:A10)

  • الخلية 1 / الخلية 2 (مثل A1, B1)

  • معامل اختياري (مثل نص أو فهرس)

  • وضع المرجع المطلق قابل للاختيار: A1, $A1, A$1, $A$1

  • 2. اختر دالة اختر علامة تبويب وانقر على دالة – تُنشأ الصيغة فوراً.

    3. خصّص الصيغة يمكن تحرير الصيغة الناتجة مباشرةً في حقل الإخراج.

    4. انسخ بنقرة واحدة إلى الحافظة (بما فيها ألوان بناء الجملة).

    5. استخدم المفضلة

  • ⭐ حفظ → احفظ الصيغة الحالية (Ctrl+S)

  • 📂 تحميل → أعد استخدام صيغة

  • ❌ حذف → مفتاح Del أو الزر

  • 🕐 السجل → الصيغ المستخدمة مؤخراً

  • 📊 نظرة عامة على علامات التبويب


    علامة التبويب 1 – الدوال الأساسية + - * / ^ SUM, AVERAGE, MIN, MAX, MEDIAN, COUNT, COUNTA, SUMPRODUCT

    علامة التبويب 2 – الدوال المتقدمة IF, AND, OR, NOT SUMIF, COUNTIF, AVERAGEIF, SUMIFS, STDEV, VAR, COUNTBLANK, LARGE

    علامة التبويب 3 – التاريخ والنص TODAY, NOW, YEAR, MONTH, DAY, DATE, DATEDIF, WEEKDAY CONCATENATE, LEN, LEFT, RIGHT, MID, UPPER, LOWER, TRIM

    علامة التبويب 4 – البحث والتقريب VLOOKUP, HLOOKUP, INDEX, MATCH, INDEX+MATCH ROUND, ROUNDUP, ROUNDDOWN, INT, TRUNC, ABS, MOD, SQRT, RAND


    📖 شرح الصيغ من وثائق LibreOffice


    يتم تعبئة ملف formula_explanations.json مباشرةً من وثائق LibreOffice Calc الرسمية (https://help.libreoffice.org).

    مصدر البيانات والتحديث


  • تؤخذ الأوصاف وبيانات الصياغة والأمثلة من موقع مساعدة LibreOffice الرسمي
  • اللغات المدعومة تعتمد على الترجمات المتاحة على الموقع
  • يحتوي الملف لكل دالة: الاسم، والصياغة، والوصف، والمثال، والفئة
  • يمكن إجراء الإضافات أو التصحيحات يدوياً (انظر مدقق JSON)

  • بنية formula_explanations.json


    `json
    {
    "SUM": {
    "ar": {
    "syntax": "SUM(رقم1; رقم2; ...)",
    "description": "يجمع كل الأرقام في نطاق خلايا.",
    "example": "=SUM(A1:A10)"
    },
    "en": {
    "syntax": "SUM(Number1; Number2; ...)",
    "description": "Adds all numbers in a cell range.",
    "example": "=SUM(A1:A10)"
    }
    }
    }
    `

    | الحقل | إلزامي | الوصف |
    |-------|--------|-------|
    | syntax | ✅ | صياغة الصيغة مع المعاملات |
    | description | ✅ | وصف مختصر للدالة |
    | example | ✅ | مثال تطبيقي كصيغة جاهزة |
    | note | ❌ | ملاحظة اختيارية |

    💡 ملاحظة: إذا لم يكن هناك إدخال للغة ما، يعود التطبيق تلقائياً إلى النسخة الإنجليزية.

    ---

    🔍 مدقق JSON لملفات اللغة


    يتحقق مدقق JSON المدمج من languages.json وformula_explanations.json ويصححهما. يمكن الوصول إليه عبر الإعدادات → 🔍 مدقق JSON.

    ما الذي يتم فحصه؟


    #### languages.json

  • ✅ جميع اللغات الـ 38 موجودة (وفق رمز ISO 639-1)
  • أسماء الدول واللغات صحيحة (مثلاً "ar""العربية")
  • ✅ لا يوجد رموز لغة مكررة
  • ✅ الحقول الإلزامية موجودة: name, native_name, flag, rtl
  • ✅ تعيين RTL صحيح (العربية، العبرية، الفارسية، الأردية → "rtl": true)

  • #### formula_explanations.json

  • ✅ جميع الدوال من الأقسام الأربعة مدرجة
  • ✅ الحقول الإلزامية موجودة: syntax, description, example
  • ✅ لا حقول فارغة
  • ✅ رموز اللغة تتطابق مع languages.json

  • وظائف التصحيح


    | نوع الخطأ | التصحيح التلقائي |
    |-----------|-----------------|
    | اسم دولة خاطئ | يستبدل بالاسم الصحيح وفق معيار ISO |
    | إدخال لغة مفقود | يملأ بنسخة احتياطية إنجليزية |
    | حقل إلزامي فارغ | يضع "[MISSING]" للمراجعة اليدوية |
    | إدخال مكرر | يزيل التكرارات ويحتفظ بالأكثر اكتمالاً |
    | علامة RTL خاطئة | يصحح تلقائياً بناءً على رموز اللغة |

    طريقة الاستخدام


    1. افتح الإعدادات → 🔍 مدقق JSON
    2. اختر الملف: languages.json أو formula_explanations.json (أو كليهما)
    3. 🔎 فحص – يعرض جميع المشاكل المكتشفة
    4. 🛠 تصحيح تلقائي – يعالج جميع الأخطاء القابلة للتصحيح
    5. 💾 حفظ – يكتب الملف المصحح بشكل ذري
    6. 📋 تصدير التقرير (اختياري) – يحفظ ملفاً نصياً بجميع النتائج

    ⚠️ ملاحظة: قبل أي تصحيح تلقائي تُنشأ نسخة احتياطية من الملف الأصلي (languages.json.bak / formula_explanations.json.bak).

    ⭐ نظام المفضلة


  • احفظ صيغك الخاصة وأعد استخدامها

  • الفصل بين المفضلة الشخصية ومفضلة الفريق

  • مفضلة الفريق للقراءة فقط (المسؤول فقط يمكنه التحرير)

  • منع الإدخالات المكررة

  • ترتيب حر للمفضلة الشخصية

  • المزامنة عبر محرك الشبكة (قابل للتهيئة اختيارياً)

  • مزامنة الفريق


    عبر الإعدادات → 🌐 مسار الشبكة يمكن إدخال محرك شبكة (مثل \\\\Server\\Share\\formulas).

  • عند البدء: تُحفظ مفضلات الشبكة محلياً (احتياطي دون اتصال)

  • عند الحفظ: تُكتب الصيغ الشخصية إلى الشبكة، وتبقى صيغ الفريق دون تغيير

  • 🛠 لوحة المسؤول


    يمكن الوصول إليها عبر زر 🛠. عند النقر الأول تُحدد كلمة مرور (PBKDF2-SHA256، يُخزَّن الـ hash فقط).

  • إضافة وتحرير وحذف صيغ الفريق

  • تغيير كلمة المرور

  • كتابة التغييرات مباشرةً إلى محرك الشبكة

  • 🔌 مدير الإضافات


    مدير الإضافات (plugin_manager.py) هو أداة مستقلة لإنشاء وإدارة إضافات الصيغ الخاصة بك لـ Calc2. يقع في نفس المجلد مثل Calc2.py ويُشغَّل من زر 🔌 في Calc2.py.

    الوظائف


  • إنشاء إضافة جديدة – معالج خطوة بخطوة (الاسم، الصيغ، الترجمات، الملخص)

  • إضافة صيغ – إضافة صيغ إلى إضافة موجودة

  • تحرير الترجمات – ترجمة أسماء الصيغ إلى 38 لغة

  • فتح مجلد الإضافة – مباشرةً في مستكشف الملفات

  • حذف إضافة – مع تأكيد الأمان

  • بنية الإضافة


    كل إضافة توجد كمجلد فرعي تحت plugins/ وتتكون من ملفين:

    `
    plugins/
    my_plugin/
    plugin.json ← بيانات وصفية (الاسم، الإصدار، المؤلف، الوصف)
    formulas.json ← الصيغ مع الترجمات
    `

    مثال plugin.json:

    `json
    {
    "id": "my_plugin",
    "enabled": true,
    "version": "1.0",
    "author": "اسمك",
    "icon": "💰",
    "name": { "en": "Finance Formulas", "ar": "صيغ مالية" },
    "description": { "en": "Useful formulas for financial calculations." }
    }
    `

    مثال formulas.json:

    `json
    [
    {
    "formula": "=SUM(A1:A10)",
    "name": { "en": "Sum of range", "ar": "مجموع النطاق" },
    "description": { "en": "Adds all values in A1:A10." },
    "category": { "en": "Basic", "ar": "أساسي" }
    }
    ]
    `

    ملاحظة مهمة (⚠️ Important Notice)


    في مدير الإضافات يوجد زر ⚠️ Important Notice. النقر عليه يفتح نافذة بجميع قواعد إنشاء الإضافة الصحيحة باللغة الإنجليزية. نفس المعلومات متوفرة أيضاً في IMPORTANT_NOTICE.md.

    🌐 تعدد اللغات


    38 لغة متاحة، يمكن التبديل بينها مباشرةً في التطبيق.
    يمكن إضافة لغات جديدة عبر زر 🌍 باستخدام معالج اللغة.

    ملاحظة الهندية (हिंदी): عند التبديل الأول إلى الهندية، يُثبَّت خط *Noto Sans Devanagari* مرة واحدة على مستوى النظام. قد يطلب Windows صلاحيات المسؤول لذلك.

    🔤 دعم RTL (من اليمين إلى اليسار)


    تُكتشف لغات الكتابة من اليمين إلى اليسار تلقائياً وتُعكس الواجهة بالكامل:

  • العربية – اكتشاف تلقائي لـ RTL
  • العبرية (עברית) – اكتشاف تلقائي لـ RTL
  • الفارسية (فارسی) – اكتشاف تلقائي لـ RTL
  • الأردية (اردو) – اكتشاف تلقائي لـ RTL

  • ما الذي يتغير في وضع RTL:

  • يُعكس تخطيط الواجهة بالكامل (أزرار، تبويبات، حقول)
  • حقول الإدخال في وضع RTL
  • قائمة المفضلة والسجل محاذاة لليمين
  • يتغير الخط تلقائياً إلى خط متوافق مع RTL (مثل *Noto Sans Arabic*، *Noto Sans Hebrew*)

  • 💡 ملاحظة: صيغ LibreOffice الناتجة تبقى دائماً بتنسيق LTR – واجهة المستخدم فقط هي التي تتغير.


    🗄️ النسخ الاحتياطي والاستعادة


    إنشاء نسخة احتياطية


    عبر الإعدادات → 🗄️ إنشاء نسخة احتياطية:

    1. الاسم – أدخل اسماً للنسخة الاحتياطية (مثل Backup_Mai_2025)
    2. كلمة المرور – تُشفَّر النسخة الاحتياطية بـ AES؛ لا يمكن الاستعادة بدونها
    3. موقع الحفظ – محلي أو على محرك شبكة
    4. انقر على 💾 إنشاء نسخة احتياطية – ينشئ ملف .calc2backup

    محتوى النسخة الاحتياطية: جميع المفضلة، الإعدادات، مفضلات الفريق (اختياري)، الإضافات المثبتة.

    استعادة النسخة الاحتياطية


    عبر الإعدادات → 📂 استعادة النسخة الاحتياطية:

    1. اختر ملف النسخة الاحتياطية (.calc2backup)
    2. أدخل كلمة المرور
    3. اختر نطاق الاستعادة: المفضلة فقط / الإعدادات فقط / الكل
    4. انقر على 🔄 استعادة

    ⚠️ تحذير: عند الاستعادة تُستبدل البيانات الحالية. يُعرض احتياطي تلقائي قبل الاستعادة.

    🔑 نسيت كلمة المرور: لا يمكن استعادة النسخ الاحتياطية بدون كلمة المرور الصحيحة.


    💡 نصائح


  • $A$1 → مرجع مطلق (القائمة المنسدلة بجانب حقول الخلية)

  • Ctrl+S → حفظ الصيغة في المفضلة

  • Ctrl+C → نسخ الصيغة (خارج حقول الإدخال)

  • Ctrl+Z / Ctrl+Y → تراجع / إعادة

  • Ctrl+F12 → تصغير/استعادة النافذة (يعمل حتى عندما يكون Calc2 مصغراً)

  • مفتاح Del في قائمة المفضلة → حذف إدخال

  • يمكن تعديل الصيغ مباشرةً في حقل الإخراج بعد إنشائها

  • 📁 هيكل المشروع


    `
    Calc2.py ← البرنامج الرئيسي
    plugin_manager.py ← مدير الإضافات
    IMPORTANT_NOTICE.md ← ملاحظات حول إنشاء الإضافات
    data/
    README_ar.md / README_en.md / ... ← مساعدة حسب اللغة
    REFERENZ_ar.md / REFERENZ_en.md / ... ← مرجع الدوال حسب اللغة
    language/
    languages.json ← ترجمات الواجهة (38 لغة)
    formula_explanations.json
    services/
    language_tool.py ← المعالج: إضافة لغة جديدة
    settings_service.py
    auth_service.py
    favorites_service.py
    network_sync.py
    install_service.py
    backup_service.py ← النسخ الاحتياطي والاستعادة
    json_validator.py ← التحقق وتصحيح languages.json / formula_explanations.json
    plugins/ ← مجلد الإضافات (يُنشأ تلقائياً)
    my_plugin/
    plugin.json
    formulas.json
    fonts/
    NotoSansDevanagari-Regular.ttf ← خط الهندية
    NotoSansArabic-Regular.ttf ← خط العربية (RTL)
    NotoSansHebrew-Regular.ttf ← خط العبرية (RTL)
    python/ ← Python مضمّن
    python.exe
    ...
    settings.json ← يُنشأ تلقائياً
    favoriten.json ← المفضلة المحلية (تُنشأ تلقائياً)
    `

    🧠 المميزات التقنية


  • الكتابة الذرية للملفات → تمنع الملفات التالفة عند الحفظ

  • معمارية الخدمات → المنطق والواجهة مفصولان تماماً

  • الترحيل التلقائي → تُكتشف تنسيقات المفضلة القديمة وتُحوَّل

  • معالجة أخطاء قوية → الملفات المعطوبة لا تسبب تعطلاً

  • تمييز بناء الجملة → الصيغ تُعرض بألوان

  • الوضع الداكن → مدعوم بالكامل

  • نظام الإضافات → Calc2 قابل للتوسعة بإضافات صيغ خاصة بك

  • محرك RTL → اكتشاف تلقائي للغات RTL، عكس كامل لواجهة المستخدم مع الخطوط المناسبة

  • النسخ الاحتياطي والاستعادة → نسخ احتياطية مشفرة بـ AES باسم وكلمة مرور، استعادة انتقائية

  • مدقق JSON → التحقق التلقائي وتصحيح languages.json وformula_explanations.json بما فيها أسماء الدول والحقول الإلزامية

  • مصدر LibreOffice → يتم تعبئة formula_explanations.json من الوثائق الرسمية لـ LibreOffice Calc (https://help.libreoffice.org)

  • اختصار لوحة مفاتيح عالميCtrl+F12 يعمل على مستوى النظام عبر مكتبة keyboard (خيط خلفية)

  • الرخصة


    مجاني للاستخدام الشخصي والتجاري.