كيفية إنشاء ترجمات ثنائية اللغة: لغتان في ملف SRT أو VTT واحد
أنشئ ملف SRT أو VTT ثنائي اللغة يمكن للناس قراءته: ادمج حسب التوقيت، وضع لغتين في ترجمة واحدة، واختر أي لغة تظهر في الأعلى، وشغّل أداة فحص مجانية.

لإنشاء ترجمات ثنائية اللغة، تحتاج إلى ملف ترجمة واحد موقوت، وترجمة له تحافظ على التوقيت نفسه، وترجمة واحدة لكل لحظة تحتوي على اللغتين: الأسطر الأصلية أولاً، ثم الأسطر المترجمة، تحت طابع زمني واحد. أي مترجم يكتب ملفاً ثنائياً يفعل ذلك لك، وأداة الدمج تفعله إذا كان لديك ملفان بالفعل. لا يحتاج SRT العادي إلى صياغة خاصة لذلك.
إنشاء الملف هو الجزء السهل. الجزء الأصعب هو أن التوقيت كُتب للغة واحدة. الترجمة التي تتسع لسطرين من الإنجليزية يجب الآن أن تستوعب أربعة أسطر، في نفس الثواني القليلة، فوق نفس الصورة. لذلك يقضي هذا الدليل معظم وقته في ما يجب إصلاحه بعد الدمج.
كتبنا ملف اختبار من 12 ترجمة، وأنتجنا نسخاً بالإسبانية وبالصينية وبالعربية، وكتبنا أداة فحص مجانية. جاءت الملفات من شيفرة كتابة الترجمات الخاصة بـ BookTranslator، وشُغّلت محلياً. كتبنا الترجمات يدوياً بدلاً من استدعاء نموذج، لذا تُظهر هذه الاختبارات ما يحدث للملف، وليس مدى جودة الترجمة. يحتوي README على التفاصيل. تحتاج أداة الفحص إلى Python 3 ولا شيء آخر.
إجابة سريعة: كيف تبدو الترجمة ثنائية اللغة
2
00:00:03,400 --> 00:00:06,600
There's another one at six,
but the station closes at midnight.
Hay otro a las seis,
pero la estación cierra a medianoche.
هذا SRT صالح. تحتفظ كل ترجمة برقمها وطابعها الزمني، ويظهر كل سطر نص أسفل الطابع الزمني على الشاشة معاً. يعمل WebVTT بالطريقة نفسها.
اختر الإعداد أولاً
| أنت تريد أن | استخدم | لماذا |
|---|---|---|
| تشاهد في أي مشغل تقريباً، أو ترسل ملفاً واحداً إلى شخص ما | ملف SRT مدمج واحد | إنه ملف ترجمة عادي، دون الحاجة إلى ميزة في المشغل |
| تشاهد على حاسوبك مع التحكم في كل لغة | ملفان منفصلان في مشغل يدعم مسارين | تحتفظ كل لغة بتوقيتها الخاص ويمكن نقلها أو إيقاف تشغيلها |
| تعرض اللغات بأحجام مختلفة على صفحة ويب | ملف VTT واحد مع فئة لكل لغة | يدعم WebVTT التنسيق؛ ولا يملك SRT طريقة قياسية لفعل ذلك |
| تنشر فيديو يبدو متطابقاً في كل مكان | ترجمات مدمجة في الصورة | يصبح النص جزءاً من الصورة، ولا يمكن للمشاهدين إيقاف تشغيله |
بالنسبة لمسارين، يملك mpv خيار --secondary-sid. يقول دليله إن المسار الثاني يُرسم في أعلى الشاشة افتراضياً، مما يبقي اللغتين منفصلتين. لم نختبر mpv بأنفسنا.
لحرق الترجمة داخل الفيديو، يحتاج مرشح الترجمة في FFmpeg إلى نسخة مبنية مع libass. النسخة FFmpeg 9.0.1 التي ثبّتناها لهذا الاختبار لم تكن تحتوي عليها، لذا شغّل ffmpeg -filters | grep subtitles قبل أن تخطط بناءً على ذلك. لم نختبر الحرق.
الخطوة 1: ضم لغتين في ملف واحد
إذا كان لديك ملف واحد، فترجمه بأداة تكتب ملفًا مزدوجًا. يفعل BookTranslator ذلك في كل مهمة SRT وVTT: تحصل على ملف مترجم وملف ثنائي اللغة بنفس الطوابع الزمنية، ويمكنك البدء من مترجم الترجمة. إذا كنت بحاجة إلى اختيار أداة أولاً، فراجع مقارنة برامج الترجمة.
إذا كان لديك ملفان، فاقرنهما حسب الوقت، لا حسب رقم الترجمة. هنا يحدث الخطأ في الدمج، لأن مسارين لنفس الفيديو نادرًا ما يقسمان أسطرهما بالطريقة نفسها. المسار الإسباني الثاني يقسم ترجمتين طويلتين إلى نصفين ويستبعد المؤثر الصوتي والسنة والموسيقى.
python3 check_bilingual_subs.py merge sample-source.srt sample-es-own-timing.srt -o merged.srt
القرن حسب رقم الترجمة (خيار --index في السكربت) أخطأ في 10 من أصل 12 ترجمة، بدءًا من الترجمة 2، حيث ضاع نصف النص الإسباني. وبحلول الترجمة 3 أصبحت الترجمة تنتمي إلى سطر مختلف:
3
00:00:06,800 --> 00:00:08,000
So where do we wait?
pero la estación cierra a medianoche.
القرن حسب الوقت أعطى الترجمة الصحيحة تحت 9 ترجمات، وترك 3 ترجمات بدون إسبانية، وأبلغ عن السطر الإسباني الوحيد الذي لم يتطابق مع شيء، حتى تتمكن من وضعه يدويًا. يعطي السكربت ترجمة المسار الثاني للترجمة الأولى في المسار الأول التي تتداخل معها أكثر، بشرط أن يغطي ذلك نصف طولها على الأقل. أدوات مثل submerger تدمج الملفات أيضًا؛ لم نختبرها. أيًا كان ما تستخدمه، تحقق عشوائيًا من الترجمات بعد أول انقسام.
الخطوة 2: فحص الملف
python3 check_bilingual_subs.py check sample-source.srt sample-es-bilingual.srt --max-target-cps 17
يقارن الملف ثنائي اللغة بالمصدر ويفترض أن الأسطر الأصلية تأتي أولاً، لذا شغّله قبل أن تبدل الترتيب. يحذرك إذا لم تتطابق الأسطر العلوية مع المصدر. هذا ما وجده في الملف الإسباني:
| الترجمة | الثواني | الأسطر | أحرف/ثانية الأصلية | أحرف/ثانية الإسبانية | المشكلة |
|---|---|---|---|---|---|
| 2 | 3.2 | 4 | 19.4 | 17.8 | أربعة أسطر، الإسبانية سريعة جدًا |
| 5 | 2.7 | 2 | 6.7 | 7.0 | ' في النص |
| 7 | 1.0 | 2 | 4.0 | 4.0 | نفس النص مرتين |
| 8 | 1.8 | 2 | 1.7 | 1.7 | نفس النص مرتين |
| 9 | 1.2 | 4 | 20.8 | 22.5 | أربعة أسطر، كلتا اللغتين سريعتان جدًا |
| 10 | 3.6 | 2 | 18.3 | 19.4 | كلا السطرين يتجاوز 42 حرفًا، الإسبانية سريعة جدًا |
الترجمتان 6 و12 عادتا أيضًا بأربعة أسطر. الترجمات الأربع الأخرى كانت جيدة.
حدود السرعة وطول السطر مأخوذة من Netflix، لأن أرقامها علنية ومحددة، وتختلف حسب اللغة. دليلها الإنجليزي يسمح بـ 42 حرفًا في السطر، وسطرين، وبحد أقصى 20 حرفًا في الثانية للبرامج الموجهة للبالغين. دليلها الإسباني لأمريكا اللاتينية يسمح بـ 17 حرفًا في الثانية للترجمات، ودليلها الصيني المبسط يسمح بـ 16 حرفًا في السطر و9 في الثانية. لذا استخدم --max-target-line 16 --max-target-cps 9 للصينية. تغطي تلك الأدلة لغة واحدة في كل مرة، بسطرين على الأكثر. لا نعرف معيارًا مكافئًا للغتين في ترجمة واحدة، لذا فإن الإعداد الافتراضي للمدقق بثلاثة أسطر على الشاشة، وكل ما في القسم التالي، هو حكمنا.
يطبع المدقق أيضًا رقمًا مركبًا، وصل إلى 43.3 حرفًا في الثانية في الترجمة 9. لا تحاول إصلاح ذلك الرقم. لا أحد يقرأ كل حرف من اللغتين بتركيز كامل. اعتبره مؤشرًا على الترجمات التي تستحق المراقبة.
الخطوة 3: إصلاح الترجمات ذات الأسطر الأربعة
هذا هو ثمن أربعة أسطر. في عرض الترجمة المدمج في Chromium بدقة 1280×720، شغل السطر الإنجليزي المكوّن من سطرين 10.6% من ارتفاع الإطار، وشغل نفس السطر بعد إضافة الإسبانية 21.9%.


راجع الأسطر المعلَّمة بهذا الترتيب:
- أبقِ لغة الصوت كلمة بكلمة. إذا كان الناس يستمعون إلى الأصل ويتابعون النص، فإن الأصل المختصر لم يعد يطابق ما يسمعونه.
- اختصر اللغة الأخرى إلى سطر واحد. ينخفض السطر الثاني لدينا من 17.8 حرفًا في الثانية إلى 13.1 عندما تصبح الإسبانية
A las seis hay otro; cierran a medianoche.هذا ثلاثة أسطر على الشاشة بدلًا من أربعة، ويحتفظ بالحقيقتين. - أضف وقتًا فقط إذا كانت هناك فجوة. تحقق من بداية السطر التالي قبل تحريك وقت النهاية. لدى السطر الثاني 0.2 ثانية احتياطية، وهذا لا يستحق العناء.
- ثم اترك الباقي كما هو. السطر التاسع هو
You knew?/Since March.في 1.2 ثانية. إنه يخالف حدود السرعة والأسطر، لكننا سنتركه: الفجوة البالغة 0.2 ثانية بعده صغيرة جدًا بحيث لا تفيد، ومن المرجح أن يتمكن المشاهد من استيعاب ردّين قصيرين بنظرة واحدة. ليست كل علامة خطأً.
بالنسبة للأسطر الطويلة المفردة مثل السطر العاشر، قسّم كل لغة إلى سطرين فقط إذا كان لدى السطر الوقت الكافي. وإلا فاختصر الترجمة.
إذا كنت تتحكم في العرض، يمكنك أيضًا تسهيل تمييز إحدى اللغتين. شغّل to-vtt لإعطاء كل لغة فئتها الخاصة. الملف الناتج عُرض في Chromium بحجم 80% للإنجليزية وباللون الرمادي الفاتح. هذا بالكاد يوفر مساحة (21.1% من ارتفاع الإطار بدلًا من 21.9%)، لذا فهو ليس بديلًا عن اختصار سطر. لم نختبر ما إذا كان يساعد الناس على القراءة.

يستخدم هذا فئات الأسطر في WebVTT ومحدد ::cue(). وهو مخصص للمتصفحات. قد تتجاهل مشغلات أخرى الأنماط أو ملف VTT.
الخطوة 4: قرر أي لغة تضع في الأعلى
هناك بعض الأبحاث حول هذا. في دراسة تتبع العين لعام 2026 شملت 42 متحدثًا أصليًا للإسبانية يتعلمون الإنجليزية كلغة ثانية، أمضى المشاهدون وقتًا أطول في السطر العلوي أيًا كانت لغته، وأمضوا وقتًا أطول في السطر الذي يطابق الصوت. كانت درجات الفهم أعلى عندما كانت الإسبانية، لغتهم الأولى، في الأعلى. وجدت دراسة سابقة شملت 112 متعلمًا صينيًا للإنجليزية أن الترجمة ثنائية اللغة ساعدت في الفهم بقدر ما ساعدت الترجمة بلغتهم الأولى وحدها، وتفوق كلاهما على الترجمة الإنجليزية أو عدم وجود ترجمة.
هذه دراسات فردية لمجموعات محددة من المشاهدين، لذا خذها كنقطة بداية:
- متابعة فيلم أو محاضرة من أجل مضمونها: ضع اللغة التي تقرأها أفضل في الأعلى.
- ممارسة لغة تتعلمها: ضع تلك اللغة في الأعلى واقبل أنك قد تفهم أقل إلى حد ما. الفهم هو ما قاسته دراسة 2026، وليس التعلم، لذا هذا حكمنا.
- مراجعة ترجمة: الترتيب لا يهم كثيرًا، لذا اتركه.
ملف BookTranslator ثنائي اللغة يضع الأصل دائمًا في الأعلى. لتبديله:
python3 check_bilingual_subs.py flip sample-source.srt sample-es-bilingual.srt -o translation-on-top.srt
ما يعود خاطئًا، وكيف تصلحه
هذه نتجت عن تشغيل شيفرة الترجمة في BookTranslator على ملفات الاختبار لدينا، والمدقق يعلّم أول اثنين.
- النص الذي لا يحتاج إلى ترجمة يظهر مرتين. يتم تخطي
1984و♪ ♪لعدم وجود كلمات لترجمتها، لذا يطبع الملف ثنائي اللغة كلًا منهما مرتين. احذف سطرًا واحدًا يدويًا. - قد يظهر
'في النص. اعتبارًا من نوفمبر 2026، يمكن أن يعود سطر يحتوي على وسوم تنسيق وفاصلة عليا مع فاصلة عليا مهرَّبة. أصبح سطرنا الأصلي<i>Don't answer that.</i>في الملف ثنائي اللغة، وفي اختبار VTT منفصل أصبحت ترجمة فرنسية<i>Je n'attendrai pas.</i>في الملف المترجم أيضًا. فكّ Chromium ترميزها في VTT وعرض فاصلة عليا عادية. لكن عندما حوّلنا SRT باستخدام FFmpeg، بقي'في النص الناتج، لذا افترض أن بعض المشغلات ستعرضه حرفيًا. استبدل'بـ'قبل استخدام الملف. لقد أبلغنا مهندسينا بذلك. - تتم إزالة إعدادات أسطر VTT. اختفت إعدادات الموضع مثل
line:0 align:start position:10%وكتلNOTEمن ناتج اختبار VTT لدينا، وظهرت تسميات المتحدثين على كلا السطرين. إذا كان ملف VTT لديك يعتمد على الموضع، فأعد إضافته بعد الترجمة. - يُعلَّم النص من اليمين إلى اليسار سطرًا بسطر. عادت الأسطر العربية محاطة بعلامات اتجاه Unicode. فحصنا تلميحًا واحدًا فقط، في نسخة VTT من الملف في Chromium، وظهر من اليمين إلى اليسار. الأسطر التي تمزج العربية بالأرقام، مثل التلميح رقم 10 لدينا، هي الحالة الأصعب ولم نعاينها، لذا اختبر في المشغّل الفعلي الذي تستخدمه. لا توجد طريقة أخرى في SRT لضبط الاتجاه. يغطي دليلنا للنصوص من اليمين إلى اليسار القضايا الأوسع المتعلقة بالكتب.
إذا كان المصدر بصيغة ASS أو SSA، فإن مخرجات BookTranslator ثنائية اللغة تضيف السطر المترجم كحدث ثانٍ بالنمط والتوقيت نفسيهما، وهو هيكل مختلف. يشرح دليل ترجمة ترجمات ASS كيفية تركيب تلك الملفات. وإذا بدت الأحرف المشكولة تالفة في أي من اللغتين، فالمشكلة عادةً في ترميز الملف، وهو ما يغطيه دليل ترميز الترجمة.
قبل مشاركة الملف
- شغّل أداة الفحص وراجع كل تلميح تم الإشارة إليه.
- ابحث عن
'و&و"واستبدلها. - احذف الأسطر المكررة الخاصة بالمؤثرات الصوتية والأرقام والموسيقى.
- شاهد أكثر الدقائق ازدحامًا في المشغّل الذي سيستخدمه مشاهدوك، وبحجم الشاشة الذي سيستخدمونه.
- تحقق من أن الأسطر السفلية لا تغطي النص الظاهر على الشاشة في الفيديو.
- اقرأ الترجمة في سياقها. يغطي سير عمل ترجمة الترجمة بالذكاء الاصطناعي كيفية مراجعتها.
هل لديك ملف SRT أو VTT جاهز؟ ارفعه إلى مترجم الترجمة واطّلع على السعر قبل الدفع. عند الانتهاء، نزّل الملف ثنائي اللغة مع الملف المترجم. ثم شغّل أداة الفحص عليه، لأن عدد الأسطر في مهمة حقيقية يعتمد على كيفية تقسيم النموذج لكل تلميح مترجم.
مقالات ذات صلة





