تحويل TTML إلى CSV
أو ألصق نص الترجمة
ما يغيره هذا التحويل
3 أشياء تسقط أو تحتاج قرارا
- التنسيق
كل التنسيق (العريض والمائل واللون والتحديد والظل)
- الموضع
الموضع على الشاشة (يعود كل مقطع إلى الموضع الافتراضي)
- محتوى خاص بالصيغة
محتوى تحفظه صيغة المصدر خارج مقاطعها (كتل خارج المقاطع ونص ترويسة وإعدادات لكل مقطع وأحداث معلقة) — لا مكان له في صيغة الهدف
تأتي هذه القائمة من مصفوفة القدرات لهاتين الصيغتين، لا من الملف الذي حملته. وقد يفقد ملف بعينه أكثر إن استخدم ميزات تسمح بها الصيغة ولا تمثلها المصفوفة.
المسار الذي تشرحه هذه الصفحة واضح: من TTML إلى CSV. أرقام التوقيت متطابقة، والصياغة مختلفة: begin="00:00:01.250" في TTML و00:00:01.250 في CSV. المقاطع تخرج من TTML وتبقى كما هي في CSV.
الفرق بين TTML وCSV ليس شكليا هنا: التنسيق، الموضع على الشاشة ومحتوى الصيغة لا تجد موضعا في CSV. وهذا ما يذكره التقرير.
المقاطع الفارغة تعالج بصمت. وما لا يفهم يظهر في تقرير CSV. إيقاف الدفعة لا يضيع ما اكتمل. كل ناتج CSV محفوظ. الحساب كله في تبويب المتصفح. لا رفع إلى خادم.
أمثلة
ملف TTML نموذجي محول إلى CSV
الإدخال
<?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="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
الناتج
start,end,text
00:00:01.000,00:00:03.500,Hello <i>there</i>.
00:00:03.500,00:00:06.000,"How are you?
Fine, thanks."
المقارنة تظهر التنسيق، الموضع على الشاشة ومحتوى الصيغة؛ وما عدا ذلك يطابق سطرا بسطر بين TTML وCSV.
ملف TTML غير مرتب يخرج بصيغة CSV
الإدخال
<?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:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
الناتج
start,end,text
00:00:01.500,00:00:03.500,Loaded from an offset and a duration.
00:00:04.000,00:00:06.500,A coarser clock spelling.
00:00:07.000,00:00:08.480,"Frames, at 25fps."
00:00:09.000,00:00:11.000,"<font color=""#FF0000"">Half-open</font> and Tom & Jerry."
الملفات الحقيقية تصل هكذا: نهايات أسطر مختلطة. وفراغات وحقول فارغة. المحول يصلح أو يسجل، ولا يخفي شيئا عند إنتاج CSV من TTML.
الأسئلة الشائعة
كيف يحسب CSV بداية كل مقطع ونهايته بعد قراءة TTML؟
قارن begin="00:00:01.250" في TTML ب 00:00:01.250 في CSV لترى الفرق في الكتابة وحدها. لا تقرب قيمة ولا تستنتج نهاية: التوقيت في CSV منقول من TTML كما هو.
هل يخسر ملف TTML شيئا عندما يصبح CSV؟
ما لا ينتقل من TTML إلى CSV هو التنسيق، الموضع على الشاشة ومحتوى الصيغة. التقرير يعرضها بندا بندا، والنص نفسه يصل كاملا.
هل يصل النص من TTML إلى CSV بلا تغيير؟
لا وسوم في CSV: ما كان وسما في TTML يصبح نصا عاديا أو يسقط. والنص يصل كاملا بلا وسوم.
ما الذي أخسره إذا رجعت من CSV إلى TTML؟
نعم. الاتجاه العكسي من CSV إلى TTML لا يسقط شيئا. الدورة تعيد كل شيء كما كان.
هل يحتاج تحويل TTML إلى CSV اتصالا بالإنترنت؟
المعالجة محلية بالكامل: TTML لا يغادر جهازك، والناتج CSV ينشأ في الذاكرة نفسها.
هل تنزل نتائج TTML بصيغة CSV مجتمعة أم ملفا ملفا؟
الدفعة مدعومة: ملفات TTML تمر بالتتابع. وما اكتمل من CSV محفوظ. الإلغاء متاح في أي لحظة.
ما البديل إن كنت أحتاج تفاصيل TTML التي يسقطها CSV؟
احفظ ملف TTML الأصلي؛ هو النسخة الكاملة. CSV ناتج عملي من TTML للعرض أو المشاركة، وليس أرشيفا كاملا.