# وحدة الإصلاح التلقائي (وضع إدخال القاعدة السريعة) ## ماذا يفعل عند كتابة كلمة عادية (بدون علامات الاقتباس أو بناء جملة Python) في ملف خريطة مثل `FUZZY_MAP_pre.py`، يقوم النظام تلقائيًا بتحويلها إلى قاعدة صالحة. هذه هي أسرع طريقة لإنشاء قواعد جديدة — لا داعي لتذكر التنسيق. ## مثال اكتب هذا في `FUZZY_MAP_pre.py`: ``` oma ``` تكتشف وحدة الإصلاح التلقائي خطأ "NameError" (كلمة مجردة، ليست لغة Python صالحة) ويحول الملف تلقائيا إلى: ```python # config/maps/.../de-DE/FUZZY_MAP_pre.py import re # noqa: F401 # too<-from FUZZY_MAP_pre = [ ('oma', 'oma'), ] ``` الآن قم بتحرير القاعدة إلى ما تحتاجه بالفعل: ```python ('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 = [` 4. تحويل الكلمات المجردة إلى `(\'كلمة'، 'كلمة')،` صفوف 5. يُغلق القائمة بـ `]` ## القواعد والحدود - يعمل فقط على الملفات الأصغر من **1 كيلو بايت** (حد الأمان) - ينطبق فقط على: `FUZZY_MAP.py`، `FUZZY_MAP_pre.py`، `PUNCTUATION_MAP.py` - يجب أن يكون الملف موجودًا في مجلد لغة صالح (مثل `de-DE/`) - يعمل مع كلمات متعددة في وقت واحد (على سبيل المثال من قائمة دليل الهاتف) ## المشكلات المعروفة (لم يتم اختبارها بشكل كامل) > ⚠️ هذه الوحدة عملية ولكن لم يتم اختبارها بشكل شامل. الحالات التالية قد لا تعمل بشكل صحيح: - **الأرقام** - `5` أو `6` ليست معرفات Python صالحة، وقد لا يتعامل معها الإصلاح التلقائي - **الأحرف الخاصة** - الكلمات التي تحتوي على `-`، `.`، علامات تغير الصوت قد لا تؤدي إلى حدوث خطأ في الاسم. - **إدخالات متعددة الكلمات** - يتسبب `thomas mueller` (مع وجود مسافة) في حدوث `SyntaxError` وليس `NameError`، لذلك قد لا يتم تشغيل الإصلاح التلقائي - **قيم مفصولة بفواصل** - يمكن إدراج `drei, vier` كما هو دون أن يصبح صفًا مناسبًا إذا لم يتم تشغيل الإصلاح التلقائي، أضف القاعدة يدويًا: ```python ('replacement', 'input word'), ``` ## التعليق `# أيضًا<-من` تتم إضافة هذا التعليق تلقائيًا كتذكير باتجاه القاعدة: ``` too <- from ``` المعنى: **الإخراج** (أيضًا) ← **الإدخال** (من). الاستبدال يأتي أولا. بالنسبة إلى `PUNCTUATION_MAP.py`، يتم عكس الاتجاه: `# from->too` ## الإدخال بالجملة من القائمة يمكنك لصق عدة كلمات مرة واحدة: ``` thomas maria berlin ``` تصبح كل كلمة مجردة قاعدة خاصة بها: ```python ('thomas', 'thomas'), ('maria', 'maria'), ('berlin', 'berlin'), ``` ثم قم بتحرير كل بديل حسب الحاجة. ## الملف: `scripts/py/func/auto_fix_module.py`