لقيت أن أفضل مخرج لما تمارسه هو التفكير عمليًا: لا تغيّر أرقام التوقيت في ملف الترجمة نفسه لأن مشغلات الترجمة تعتمد على صيغة أرقام ASCII الدقيقة لكي تقرأ الوقت، وتغييرها إلى أرقام عربية-هندية (٠١٢...) سيكسر التزامن في معظم المشغلات. عمليًا، الحل الآمن هو أن تحتفظ بتوقيت المشهد كما هو (مثلاً "00:01:23,450 --> 00:01:25,600")، لكن تضيف داخل نص الترجمة سطرًا مرئيًا يعرض نفس التوقيت بالأرقام العربية، أو تضع طابعًا مرئيًا مدموجًا في الفيديو عند الحرق.
أنصح بهذه الخطوات العملية: أولًا افتح ملف SRT أو ASS في محرر مثل Subtitle Edit أو Aegisub. ثانيًا لا تلمس سطر التوقيت، بل قم بكتابة سطر جديد داخل كل كتلة ترجمات (أو استبدل النص الحالي) ليعرض التوقيت بصيغة قابلة للقراءة: حول "00:01:23" إلى "٠٠:٠١:٢٣" باستخدام تحويل أحادي الأحرف. يمكنك عمل هذا يدويًا مرة أو آليًا عبر سكربت بسيط. ثالثًا احفظ الملف بترميز UTF-8 (يفضل BOM لبعض المشغلات) وتأكد من اختيار خط يدعم العربية والأرقام العربية-الهندية عند الحرق.
كمثال عملي، هذا سكربت بايثون بسيط لتحويل كل كتلة لتركيز يُظهِر وقت البداية بالأرقام العربية دون تغيير التوقيت الفعلي في الملف:
import re
mapping = str.maketrans('0123456789', '٠١٢٣٤٥٦٧٨٩')
def toarabicdigits(s):
return s.translate(mapping)
with open('in.srt', 'r', encoding='utf-8') as f:
blocks = f.read.strip.split('
')
outblocks = []
for b in blocks:
lines = b.split('
')
if len(lines) >= 2:
time = lines[1].split(' --> ')[0] # نأخذ وقت البداية
arabtime = toarabicdigits(time)
# نضع الوقت العربي كنص ترجمة (أو تدمجه مع النص الموجود)
newtext = arabtime + '
' + '
'.join(lines[2:])
outblocks.append('
'.join([lines[0,lines[1,newtext]))
else:
outblocks.append(b)
with open('converted.srt', 'w', encoding='utf-8-sig') as f:
f.write('
'.join(outblocks))
هذا يولد ملفًا جديدًا حيث يَظهر التوقيت العربي كنص في كل سطر دون العبث بتوقيت المشغل. بعد ذلك يمكنك استخدام ffmpeg لحرق الترجمة داخل الفيديو (burn-in) بحيث تظهر الأرقام العربية دائمًا:
ffmpeg -i input.mkv -vf "subtitles=converted.srt:fontsdir=/path/to/fonts" -c:a copy output.mkv
نقاط مهمة: استخدم خطًا عربيًا يدعم الأرقام (مثل خط نِسخ جيد أو أي خط يدعم Unicode)، وتأكد أن مُعالج الترجمة أو مكتبة libass يقوم بالـ shaping العربي بشكل صحيح. اختبر الناتج في مشغلات مختلفة (MPV, VLC, MPC-HC) لأن كل مشغل يتعامل مع الترميزات والخطوط بطريقة مختلفة. جرب أيضًا
فورمات ASS إذا أردت تحكمًا أفضل بالموضع والاتجاه. التجربة والإختبار هي نصف الشغل، وستتحسن النتيجة بسرعة بعد جولة أو اثنتين من التعديل.
في النهاية، أحب الطريقة التي تحول بها التفاصيل الصغيرة مثل الأرقام إلى لمسة محلية؛ تجعل الترجمة تبدو أقرب للمشاهدين وتزيد من احترافية العمل.