Add TV bumpers functionality: introduce configuration options for bumpers in .env.example and appsettings.json, enhance ChannelEndpoints to manage jingles and bumper assets, and update Channel and ScheduleEntry models to support bumper logic. Implement validation for bumper settings and integrate bumper handling in scheduling logic.
This commit is contained in:
@@ -61,6 +61,7 @@ const resources = {
|
||||
now: 'Сейчас',
|
||||
next: 'Далее',
|
||||
ad: 'Реклама',
|
||||
bumper: 'Заставка',
|
||||
episode: 'Серия',
|
||||
live: 'В эфире',
|
||||
noChannels: 'Пока нет доступных каналов. Загляните позже.',
|
||||
@@ -156,6 +157,37 @@ const resources = {
|
||||
betweenBlocks: 'Между блоками',
|
||||
betweenEpisodes: 'Между сериями',
|
||||
adsPerBreak: 'Роликов подряд',
|
||||
bumpersLabel: 'ТВ-заставки на переходах',
|
||||
bumpersHint: 'Короткая заставка «Сейчас / Далее» между разными шоу',
|
||||
bumperStyle: 'Оформление заставки',
|
||||
bumperDuration: 'Длительность, с',
|
||||
bumperMinInterval: 'Мин. интервал, мин',
|
||||
bumperFont: 'Шрифт',
|
||||
bumperFontSans: 'Гротеск',
|
||||
bumperFontSerif: 'Антиква',
|
||||
bumperNowLabel: 'Подпись «Сейчас»',
|
||||
bumperNextLabel: 'Подпись «Далее»',
|
||||
bumperBg: 'Фон (цвет 1)',
|
||||
bumperBg2: 'Фон (цвет 2)',
|
||||
bumperAccent: 'Акцент',
|
||||
bumperText: 'Текст',
|
||||
bumperOnlyDifferent: 'Только на смене шоу (не внутри марафона)',
|
||||
bumperMode: 'Режим заставок',
|
||||
bumperModeDynamic: 'Динамические «Сейчас/Далее»',
|
||||
bumperModeStatic: 'Только джинглы',
|
||||
bumperModeBoth: 'Чередовать',
|
||||
bumperBackground: 'Фон',
|
||||
bumperBackgroundHint: 'Картинка или видео-петля; иначе — анимированный градиент',
|
||||
bumperMusic: 'Музыка',
|
||||
bumperMusicHint: 'Аудиофайл-подложка; иначе — синтезированный джингл',
|
||||
bumperFileLoaded: 'загружено',
|
||||
bumperFileDefault: 'по умолчанию',
|
||||
bumperUpload: 'Загрузить',
|
||||
bumperReset: 'Сбросить',
|
||||
jingles: 'Джинглы-отбивки',
|
||||
jinglesHint: 'Готовые ролики для статичных заставок; крутятся по кругу на переходах (режимы «Только джинглы» и «Чередовать»).',
|
||||
pickJingle: 'Выберите ролик',
|
||||
noJingles: 'Пул джинглов пуст',
|
||||
filler: 'Заглушка',
|
||||
noFiller: 'Без заглушки',
|
||||
shows: 'Шоу канала',
|
||||
@@ -257,6 +289,7 @@ const resources = {
|
||||
now: 'Now',
|
||||
next: 'Up next',
|
||||
ad: 'Ad',
|
||||
bumper: 'Bumper',
|
||||
episode: 'Episode',
|
||||
live: 'Live',
|
||||
noChannels: 'No channels available yet. Check back later.',
|
||||
@@ -352,6 +385,37 @@ const resources = {
|
||||
betweenBlocks: 'Between blocks',
|
||||
betweenEpisodes: 'Between episodes',
|
||||
adsPerBreak: 'Ads per break',
|
||||
bumpersLabel: 'Transition bumpers',
|
||||
bumpersHint: 'Short “Now / Next” bumper between different shows',
|
||||
bumperStyle: 'Bumper style',
|
||||
bumperDuration: 'Duration, s',
|
||||
bumperMinInterval: 'Min interval, min',
|
||||
bumperFont: 'Font',
|
||||
bumperFontSans: 'Sans',
|
||||
bumperFontSerif: 'Serif',
|
||||
bumperNowLabel: '“Now” label',
|
||||
bumperNextLabel: '“Next” label',
|
||||
bumperBg: 'Background (color 1)',
|
||||
bumperBg2: 'Background (color 2)',
|
||||
bumperAccent: 'Accent',
|
||||
bumperText: 'Text',
|
||||
bumperOnlyDifferent: 'Only on show change (not within a marathon)',
|
||||
bumperMode: 'Bumper mode',
|
||||
bumperModeDynamic: 'Dynamic “Now / Next”',
|
||||
bumperModeStatic: 'Jingles only',
|
||||
bumperModeBoth: 'Alternate',
|
||||
bumperBackground: 'Background',
|
||||
bumperBackgroundHint: 'Image or video loop; otherwise an animated gradient',
|
||||
bumperMusic: 'Music',
|
||||
bumperMusicHint: 'Audio bed file; otherwise a synthesized jingle',
|
||||
bumperFileLoaded: 'loaded',
|
||||
bumperFileDefault: 'default',
|
||||
bumperUpload: 'Upload',
|
||||
bumperReset: 'Reset',
|
||||
jingles: 'Jingles',
|
||||
jinglesHint: 'Pre-made clips for static bumpers; rotated on transitions (in “Jingles only” and “Alternate” modes).',
|
||||
pickJingle: 'Pick a clip',
|
||||
noJingles: 'Jingle pool is empty',
|
||||
filler: 'Filler',
|
||||
noFiller: 'No filler',
|
||||
shows: 'Channel shows',
|
||||
|
||||
Reference in New Issue
Block a user