1. لماذا diff العربية مختلف
عندما تستخدم أداة مقارنة نصوص إنجليزية على نصّ عربيّ، تحدث ثلاث كوارث صغيرة في وقت واحد: الاتجاه ينقلب، التشكيل يكسر التطابق، والمحارف غير المرئية (مثل علامات الاتجاه أو tatweel) تجعل سطرين متطابقَين بصرياً يظهران كاختلاف كامل. النتيجة: مراجع تحريريّ يقضي ساعات في فحص فروقات وهميّة، أو مترجم يفوّت تعديلاً حقيقياً لأن الأداة لوّنت كلّ شيء بالأحمر.
هذا الدليل يشرح ما الذي يجعل المقارنة العربيّة مختلفة، ثم يقدّم منهجاً عمليّاً: تطبيع ذكيّ، خوارزمية LCS، واختيار وضع المقارنة المناسب لكلّ حالة.
2. المشاكل الخمس الأساسية في مقارنة العربية
قبل الحديث عن الحلّ، لنحدّد بدقّة ما الذي يفشل:
أ) التشكيل (Harakat)
كلمة كَتَبَ وكتب متطابقتان دلاليّاً، لكنّ الأولى تحمل ثلاث حركات (فتحة على كلّ حرف). أيّ أداة diff خام ستعتبرهما نصّين مختلفَين تماماً لأنّ Unicode يخزّن كلّ حركة كحرف منفصل (U+064E مثلاً).
ب) تعدّد أشكال الألف
الألف لها ستّ صور في Unicode: ا، أ، إ، آ، ٱ، ى. كاتب يكتب إمكانيةوآخر يكتب امكانية — قد يكون الفرق خطأ إملائيّاً، أو قد يكون مجرّد اختلاف في المدرسة (مغربيّة vs مشرقيّة). أداة المقارنة يجب أن تسمح لك بتقرير ما إذا كان هذا فرقاً مهمّاً.
ج) الياء و التاء المربوطة
على vs علي، ومدرسة vsمدرسه. الأولى مسألة لغوية معروفة (الياء مقابل الألف المقصورة)، والثانية شائعة جدّاً في الكتابة المصريّة العاميّة.
د) المحارف الخفية
عند النسخ من Word أو PDF أو مواقع إلكترونيّة، تتسلّل محارف غير مرئية: ZWJ (U+200D)، ZWNJ (U+200C)، LRM (U+200E)، RLM (U+200F)، وعلامة BOM (U+FEFF). هذه المحارف تجعل سطرَين يبدوان متطابقَين بنسبة 100% لكنّ الأداة تراهما مختلفَين.
هـ) الـ Tatweel (ـ)
المحرف U+0640 يستخدم للزخرفة (مثل: مـحـمـد بدلاً من محمد). البصر لا يفرّق، لكنّ المقارنة الحرفيّة ترى نصَّين مختلفَين تماماً.
3. التطبيع قبل المقارنة
الحلّ الأنيق: نطبّق "تطبيعاً" (normalization) على النصّين قبل المقارنة، ثمّ نعرض الفروقات مقابل النصّ الأصليّ، لا المطبّع. هكذا تحصل على الأفضل: مقارنة دلاليّة دقيقة + عرض يحترم ما كتبه المؤلف فعلاً.
التطبيعات الأساسيّة التي تحتاجها (وكلّها متاحة في الأداة أعلاه كخيارات قابلة للتشغيل/الإطفاء):
- حذف التشكيل — يزيل U+064B إلى U+0652 + U+0670.
- توحيد الألف — أ/إ/آ/ٱ → ا.
- توحيد الياء — ى → ي.
- ة ↔ ه — اختياريّ؛ مفيد للنصوص المصريّة.
- حذف المحارف الخفية — ZWJ, ZWNJ, LRM, RLM, BOM, tatweel.
نصيحة: لا تشغّل كلّ التطبيعات افتراضياً. مراجع لنصّ قرآنيّ أو شعريّ يحتاج التشكيل سليماً، بينما مراجع لمحتوى تسويقيّ لا يهتمّ به. الأداة الجيّدة تترك القرار لك.
4. خوارزمية LCS — كيف تعمل المقارنة فعلاً
معظم أدوات diff الجادّة (Git، VS Code، GitHub) تستخدم متغيرات من خوارزمية Myers diff، والتي تعتمد على إيجاد أطول تسلسل مشترك (Longest Common Subsequence) بين النصّين.
الفكرة بسيطة: قسّم النصَّين إلى وحدات (أسطر، كلمات، أو حروف)، ثمّ ابحث عن أطول سلسلة من الوحدات تظهر في كلَيهما بنفس الترتيب. كلّ ما يقع خارج هذه السلسلة هو إمّا إضافة (موجود في الجديد فقط) أو حذف (موجود في الأصل فقط).
المثال البسيط: لو كان النصّ الأصليّ A B C D والجديد A X C E، أطول تسلسل مشترك هو A C. النتيجة: B و D محذوفان، X و E مضافان. الأداة أعلاه تستخدم نسخة LCS تقليديّة (O(n×m)) وهي كافية حتّى لنصوص بطول 10 آلاف سطر.
5. سطر vs كلمة vs حرف — أيّها تختار؟
مستوى التقسيم يحدّد دقّة (ومقروئيّة) النتيجة:
- سطر بسطر — مثاليّ للكود، ملفّات JSON/YAML، أو نصوص منظّمة بفقرات قصيرة. سريع، يعطي صورة كلّيّة، لكنّه يُظهر السطر كلّه كتغيير حتّى لو تغيّرت كلمة واحدة.
- كلمة بكلمة — أفضل للمراجعة التحريريّة. ترى بالضبط أيّ كلمة تغيّرت داخل كلّ جملة. أبطأ قليلاً لكنّه ما يستخدمه المحرّرون المحترفون.
- حرف بحرف — مفيد للأبحاث اللغويّة والشعر، حيث كلّ حرف له وزن. الأداة أعلاه لا تقدّمه افتراضيّاً لأنّ ضوضاءه عالية، لكنّ يمكن محاكاته بنسخ النصّ كأحرف منفصلة.
القاعدة العمليّة: ابدأ بـ سطر بسطر لترى أيّ فقرة تغيّرت، ثمّ بدّل إلى كلمة بكلمة لمعرفة التفاصيل.
6. حالات استخدام عملية
أ) مراجعة الترجمة
مترجم سلّم نسخة، ومحرّر عاد ببعض التعديلات. بدلاً من قراءة 5,000 كلمة مرّتين، الصق النسختَين، اختر "كلمة بكلمة"، وستظهر التعديلات بالأحمر/الأخضر فوراً.
ب) مقارنة إصدارات مقال
كاتب يحدّث مقالاً قديماً لـ 2026. ضع النسخة المنشورة (من Wayback Machine مثلاً) مقابل المسودّة الجديدة، وسترى بالضبط ما تغيّر — مفيد للـ SEO حيث Google يراقب التحديثات الجوهريّة.
ج) فحص السرقة الأدبيّة
لست بحاجة Turnitin لمقارنة سريعة بين مقالَين. شغّل التطبيع كاملاً (ليتجاوز محاولات الإخفاء عبر تغيير التشكيل أو شكل الألف)، وستظهر النسبة الحقيقيّة للتشابه.
د) مراجعة عقود قانونيّة
عقد مرفوع من الطرف الآخر بعد جولة تفاوض. مقارنة كلمة بكلمة تكشف أيّ بند تمّ تغييره أو حذفه — خاصّة الجمل القصيرة المخفيّة وسط فقرات طويلة.
هـ) مقارنة نصوص JSON/YAML بعربيّة
ملفّات الترجمة (i18n) أو CMS تحتوي قيماً عربيّة. أدوات diff البرمجيّة (Git، VS Code) تعرضها لكنّها لا تتعامل مع التشكيل أو الألف. الأداة هنا تكمّل ذلك.
7. لماذا Word, Google Docs, و Git يفشلون أحياناً
Microsoft Word — Track Changes
يعمل جيّداً للتعديلات داخل نفس الملفّ، لكنّه ضعيف عند لصق نسختَين منفصلتَين للمقارنة. كذلك تعطّل عرض RTL يخلط ترتيب الفروقات أحياناً، خاصّة في الإصدارات القديمة من Word for Mac.
Google Docs — Compare Documents
الميزة موجودة (Tools → Compare documents)، وتعمل بشكل معقول للنصوص الإنجليزيّة، لكنّها تعامل التشكيل والمحارف الخفية كاختلافات حقيقيّة — مما يُغرق المراجع بفروقات وهميّة.
Git Diff
خوارزميّتها ممتازة (Myers + Histogram)، لكنّها سطريّة بحتة وغير عربيّة- aware. تستخدم في الـ pull requests للكود، لا للمحتوى التحريريّ. الحلّ: للمحتوى العربيّ المخزّن في Git، استخدم أداة diff تحريريّة (مثل هذه) قبل عمل commit.
8. أخطاء شائعة
- نسيان تطبيع المحارف الخفيةقبل المقارنة — ينتج عنه "فروقات شبحيّة" لا تستطيع شرحها للعميل.
- الاعتماد على المقارنة البصريّة — العين تتجاوز اختلافات الألف/الياء آليّاً، الأداة لا تفعل.
- اختيار "حرف بحرف" لنصّ طويل — ينتج ضوضاء غير قابلة للقراءة.
- تشغيل تطبيع ة↔ه على نصّ فصيح — يخفي أخطاء إملائيّة حقيقيّة. هذا الخيار للعاميّة فقط.
- نسخ من PDF مباشرة — كثير من ملفّات PDF العربيّة تفصل الحروف إلى أشكال منفصلة (initial, medial, final). شغّل التطبيع، أو استخدم أداة OCR موثوقة أوّلاً.
- افتراض أنّ Cmd+F يكفي — البحث يجد كلمة واحدة، لا فروقات متناثرة عبر مستند طويل.
9. الخلاصة
مقارنة النصوص العربيّة ليست مجرّد diff إنجليزيّ بخطّ معكوس. تحتاج وعياً بثلاث طبقات: التطبيع (لتجاوز الفروقات السطحيّة)، الخوارزميّة (LCS أو Myers لإيجاد التغييرات الحقيقيّة)، ومستوى التقسيم (سطر للنظرة العامّة، كلمة للتفاصيل).
الأداة أعلاه تعطيك التحكّم الكامل بالخمس تطبيعات الأكثر شيوعاً، ومستويَيْن من التقسيم. ابدأ بالإعدادات الافتراضيّة لمعظم الحالات، وعدّلها فقط عندما تعرف ما الذي تبحث عنه (نصّ شعريّ؟ أبقِ التشكيل. عقد قانونيّ؟ أطفئ ة↔ه). المقارنة الذكيّة توفّر ساعات من المراجعة البصريّة — وتمنعك من تفويت التعديلات المهمّة وسط ضوضاء الفروقات الوهميّة.
أدوات ذات صلة
أدوات أخرى مجانية على ArabToolBox، كلها تعمل في متصفّحك بدون تسجيل.
- تشكيل النصوص العربيةتشكيل النصوص العربية تلقائياً بدقة عالية
- عدّاد الكلمات العربيةعدّاد كلمات عربي + قياس قابلية القراءة
- نص بديل عربي (لوريم إيبسوم)ولّد نصوص عربية فصحى للتصميم والـ Mockups
- محوّل Markdown ↔ HTML (RTL)تحويل آمن بين Markdown و HTML مع دعم RTL كامل
- محوّل عناوين URL عربيةحوّل العناوين العربية إلى slug لاتيني صديق للسيو
- منسّق JSONتنسيق وتحقق JSON مع مقارنة Diff وتحويل لـ CSV/YAML