إزالة وسوم ASS من الترجمة
أو ألصق نص الترجمة
الخيارات
صندوق واحد وسبعة خيارات، ولكل خيار صفحته. وItalic وBold وUnderline وColor تزيل ذلك النوع الواحد من النطاق وتترك بقية تنسيق السطر. وAll تزيل كل نطاق تمثله الأداة — الأربعة وتوقيت الكاريوكي — وتترك كل ما عداها في النص. وHTML تفعل الشيء نفسه ثم تكنس أيضا ترميز الأقواس الزاوية المتبقي في النص لأن الأداة لا تمثله، مثل وسوم المتحدث <v Bob> و<c.className> في VTT. وASS تفعل ذلك لكتل التجاوز بدلا من ذلك، فتمحو أكواد {…} التي لم تعرف وقت القراءة، مثل {\fad(500,500)}. وهذه الصفحة تملأ الصندوق بالخيار الذي يسميه عنوانها ولا تسرد غيره.
معدل الإطارات الذي تحسب به التوقيتات. في صفحات الصيغ هو ما يحتاجه MicroDVD، لأنه يخزن التوقيت أرقام إطارات. وفي صفحات معدل الإطارات هو المعدل الذي وقت به الملف — النسخة التي صنعت لها الترجمة — ويأخذ الصندوق الثاني في الصفحة معدل الفيديو الذي ستستخدمها معه. والشائعة 23.976 و24 و25 و29.97 و30 و50 و59.94 و60. والخطأ فيه يزحزح الخط الزمني كله، وفي صفحات معدل الإطارات يزحزحه بنسبة لا بمقدار ثابت.
تمسح هذه الصفحة أكواد التجاوز من ملف ASS أو SSA: نطاقات التنسيق، وتوقيت الكاريوكي، وكتل التأثيرات المتبقية، والتموضع. وما يعود نص عادي موقوت — الكلمات وتوقيتات المقاطع وبنية الملف نفسها، مع جلوس الأسطر حيث يضعها نمطها المسمى.
صيغة ASS هي التي تستطيع أن تقول أكثر من غيرها، ومعظم ما تقوله مكتوب أكواد تجاوز داخل نص السطر. بعضها تنسيق يعرفه المحرك — {\i1} و{\b1} و{\c&H...&} و{\k50} — وبعضها تأثيرات لا يعرفها: التلاشي والحركة والتحجيم والضبابية، وكلها كتل بالشكل نفسه. تترك تلك الكتل غير المعروفة في النص أثناء قراءة الملف عن قصد، لأن أكل ترميز لا يستطيع القارئ فهمه ضياع للبيانات. وهذه هي الصفحة التي تمسحها.
يمسح التموضع هنا كذلك، وهو الشيء الوحيد في هذه الصفحة الذي يتجاوز إزالة الترميز: فموضع السطر يخص المقطع بكامله لا نصه وحده، فيعود السطر الموضوع إلى حيث يضعه نمطه المسمى. بذلك يصير الناتج نصا عاديا بحق. أما جدول الأنماط المسمى فيبقى كما هو — فالمقطع الذي نمطه عريض يظل عريضا، لأن العريض يخص النمط لا النص.
يبقى كود واحد، والصفحة تقول ذلك بدل أن تدعك تكتشفه: محاذاة التسع خلايا مثل {\an8} تحفظ كما كتبت. فهي ترمز إلى الموضع الرأسي والأفقي معا، وفكرة المحرك عن المحاذاة تغطي اليسار والوسط واليمين فقط، فلا مكان يحفظ النصف الآخر، وفهمها نصف فهم يعني ملفا يعود خاطئا بعد إعادة التحويل. لا يرفع شيء؛ وملف لا يوجد فيه ما يحذف يعود كما دخل.
أمثلة
تنسيق وكتلة تأثير متبقية
الإدخال
[Script Info]
Title: fade
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\fad(500,500)}{\i1}hello{\i0}
الناتج
[Script Info]
Title: fade
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,hello
{\fad(500,500)} يطلب من المشغل أن يلاشي السطر دخولا وخروجا خلال نصف ثانية في كل اتجاه. لم يعرفه المحرك يوما، فبقي في النص حتى مسحته هذه الخطوة، وذهب زوج المائل إلى جانبه وترك السطر نفسه. ولا يسجل الناتج أن التلاشي كان موجودا.
سطر موضوع في موضع محدد
الإدخال
[Script Info]
Title: position
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\pos(100,200)}hello there
الناتج
[Script Info]
Title: position
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,hello there
لم يعد السطر يقال له أين يجلس، فيرتد إلى حيث يضعه النمط المسمى على الحدث. هذا هو الجزء الوحيد من الخطوة الذي ليس مجرد إزالة ترميز، ولهذا تكون هذه الصفحة الصحيحة لملف يجب أن يصير عاديا لا مجرد منزوع التوكيد.
محاذاة التسع خلايا التي تبقى
الإدخال
[Script Info]
Title: alignment
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an8}hello there
الناتج
[Script Info]
Title: alignment
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an8}hello there
يعود هذا السطر دون تغيير، وليس ذلك سهوا. {\an8} يقول أعلى ووسط في وقت واحد، بينما محاذاة المحرك تغطي اليسار والوسط واليمين فقط، فلا موضع للنصف الرأسي، ويحفظ الوسم كاملا بدل فهمه نصف فهم. كود الموضع يزول، وهذا يبقى.
الأسئلة الشائعة
لماذا ينجو وسم المحاذاة {\an8} من إزالة أكواد التجاوز؟
لأن المحرك لا يستطيع تمثيله بدقة. فالمحاذاة مثل {\an8} تسمي خلية من تسع، تجمع موضعا أفقيا وآخر رأسيا، بينما محاذاة المحرك لا تعرف إلا اليسار والوسط واليمين. وحفظ النصف الأفقي وحده يجعل الملف يعود خاطئا عند إعادة التحويل، لذلك يحفظ الوسم كما هو. كود الموضع يزول، وكود المحاذاة يبقى، والصفحة تخبرك بذلك بدل أن تتركك تلاحظه.
ما كتلة التجاوز التي تبقى في نص السطر داخل ملف ASS؟
هي مجموعة تعليمات تكتب بين قوسين معقوفين داخل نص السطر وتطلب من المشغل فعل شيء بذلك السطر: تغيير التنسيق أو تحريكه أو تلاشيه أو نقله. يعرف المحرك المجموعة الشائعة من التنسيق ويقرأها إلى بنيته، لكنه يترك الباقي في موضعه — التلاشي والحركة والضبابية تبقى كما هي ولا تحذف، لأن طرح ترميز لا يفهمه القارئ ضياع صامت للبيانات. وهذه الصفحة هي التي تذهب بها أخيرا.
هل تغير إزالة أكواد التجاوز توقيت المقاطع أو نصها؟
لا. لا يتغير نص الكلمات ولا زمنها؛ الذي يزول هو الأكواد وحدها. فتبقى لكل مقطع بدايته ونهايته بالميلي ثانية نفسها، ويبقى ترتيبه في الملف. وفواصل الأسطر داخل المقطع جزء من المقطع لا من تنسيقه، فتبقى حيث وضعها الملف. الذي يتغير هو التعليمات المحيطة بالكلمات، وفي بعض الحالات موضع السطر على الشاشة.
هل يظل الناتج يعمل بشكل صحيح في المشغل بعد زوال أكواد التجاوز؟
نعم، وبشكل أكثر توقعا من قبل. كود التجاوز الذي لا يفهمه المشغل يتجاهل في أفضل الأحوال وقد يقرأه قراءة خاطئة في أسوأ الأحوال، والمشغلات تختلف خصوصا في أكواد التأثير. أما النص العادي الموقوت فلا يحمل هذا الالتباس. وإن كان الملف يعتمد على التموضع لوضع تسمية فوق شيء بعينه في اللقطة، فذلك الموضع ذهب وسيجلس السطر حيث يضعه النمط.
هل تحذف هذه الصفحة الأنماط المسماة من جدول أنماط ASS؟
لا — يبقى جدول الأنماط والنمط الذي يشير إليه كل مقطع كما كانا. تعمل الصفحة على الأكواد المكتوبة داخل نص السطر، فالمقطع الذي نمطه المسمى عريض يظل عريضا بعدها، لأن العريض يأتي من النمط لا من نص السطر. وتنظيف جدول الأنماط مهمة مختلفة ولا توجد لها صفحة بعد.
هل تصلح صفحة حذف أكواد التجاوز لملف SRT أم لملفات ASS و SSA وحدها؟
يمكنك إفلات أي صيغة يقرأها الموقع فيها. وفي ملف SRT أو WebVTT يؤدي النصف الأول عمله — تذهب نطاقات التنسيق — ولا يجد المسح شيئا، لأن كتل الأقواس المعقوفة لا تظهر في تلك الصيغ. والملف الذي لا تنسيق فيه ولا كتل أقواس يعود كما دخل، وهي النتيجة الصادقة لتشغيل بلا عمل.