كل سبب من الأسباب الخمسة أدناه يخفق على النحو نفسه: في صمت. لا نافذة خطأ، ولا تحذير في سجلّ، ولا نصّ أحمر. فصيغة الترجمة لا حقل إصدار فيها ولا مجموع تحقّق ولا سبيل إلى إعلان أنها معطوبة، فالمشغّل الذي لا يستطيع قراءة واحدة لا شيء لديه ليبلّغ عنه فلا يعرض شيئًا — وهو ما لا يتميّز عن ملفّ لا مقاطع فيه.
ترتيبها بحسب كم مرّة يتبيّن أنها الجواب.
1. الفاصل خطأ بالنسبة إلى الصيغة
هذا هو. افتح الملف في محرّر نصوص وانظر أي سطر توقيت.
يكتب SubRip 00:00:01,000 --> 00:00:04,000. يكتب WebVTT 00:00:01.000 --> 00:00:04.000. فاصلة في إحداهما، ونقطة في الأخرى، وذلك المحرف الواحد هو كل الفرق بين ملفّ يعمل وشاشة فارغة.
يهمّ ذلك لأن تغيير الاسم ليس تحويلًا. يجد أحدهم أن المتصفّح لا يقبل ملفّ .srt عنده، فيعيد تسميته .vtt، فيقبل المتصفّح الملف ويقرؤه ولا يجد سطرًا يعرفه توقيتًا فلا يعرض شيئًا. الملف محمَّل. فيه صفر مقاطع. الجملتان صحيحتان معًا، ولا واجهة لها موضع تقول فيه ذلك.
الفخّ نفسه يعمل في الاتّجاهين وعبر صيغتين أخريين. فملف .sbv من يوتيوب فيه فاصلة كذلك — لكن بين التوقيتين لا داخلهما — فالأداة التي تبحث عن الفاصلة بدل ما على جانبيها تقرأ كل مقطعين مقطعًا واحدًا. أمّا ملف .ass من Aegisub فلا سهم فيه أصلًا.
العلاج: حوّل ولا تعد التسمية. المحوّل يعالج SubRip وWebVTT في الاتّجاهين؛ ولـASS وSBV صفحتاهما لأن لكلٍّ منهما فخًّا ثانيًا خاصًّا به.
2. ترويسة WebVTT غائبة
يجب أن يبدأ ملف WebVTT بكلمة WEBVTT وحدها في السطر الأوّل. لا بعد سطر فارغ، ولا بعد تعليق، ولا بعد علامة ترتيب بايتات: أوّلًا.
الملف الذي لا يحملها ليس ملف WebVTT، مهما كان اسمه ومهما كان ما في بقيّته. تتشدّد المتصفّحات في هذا على نحو لا تكاد تتشدّد فيه في شيء آخر، وهو ثاني ما تفحصه بعد الفاصل — لأن المحوّل الذي يصلح النقاط وينسى الترويسة ينتج ملفًّا يبدو صحيحًا تمامًا ولا يعرض شيئًا.
3. ثلاثة بايتات غير مرئيّة في المقدّمة
إن كانت الترجمة الأولى لا تظهر أبدًا وكل ما سواها يظهر، فكفّ عن النظر في التوقيتات. هذه علامة ترتيب بايتات.
هي ثلاثة بايتات — EF BB BF — تكتبها بعض المحرّرات وبرنامج المفكّرة في ويندوز في أوّل الملف إعلانًا عن الترميز. لا شيء يعرضها. ليست مسافة ولا سطرًا جديدًا ولا محرفًا تضع المؤشّر بجانبه. ما تفعله هو أنها تلتصق بأوّل ما يليها، وهو في ملف SubRip رقم المقطع الأوّل. فيصير 1 شيئًا ليس 1، فتخفق تلك الكتلة في القراءة، ويُسقَط المقطع الأوّل في صمت.
سبب صعوبة العثور على هذا بالنظر أن الملف سليم. فكل محرّر يعرض ما تتوقّعه بالضبط. البايتات الثلاثة هي البايتات الثلاثة نفسها التي تكسر ملف CSV، من الجهة الأخرى: هناك تجعل Excel يقرأ الملف قراءةً صحيحة، وهنا تكلّفك مقطعًا.
4. الترميز ليس UTF-8
إن ظهرت الترجمات وكانت المحارف المشكولة خاطئة — é حيث ينبغي é، أو صفٌّ من علامات الاستفهام حيث ينبغي عربيّة أو سيريليّة — فالملف غير محفوظ بترميز UTF-8، أو يُقرأ على أنه ليس كذلك.
ملف الترجمة لا سبيل له إلى إعلان ترميزه. لا حقل لذلك في SubRip ولا حقل موثوق في WebVTT، فعلى المشغّل أن يخمّن من البايتات. المشغّلات الحديثة تخمّن UTF-8 وتصيب في معظم الأحيان؛ والملف المحفوظ قبل عشرين سنة بترميز إقليمي ملفٌّ ستخطئ فيه. إعادة الحفظ بـUTF-8 هي العلاج الدائم، وهي الوحيد — فكل مقاربة سواها إعدادٌ في مشغّل بعينه يجب أن يُعاد في كل جهاز.
5. المشغّل لم يختر المسار قطّ
السبب غير البرّاق، وهو يكلّف ساعات أكثر ممّا تكلّفه علامة ترتيب البايتات.
تربط معظم المشغّلات ملف الترجمة بالفيديو باسم الملف. فيجب أن يجلس ملف الترجمة في المجلّد نفسه وأن يشارك الفيديو اسمه بالضبط، ورمز اللغة والامتداد بعده: film.mkv وfilm.en.srt. محرف واحد فرقًا — (1) شاردة من تنزيل ثانٍ، أو وسم إصدار مختلف — فلا يربط المشغّل بينهما، ثم لا يبلّغ عن شيء، لأنه بحسب علمه لا ترجمات ليبلّغ عنها.
حتى حين يُعثر عليه، يجب تشغيل المسار. فالملف بعدّة مسارات مضمَّنة يبدأ بأيّها تعلّمه الحاوية افتراضيًّا، وكثيرًا ما لا يكون مسارك.
الترتيب الذي تفحص به
الخمسة معًا تأخذ نحو دقيقة، والترتيب يهمّ لأن كل واحد يستبعد الذي يليه.
- هل يظهر شيء أصلًا؟ إن ظهرت مقاطع ولم تظهر أخرى فليست مشكلة صيغة — اذهب إلى علامة ترتيب البايتات، أو إلى كتلة معطوبة في وسط الملف.
- افتح الملف في محرّر نصوص. هل يقول السطر الأوّل
WEBVTTحيث ينبغي؟ هل تستعمل أسطر التوقيت الفاصل الذي يقتضيه الامتداد؟ - هل المحارف صحيحة في المحرّر؟ إن كانت خاطئة هناك أيضًا فهو الترميز لا المشغّل.
- هل اسم الملف يطابق الفيديو؟ بالضبط، محرفًا محرفًا، قبل رمز اللغة.
- والآن فقط انظر في التوقيت. فالترجمات الموجودة غير المرئيّة عطلٌ غير الترجمات الموجودة في اللحظة الخطأ — وإن كان المقطع يظهر عُشر ثانية فقد ظهر وفاتك.
الأخير هو الحدّ بين هذه المقالة والتالية. الترجمات التي تظهر في الوقت الخطأ لها سببان وعلاجان، وتطبيق الخطأ منهما يزيد الملف سوءًا بدل أن يتركه كما هو.
لماذا لا يبلّغ شيء من هذا عن خطأ
يستحقّ أن تفهم شكل المشكلة لا القائمة وحدها، لأن القائمة لن تغطّي الحالة السادسة.
ملف الترجمة نصّ صِرف عليه عُرف. لا ترويسة تعلن أي عُرف، ولا رقم إصدار، ولا حقل طول، ولا شيء يُقاس الملف به على نفسه. القارئ الذي يقرؤه له حالتان اثنتان لا غير: هذا السطر يشبه مقطعًا، أو لا يشبهه. فالملف الذي لا يشبه فيه شيء مقطعًا هو عند القارئ ملفٌّ صحيح لا مقاطع فيه — وذلك شيء مسموح تمامًا لملف ترجمة أن يكونه.
فالخطأ ليس مكتومًا. بل لا يُكتشف قطّ، لأنه لا يعلم شيء في أي لحظة أن مقطعًا كان متوقَّعًا. لهذا كل علاج هنا شيء تجده بالنظر في الملف لا بقراءة رسالة، ولهذا فالأداة التي تقول لك ما قرأته — قُرئ بصيغة SBV، 3 مقاطع، 1 متخطًّى — تفعل الشيء الوحيد الذي لا تستطيع الصيغة أن تفعله لنفسها.