انتقل إلى المحتوى
Free Subtitle Converter
اللغة
سمة الألوان
ادعمنا

شرح ترجمات XML: TTML وDFXP وIMSC

ما هي ملفات ترجمة TTML وDFXP وIMSC، وكيف تعمل توقيتاتها، وما الذي يقرؤه منها محوّل هذا الموقع بالضبط وما الذي يستبعده.

بقلم Syed Peera Saheb · تاريخ النشر

الإجابة المختصرة

TTML وDFXP وIMSC ملفات ترجمة بصيغة XML مبنية على لغة Timed Text Markup Language من W3C. وDFXP اسم أقدم لـ TTML، وIMSC ملف تعريف منها يُستخدم في البث عبر الإنترنت والبث التلفزيوني.

إذا كان لديك ملف ترجمة ‎.ttml أو ‎.dfxp أو ‎.xml وتحتاج إلى SRT أو VTT، فيستطيع المحوّل في هذا الموقع قراءة نصه وتوقيتاته وفواصل أسطره والمائل والعريض والتسطير. لكنه لا يحتفظ بالمواضع ولا الألوان ولا الخطوط، ولا يقرأ كل ملف XML يحتوي على ترجمات.

عائلة واحدة بأسماء عدة

TTML معيار من W3C للنص الموقّت. وأثناء كتابته كان يُسمى DFXP، أي Distribution Format Exchange Profile، ولا تزال مواصفة TTML 1 تشير إلى أن الاسم القديم باقٍ في أسماء ملفات التعريف وامتدادات الملفات. وعمليًا يحمل ملف ‎.dfxp وملف ‎.ttml النوع نفسه من المستندات. وTTML2 هو الإصدار الثاني ويضيف مزيدًا من الميزات.

لأن TTML صيغة واسعة، تعرّف القطاعات المختلفة ملفات تعريف (profiles): مجموعات فرعية تحدد الميزات التي يجوز للملف استخدامها. ومن أشهرها IMSC، أي ملف تعريف Internet Media Subtitles and Captions. وتعرّف إصداراته الحالية ملف تعريف نصيًا فقط وآخر للصور فقط. أما EBU-TT فملف تعريف تستخدمه هيئات البث الأوروبية، ويُستخدم SMPTE-TT في البث الأمريكي. وكلها تبدأ بعنصر جذر <tt>.

كيف يبدو ملف TTML

يتكون مستند TTML من رأس (head) ومتن (body). يمكن أن يحدد الرأس أنماطًا، مثل الخط أو اللون، ومناطق (regions)، وهي مساحات من الشاشة. ويضم المتن فقرات، أي عناصر <p>، لكل منها وقت بداية ووقت نهاية ونص الترجمة. يبدأ العنصر <br/> سطرًا جديدًا، وتُستخدم عناصر <span> لتنسيق أجزاء من السطر أو توقيتها.

ملف TTML قصير
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xmlns:ttp="http://www.w3.org/ns/ttml#parameter" ttp:tickRate="10000000">
  <head>
    <styling><style xml:id="it" tts:fontStyle="italic" tts:color="yellow"/></styling>
    <layout><region xml:id="top" tts:origin="10% 5%" tts:extent="80% 20%"/></layout>
  </head>
  <body>
    <div>
      <p begin="12000000t" end="35000000t" region="top">Hello<br/><span style="it">there</span></p>
    </div>
  </body>
</tt>

كيف تعمل توقيتات TTML

تتيح TTML عدة طرق لكتابة الوقت. تبدو أوقات الساعة مثل 00:00:01.200، أو 00:00:01:05 مع رقم إطار في النهاية. أما الأوقات النسبية فرقم مع وحدة: 1.2s أو 1200ms أو 30f للإطارات أو 12000000t للنبضات. والنبضات شائعة في ملفات خدمات البث؛ وتحدد السمة tickRate في العنصر الجذر عدد النبضات في الثانية، فبمعدل نبضات قدره 10,000,000 يساوي 12000000t ‏1.2 ثانية.

يمكن أن تكون الأوقات نسبية أيضًا. فقد يكون لعنصر div وقت begin خاص به تُضاف إليه أوقات الفقرات داخله، ويمكن أن تحدد الفقرة مدةً بدلًا من وقت نهاية، ويمكن أن تأخذ الفقرة التي لا أوقات لها أوقاتها من عناصر span فيها. ولهذا كثيرًا ما تخطئ أدوات البحث والاستبدال البسيطة في توقيتات TTML.

ما يقرؤه هذا الموقع

يتعرف المحوّل على TTML من عنصرها الجذر <tt>، أيًّا كان امتداد الملف، لذا تُفتح ملفات ‎.ttml و‎.dfxp و‎.xml كلها. يصبح المثال أعلاه ترجمة واحدة من 1.2 إلى 3.5 ثانية بسطرين، الثاني منهما مائل. وبالتفصيل، يقرأ:

  • أوقات ساعة بكسور أو إطارات، وأوقات نسبية بالساعات والدقائق والثواني وأجزاء الثانية والإطارات والنبضات.
  • الإعدادات frameRate وframeRateMultiplier وsubFrameRate وtickRate في العنصر الجذر. وفي غياب معدل النبضات، يستنتجه من معدل الإطارات، أو يستخدم نبضة واحدة في الثانية، كما تصف المواصفة.
  • begin وend وdur على الفقرات وعناصر span، مع جمع أوقات begin الخاصة بعنصر body وعناصر div المحيطة.
  • فواصل الأسطر مكتوبة على هيئة <br/>.
  • المائل والعريض والتسطير، سواء حُددت مباشرة على عنصر أو عبر نمط مسمّى.
  • عناصر ذات بادئة نطاق أسماء، مثل <tt:p> في EBU-TT وبعض ملفات IMSC. وتُتخطى البيانات الوصفية، مثل الملاحظات الموجهة إلى المحررين، ولا تصبح نص ترجمة أبدًا.

ما يستبعده

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

بعض ملفات الترجمة بصيغة XML ليست TTML أصلًا، وتقول الصفحة إنها لا تتعرف عليها كترجمة. ومن ذلك ملفات timedtext XML الخاصة بـ YouTube، التي يكون عنصرها الجذر <timedtext> أو <transcript> بدلًا من <tt>. ولا تحتوي ملفات IMSC القائمة على الصور، التي تخزّن صورًا للنص، على أي نص يمكن قراءته. ولا تُعالَج أنماط التوقيت غير المعتادة، مثل رموز SMPTE الزمنية بنظام drop-frame، معالجة خاصة، لذا قارن بضع ترجمات قرب نهاية المعاينة بالفيديو.

ما يكتبه

عند التحويل إلى TTML أو DFXP، يكتب المحوّل مستند TTML 1 بسيطًا: تصبح كل ترجمة فقرة بوقتي begin وend بصيغة الساعة وبأجزاء من الألف من الثانية، وتصبح فواصل الأسطر <br/>، ويتحول المائل والعريض والتسطير إلى عناصر span بسمة التنسيق المقابلة. لا يوجد head بأنماط أو مناطق، لذا تستخدم المشغّلات مظهرها الافتراضي. ويكتب خيار DFXP المستند نفسه بامتداد ‎.dfxp.

تُترك سمة اللغة في العنصر الجذر فارغة، لأن المحوّل لا يستطيع معرفة لغة ترجمتك. وتشترطها بعض المنصات. فإذا كانت منصتك كذلك، فافتح الملف في محرر نصوص واملأ xml:lang برمز مثل en أو es قبل رفعه.

الملف الذي يكتبه المحوّل من المثال
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="">
  <body>
    <div>
      <p begin="00:00:01.200" end="00:00:03.500">Hello<br/><span tts:fontStyle="italic">there</span></p>
    </div>
  </body>
</tt>

تحويل TTML أو DFXP إلى SRT أو VTT

يستغرق التحويل بضع ثوانٍ، ويبقى الملف على جهازك.

  • افتح محوّل TTML إلى SRT أو DFXP إلى SRT، أو المحوّل الرئيسي، واختر ملف ‎.ttml أو ‎.dfxp أو ‎.xml.
  • راجع الملخص. فهو يخبرك بعدد الترجمات التي عُثر عليها، وما إذا كانت هناك فقرات بتوقيتات تعذّرت قراءتها.
  • اختر صيغة الإخراج، مثل SRT أو VTT، وتصفّح المعاينة.
  • شغّل النتيجة مع الفيديو وقارن ترجمة قرب البداية بأخرى قرب النهاية، تحسّبًا لاستخدام الملف نمط توقيت لا يتعامل معه المحوّل.
  • نزّل الملف. يُحفظ بترميز UTF-8.

متى تستخدم TTML، ومتى لا تستخدمها

استخدم TTML أو DFXP عندما تطلبها منصة أو خدمة بث أو هيئة بث؛ فمواصفات التسليم لديها تذكر عادةً ملف تعريف، وقد يستوفيه ملف TTML 1 بسيط وقد لا يستوفيه. وللاستخدام اليومي في المشغّلات وبرامج التحرير ومنصات الفيديو، فإن SRT أو WebVTT أبسط وأوسع دعمًا. وإذا تلقيت ملف TTML وتريد فقط مشاهدته أو تحريره، فحوّله إلى SRT.

احتفظ بالملف الأصلي في كل الأحوال. فالتحويل إلى SRT يُسقط المناطق والتنسيق نهائيًا، فإذا احتجت لاحقًا إلى تسليم TTML من جديد بمواضعه الأصلية، فستريد المصدر لا ملف TTML أُعيد بناؤه من SRT.

أسئلة شائعة

هل DFXP هي TTML نفسها؟ من الناحية العملية، نعم. كان DFXP الاسم المستخدم أثناء إعداد مسودة TTML، ويتعامل المحوّل مع الاثنين بالطريقة نفسها.

لماذا يقول المحوّل إن ملف ‎.xml ليس ملف ترجمة؟ إما لأنه ليس TTML، مثل timedtext XML من YouTube، وإما لأنه لا يحتوي على عنصر جذر <tt>. ولا يقرأ المحوّل تلك الملفات.

هل يحتفظ ملف SRT المحوَّل بموضع كل ترجمة؟ لا. لا توجد في SRT طريقة قياسية لتحديد مواضع الترجمات، ولا ينقل المحوّل مناطق TTML إلى أي صيغة.

افتح محوّل الترجمة
اشترِ لي قهوة