الترجمة باستخدام track وWebVTT
إضافة التسميات التوضيحية والترجمات إلى الفيديو باستخدام track وملفات .vtt
الترجمة باستخدام track وWebVTT درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.
التسميات التوضيحية والترجمة
تتطلب إمكانية الوصول إلى الفيديو بدائل نصية للمحتوى الصوتي:
- الترجمة — تفريغ الحوار، مع افتراض قدرة المشاهد على سماع الأصوات
- التسميات التوضيحية — الحوار بالإضافة إلى أوصاف الأصوات (للمستخدمين الصم)
- الأوصاف الصوتية — وصف المحتوى المرئي للمستخدمين المكفوفين
عنصر track
يربط عنصر <track> ملف ترجمة أو تسميات توضيحية بفيديو:
<video controls>
<source src="tutorial.mp4" type="video/mp4">
<track
src="tutorial-en.vtt"
kind="subtitles"
srclang="en"
label="English"
default
>
<track
src="tutorial-es.vtt"
kind="subtitles"
srclang="es"
label="Spanish"
>
</video>سمات track
سمات عنصر track:
src— مسار ملف VTTkind— نوع المسار (subtitles وcaptions وdescriptions وchapters وmetadata)srclang— رمز اللغة وفق BCP 47 (en وes وfr...)label— اسم مفهوم للمستخدم يظهر في قائمة CCdefault— قيمة منطقية؛ يُعرض هذا المسار افتراضيًا
تنسيق WebVTT
WebVTT (Web Video Text Tracks) هو تنسيق ملفات الترجمة:
WEBVTT
00:00:01.000 --> 00:00:04.000
Hello and welcome to the HTML5 tutorial.
00:00:04.500 --> 00:00:08.000
In this lesson, we'll cover the video element
and how to add subtitles.
00:00:09.000 --> 00:00:12.000
[Keyboard click sounds]
Let's look at a code example...معرّفات إشارات VTT
يمكن أن تتضمن إشارات VTT معرّفات اختيارية:
WEBVTT
intro-1
00:00:01.000 --> 00:00:04.000
Welcome to the tutorial.
intro-2
00:00:04.500 --> 00:00:08.000
We'll cover HTML5 video today.
00:00:09.000 --> 00:00:12.000
No identifier on this cue — that is fine.إعدادات إشارات VTT
تدعم إشارات VTT إعدادات تحديد الموضع:
WEBVTT
00:00:01.000 --> 00:00:04.000 position:10% align:left
This text is positioned at the left.
00:00:05.000 --> 00:00:08.000 line:10%
This text appears near the top.
00:00:09.000 --> 00:00:12.000 size:50% position:75%
A smaller caption on the right.تنسيق إشارات WebVTT باستخدام CSS
نسّق مربعات الإشارات باستخدام العنصر الزائف ::cue:
/* Style all cues: */
::cue {
background-color: rgba(0, 0, 0, 0.8);
color: white;
font-size: 1.2rem;
font-family: 'Arial', sans-serif;
padding: 0.2em 0.5em;
border-radius: 4px;
}
/* Style specific voice tags: */
::cue(v[voice="Teacher"]) {
color: #60a5fa;
}قيم kind في track
تحدد سمة kind الغرض من مسار النص:
subtitles— ترجمة الحوار أو تفريغهcaptions— الحوار بالإضافة إلى أوصاف الأصوات للمستخدمين الصمdescriptions— وصف صوتي للمحتوى المرئي للمستخدمين المكفوفينchapters— عناوين الفصول للتنقلmetadata— بيانات قابلة للقراءة آليًا لاستخدامها في JavaScript
مسار الفصول
استخدم kind=chapters للتنقل بين فصول الفيديو:
<track
kind="chapters"
src="chapters.vtt"
srclang="en"
label="Chapters"
>
<!-- chapters.vtt: -->
<!--
WEBVTT
00:00:00.000 --> 00:01:30.000
Introduction
00:01:30.000 --> 00:05:00.000
HTML Document Structure
00:05:00.000 --> 00:10:00.000
Forms and Input
-->واجهة JavaScript TextTrack البرمجية
يمكنك الوصول إلى بيانات المسار باستخدام واجهة TextTrack البرمجية:
const video = document.getElementById('tutorial');
const tracks = video.textTracks;
// Enable a track:
tracks[0].mode = 'showing'; // 'hidden', 'showing', or 'disabled'
// Listen for active cue changes:
tracks[0].addEventListener('cuechange', function() {
const cue = this.activeCues[0];
if (cue) console.log('Current cue:', cue.text);
});مسار البيانات الوصفية للفيديو التفاعلي
استخدم مسارات البيانات الوصفية لتشغيل أحداث JavaScript في أوقات محددة:
<track kind="metadata" src="interactive.vtt" id="meta-track">
<script>
video.textTracks[0].mode = 'hidden';
video.textTracks[0].addEventListener('cuechange', function() {
const cue = this.activeCues[0];
if (cue) {
const data = JSON.parse(cue.text);
// Trigger quiz, show annotation, etc.
showAnnotation(data);
}
});
</script>متطلبات إمكانية الوصول
يتطلب WCAG توفير تسميات توضيحية للفيديو المسجّل مسبقًا:
- المستوى A — تسميات توضيحية لجميع مقاطع الفيديو المسجّلة مسبقًا التي تحتوي على صوت
- المستوى AA — أوصاف صوتية لجميع مقاطع الفيديو المسجّلة مسبقًا
- التسميات التوضيحية المُنشأة تلقائيًا (على YouTube) غير كافية من دون مراجعة
- يجب أن تكون التسميات التوضيحية دقيقة ومتزامنة وكاملة
تحقق سريع
ما الفرق بين نوعي مساري subtitles وcaptions؟
خلاصة: track وWebVTT
أساسيات الترجمة والتسميات التوضيحية:
<track src kind srclang label default>داخل video- kind: subtitles وcaptions وdescriptions وchapters وmetadata
- تنسيق ملف WebVTT: WEBVTT + الطابع الزمني --> الطابع الزمني + النص
- نسّق الإشارات باستخدام العنصر الزائف لـCSS
::cue - يتطلب WCAG توفير تسميات توضيحية للفيديو المسجّل مسبقًا
الأسئلة الشائعة
هل درس «الترجمة باستخدام track وWebVTT» مجاني؟
نعم — نص درس «الترجمة باستخدام track وWebVTT» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.
ماذا ستتعلم في «الترجمة باستخدام track وWebVTT»؟
إضافة التسميات التوضيحية والترجمات إلى الفيديو باستخدام track وملفات .vtt تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟
لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الترجمة باستخدام track وWebVTT»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟
نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- عنصر audio وsrc وcontrols وloop وautoplay
- عنصر video ونسبة العرض إلى الارتفاع
- عنصر source للتنسيقات المتعددة
- الترجمة باستخدام track وWebVTT