وحدة الإصلاح التلقائي (وضع إدخال القاعدة السريعة)

                                                     ## ماذا يفعل

عند كتابة كلمة عادية (بدون علامات الاقتباس أو بناء جملة Python) في ملف خريطة مثل FUZZY_MAP_pre.py، يقوم النظام تلقائيًا بتحويلها إلى قاعدة صالحة.

هذه هي أسرع طريقة لإنشاء قواعد جديدة — لا داعي لتذكر التنسيق.

                                                              ## مثال

                                 اكتب هذا في `FUZZY_MAP_pre.py`:
oma

تكتشف وحدة الإصلاح التلقائي خطأ “NameError” (كلمة مجردة، ليست لغة Python صالحة) ويحول الملف تلقائيا إلى:

# config/maps/.../de-DE/FUZZY_MAP_pre.py
import re # noqa: F401
# too<-from
FUZZY_MAP_pre = [
    ('oma', 'oma'),
]

الآن قم بتحرير القاعدة إلى ما تحتاجه بالفعل:

('Oma', 'oma'),              # capitalize
('Großmutter', 'oma'),       # synonym
('Thomas Müller', 'thomas'), # from a phone book
                                                       ## كيف يعمل

يتم تشغيل الوحدة النمطية scripts/py/func/auto_fix_module.py تلقائيًا عندما تكتشف Aura خطأ في الاسم أثناء تحميل ملف خريطة.

                                                             ومن ثم:
                      1. يضيف رأس مسار الملف الصحيح
     2. يضيف "استيراد إعادة" إذا كان مفقودًا
                3. يضيف تعريف القائمة `FUZZY_MAP_pre = [`
  1. تحويل الكلمات المجردة إلى (\'كلمة'، 'كلمة')، صفوف 5. يُغلق القائمة بـ ]

                                          ## القواعد والحدود
    
  • يعمل فقط على الملفات الأصغر من 1 كيلو بايت (حد الأمان)

  • ينطبق فقط على: FUZZY_MAP.py، FUZZY_MAP_pre.py، PUNCTUATION_MAP.py

  • يجب أن يكون الملف موجودًا في مجلد لغة صالح (مثل de-DE/)

  • يعمل مع كلمات متعددة في وقت واحد (على سبيل المثال من قائمة دليل الهاتف)

المشكلات المعروفة (لم يتم اختبارها بشكل كامل)

⚠️ هذه الوحدة عملية ولكن لم يتم اختبارها بشكل شامل. الحالات التالية قد لا تعمل بشكل صحيح:

  • الأرقام - 5 أو 6 ليست معرفات Python صالحة، وقد لا يتعامل معها الإصلاح التلقائي

  • الأحرف الخاصة - الكلمات التي تحتوي على -، .، علامات تغير الصوت قد لا تؤدي إلى حدوث خطأ في الاسم.

  • إدخالات متعددة الكلمات - يتسبب thomas mueller (مع وجود مسافة) في حدوث SyntaxError وليس NameError، لذلك قد لا يتم تشغيل الإصلاح التلقائي

  • قيم مفصولة بفواصل - يمكن إدراج drei, vier كما هو دون أن يصبح صفًا مناسبًا

إذا لم يتم تشغيل الإصلاح التلقائي، أضف القاعدة يدويًا:

('replacement', 'input word'),
                                   ## التعليق `# أيضًا<-من`

تتم إضافة هذا التعليق تلقائيًا كتذكير باتجاه القاعدة:

too <- from

المعنى: الإخراج (أيضًا) ← الإدخال (من). الاستبدال يأتي أولا.

بالنسبة إلى PUNCTUATION_MAP.py، يتم عكس الاتجاه: # from->too

                     ## الإدخال بالجملة من القائمة

                   يمكنك لصق عدة كلمات مرة واحدة:
thomas
maria
berlin
            تصبح كل كلمة مجردة قاعدة خاصة بها:
('thomas', 'thomas'),
('maria', 'maria'),
('berlin', 'berlin'),
                ثم قم بتحرير كل بديل حسب الحاجة.

                      ## الملف: `scripts/py/func/auto_fix_module.py`