لماذا بناء مترجم EPUB الخاص بك أصعب مما تتصور

Last updated: 2026-04-13

لماذا بناء مترجم EPUB الخاص بك أصعب مما تتصور

انتشرت مؤخرًا تغريدة للمطوّر @cat88tw حول تجربته في بناء مترجم EPUB باستخدام Claude Code، وحصدت 1,671 مشاهدة. لم تنتشر لأن الفكرة غريبة، بل لأن كل مطوّر حاول الأمر نفسه عرف بالضبط ما يتحدث عنه.

الفكرة تبدو بسيطة: ملفات EPUB ليست سوى HTML وCSS مضغوطة في ملف ZIP. نماذج الذكاء الاصطناعي الحديثة تترجم بدقة عالية. اربط بينهما وانتهِ خلال عطلة نهاية الأسبوع.

لكن الواقع مختلف تمامًا. ما ستحصل عليه في عطلة نهاية الأسبوع هو نموذج أولي بتنسيق مكسور وفصول مشوّهة وصور مفقودة. بناء مترجم EPUB موثوق يتعامل مع كتب حقيقية هو تحدٍّ هندسي جاد.

التحدي الأول: بنية EPUB معقدة بشكل مخادع

ملف EPUB هو أرشيف ZIP يحتوي على ملفات XHTML وأنماط CSS وصور وخطوط وبيانات وصفية ونظام تنقّل. معياران (EPUB 2 وEPUB 3) يحددان كيفية تنظيم هذه العناصر، لكن الناشرين يفسّرون المعيار بطرق متباينة جدًا.

بعض الكتب تقسّم المحتوى إلى ملف لكل فصل، وأخرى تضع كل شيء في ملف XHTML واحد ضخم. جدول المحتويات قد يكون ملف NCX أو Navigation Document أو كليهما. الأنماط قد تكون مضمّنة أو مرجعية خارجية. الخطوط قد تكون مدمجة أو معتمدة على النظام.

مترجمك يحتاج للتعامل مع كل هذه الاختلافات. أي افتراض تضعه — مثل "الفصول دائمًا ملفات منفصلة" — سيُكسر بكتاب حقيقي.

ملف OPF يسرد كل مورد في الكتاب وترتيب القراءة. إذا أضاف مترجمك ملفات أو حذفها دون تحديث هذا الملف، يصبح EPUB غير صالح.

التحدي الثاني: الحفاظ على التنسيق أثناء استبدال النص

هنا تفشل معظم المشاريع. ترجمة النص هي الجزء السهل. الحفاظ على التنسيق بعد الترجمة هو الكابوس الحقيقي.

تحتاج إلى استخراج النص القابل للترجمة مع الحفاظ على وسوم HTML، ثم إعادة تعيين النص المترجم إلى الوسوم الصحيحة — رغم أن ترتيب الكلمات وبنية الجمل وطول النص تغيّرت تمامًا في اللغة الهدف. يجب الحفاظ على الروابط التشعبية دون ترجمتها، والتعامل مع كيانات HTML دون إفسادها.

إذا أرسلت HTML الخام إلى نموذج لغوي، سيخرّب الوسوم في كثير من الأحيان. وإذا أزلت HTML أولًا وترجمت نصًا عاديًا، تفقد كل التنسيق بلا رجعة.

اضرب هذا في كل نمط تنسيق في الكتاب: الحواشي، النص العلوي، الأحرف الاستهلالية الكبيرة، الاقتباسات، الشعر، المعادلات الرياضية، والجداول ذات الخلايا المدمجة.

التحدي الثالث: تقسيم الفصول ونوافذ السياق

كتاب نموذجي يحتوي على 60,000 إلى 100,000 كلمة. لا يمكن لأي نموذج لغوي حالي معالجة كتاب كامل في استدعاء واحد. يجب تقسيم الكتاب إلى أجزاء.

لكن التقسيم يجلب مشاكله:

  • فقدان السياق: أسماء الشخصيات والمصطلحات والضمائر تحتاج ترجمة متسقة عبر حدود الأجزاء
  • نقاط التقسيم: التقسيم في منتصف فقرة أو جدول يُنتج HTML مكسورًا
  • اتساق المصطلحات: نفس الكلمة قد تُترجم بشكل مختلف في أجزاء مختلفة

أدوات الترجمة المحترفة تحتفظ بقوائم مصطلحات ونوافذ سياق متداخلة بين الأجزاء.

التحدي الرابع: CSS والخطوط

الترجمة تغيّر طول النص. جملة إنجليزية من 20 كلمة قد تصبح 35 كلمة بالألمانية أو 12 حرفًا بالصينية. هذا يؤثر على التخطيط:

  • الحاويات ذات العرض الثابت تفيض أو تترك فراغات
  • تخطيطات CSS المتعددة الأعمدة تنكسر
  • التخطيط العمودي (شائع في الكتب اليابانية) يحتاج قواعد CSS مختلفة تمامًا
  • الخطوط المخصصة قد لا تحتوي على رموز اللغة الهدف
  • ارتفاع السطر والتباعد المحسّنان لنص معين لا يناسبان نصًا آخر

التحدي الخامس: النصوص الآسيوية والكتابة من اليمين لليسار

عند إضافة دعم الصينية واليابانية والكورية أو العربية، تتضاعف التعقيدات.

تحديات CJK:

  • تجزئة الكلمات — الصينية واليابانية لا تستخدمان مسافات بين الكلمات
  • نص الروبي (الفوريغانا) — أدلة النطق فوق الكانجي تحتاج للحفاظ عليها
  • قواعد الترقيم مختلفة — الصينية تستخدم ترقيمًا كامل العرض
  • الكتابة العمودية معيارية في كثير من الكتب اليابانية

تحديات الكتابة من اليمين لليسار:

  • النص العربي والعبري يتدفق من اليمين لليسار، مما يؤثر على تخطيط الصفحة بالكامل
  • النص ثنائي الاتجاه (خلط الإنجليزية والعربية في نفس الفقرة) يتطلب معالجة صحيحة لخوارزمية Unicode BiDi
  • الخط العربي متصل — شكل الحرف يتغير حسب موقعه في الكلمة. إذا قسّمت معالجة HTML كلمة بشكل خاطئ عبر الوسوم، ينكسر العرض

معظم المطورين لا يكتشفون هذه المشاكل إلا عندما يحاول مستخدم ترجمة كتاب إلى العربية ويُبلّغ أن النتيجة غير مقروءة.

التحدي السادس: التحقق من EPUB وتوافق القارئات

إنتاج EPUB صالح يبدو صحيحًا على كل تطبيق قراءة أمر صعب بشكل مفاجئ. قارئات الكتب الإلكترونية ليست متصفحات ويب — كل منها ينفّذ مجموعة فرعية مختلفة من معيار EPUB بخصوصياته.

Apple Books يعرض ميزات EPUB 3 التي يتجاهلها Kindle. معالجة CSS في Kobo تختلف عن Google Play Books. أجهزة Kindle القديمة تتطلب تحويلًا إلى MOBI. الاختبار عبر القارئات يستغرق وقتًا ويكشف أخطاء خاصة بكل منصة.

التحدي السابع: معالجة الأخطاء على نطاق واسع

ترجمة كتاب من 300 صفحة قد تتطلب أكثر من 200 استدعاء API. كل استدعاء قد يفشل. مترجمك يحتاج منطق إعادة المحاولة، وتتبع التقدم، والتحقق من المخرجات، وتقدير التكلفة.

لماذا الأداة المتخصصة هي الخيار الأفضل

كل تحدٍّ أعلاه قابل للحل. لكن حلّها جميعًا معًا — والحفاظ عليها محلولة مع تطور المعايير وتغيّر واجهات API — هو عمل بدوام كامل.

هذا بالضبط سبب وجود EPUBTranslator. بدلًا من قضاء أسابيع في بناء وتصحيح خط أنابيب خاص بك، ارفع ملفًا واختر لغة واحصل على EPUB مترجم بتنسيق سليم. الأداة تتعامل مع كل التعقيدات: تحليل البنية، الحفاظ على التنسيق، إدارة الأجزاء، تعديل CSS، دعم CJK وRTL، التحقق، واستعادة الأخطاء.

إذا كنت مطوّرًا يستمتع بالتحديات، فبناء مترجم EPUB مشروع تعليمي ممتاز. لكن إذا كان هدفك قراءة كتاب بلغة أخرى، فالأداة المتخصصة ستوفّر عليك الكثير من الوقت والإحباط. المطوّر صاحب التغريدة الشهيرة تعلّم هذا الدرس بالطريقة الصعبة — لست مضطرًا لتكرار التجربة.