feat(video): add custom zoom controls

close #1159
This commit is contained in:
edde746
2026-05-29 00:06:47 +02:00
parent 47276e1bac
commit 2b7ea5fe02
52 changed files with 1123 additions and 106 deletions
+14 -4
View File
@@ -605,6 +605,7 @@ class _TranslationsVideoControlsRu extends TranslationsVideoControlsEn {
@override String get pipActive => 'Воспроизводится в режиме «картинка в картинке»';
@override String get pipFailed => 'Не удалось запустить режим «картинка в картинке»';
@override String get screenshotSaved => 'Снимок экрана сохранён';
@override String zoomPercent({required Object percent}) => 'Масштаб ${percent}%';
@override late final _TranslationsVideoControlsPipErrorsRu pipErrors = _TranslationsVideoControlsPipErrorsRu._(_root);
@override String get chapters => 'Главы';
@override String get noChaptersAvailable => 'Главы недоступны';
@@ -1308,6 +1309,7 @@ class _TranslationsVideoSettingsRu extends TranslationsVideoSettingsEn {
// Translations
@override String get playbackSpeed => 'Скорость воспроизведения';
@override String get zoom => 'Масштаб';
@override String get sleepTimer => 'Таймер сна';
@override String get audioSync => 'Синхронизация аудио';
@override String get subtitleSync => 'Синхронизация субтитров';
@@ -1565,6 +1567,9 @@ class _TranslationsHotkeysActionsRu extends TranslationsHotkeysActionsEn {
@override String get speedIncrease => 'Увеличить скорость';
@override String get speedDecrease => 'Уменьшить скорость';
@override String get speedReset => 'Сбросить скорость';
@override String get zoomIn => 'Увеличить масштаб';
@override String get zoomOut => 'Уменьшить масштаб';
@override String get zoomReset => 'Сбросить масштаб';
@override String get subSeekNext => 'К следующему субтитру';
@override String get subSeekPrev => 'К предыдущему субтитру';
@override String get shaderToggle => 'Вкл./выкл. шейдеры';
@@ -2099,6 +2104,9 @@ extension on TranslationsRu {
'hotkeys.actions.speedIncrease' => 'Увеличить скорость',
'hotkeys.actions.speedDecrease' => 'Уменьшить скорость',
'hotkeys.actions.speedReset' => 'Сбросить скорость',
'hotkeys.actions.zoomIn' => 'Увеличить масштаб',
'hotkeys.actions.zoomOut' => 'Уменьшить масштаб',
'hotkeys.actions.zoomReset' => 'Сбросить масштаб',
'hotkeys.actions.subSeekNext' => 'К следующему субтитру',
'hotkeys.actions.subSeekPrev' => 'К предыдущему субтитру',
'hotkeys.actions.shaderToggle' => 'Вкл./выкл. шейдеры',
@@ -2224,6 +2232,7 @@ extension on TranslationsRu {
'videoControls.pipActive' => 'Воспроизводится в режиме «картинка в картинке»',
'videoControls.pipFailed' => 'Не удалось запустить режим «картинка в картинке»',
'videoControls.screenshotSaved' => 'Снимок экрана сохранён',
'videoControls.zoomPercent' => ({required Object percent}) => 'Масштаб ${percent}%',
'videoControls.pipErrors.androidVersion' => 'Требуется Android 8.0 или новее',
'videoControls.pipErrors.iosVersion' => 'Требуется iOS 15.0 или новее',
'videoControls.pipErrors.permissionDisabled' => 'Картинка-в-картинке отключена. Включите ее в системных настройках.',
@@ -2316,12 +2325,12 @@ extension on TranslationsRu {
'profiles.addPlezyProfile' => 'Добавить профиль Plezy',
'profiles.switchingProfile' => 'Переключение профиля…',
'profiles.deleteThisProfileTitle' => 'Удалить этот профиль?',
_ => null,
} ?? switch (path) {
'profiles.deleteThisProfileMessage' => ({required Object displayName}) => 'Удалить ${displayName}. Подключения не изменятся.',
'profiles.active' => 'Активный',
'profiles.manage' => 'Управление',
'profiles.delete' => 'Удалить',
_ => null,
} ?? switch (path) {
'profiles.signOut' => 'Выйти',
'profiles.signOutPlexTitle' => 'Выйти из Plex?',
'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Удалить ${displayName} и всех пользователей Plex Home? Вы сможете войти снова в любое время.',
@@ -2801,6 +2810,7 @@ extension on TranslationsRu {
'companionRemote.remote.audio' => 'Аудио',
'companionRemote.remote.searchHint' => 'Поиск на десктопе...',
'videoSettings.playbackSpeed' => 'Скорость воспроизведения',
'videoSettings.zoom' => 'Масштаб',
'videoSettings.sleepTimer' => 'Таймер сна',
'videoSettings.audioSync' => 'Синхронизация аудио',
'videoSettings.subtitleSync' => 'Синхронизация субтитров',
@@ -2829,13 +2839,13 @@ extension on TranslationsRu {
'metadataEdit.basicInfo' => 'Основная информация',
'metadataEdit.artwork' => 'Обложка',
'metadataEdit.advancedSettings' => 'Дополнительные настройки',
_ => null,
} ?? switch (path) {
'metadataEdit.title' => 'Название',
'metadataEdit.sortTitle' => 'Название для сортировки',
'metadataEdit.originalTitle' => 'Оригинальное название',
'metadataEdit.releaseDate' => 'Дата выпуска',
'metadataEdit.contentRating' => 'Возрастной рейтинг',
_ => null,
} ?? switch (path) {
'metadataEdit.studio' => 'Студия',
'metadataEdit.tagline' => 'Слоган',
'metadataEdit.summary' => 'Описание',