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 _TranslationsVideoControlsFr extends TranslationsVideoControlsEn {
@override String get pipActive => 'Lecture en mode image dans l\'image';
@override String get pipFailed => 'Échec du démarrage du mode image dans l\'image';
@override String get screenshotSaved => 'Capture d\'écran enregistrée';
@override String zoomPercent({required Object percent}) => 'Zoom ${percent} %';
@override late final _TranslationsVideoControlsPipErrorsFr pipErrors = _TranslationsVideoControlsPipErrorsFr._(_root);
@override String get chapters => 'Chapitres';
@override String get noChaptersAvailable => 'Aucun chapitre disponible';
@@ -1308,6 +1309,7 @@ class _TranslationsVideoSettingsFr extends TranslationsVideoSettingsEn {
// Translations
@override String get playbackSpeed => 'Vitesse de lecture';
@override String get zoom => 'Zoom';
@override String get sleepTimer => 'Minuterie de mise en veille';
@override String get audioSync => 'Synchronisation audio';
@override String get subtitleSync => 'Synchronisation des sous-titres';
@@ -1565,6 +1567,9 @@ class _TranslationsHotkeysActionsFr extends TranslationsHotkeysActionsEn {
@override String get speedIncrease => 'Augmenter la vitesse';
@override String get speedDecrease => 'Réduire la vitesse';
@override String get speedReset => 'Réinitialiser la vitesse';
@override String get zoomIn => 'Zoom avant';
@override String get zoomOut => 'Zoom arrière';
@override String get zoomReset => 'Réinitialiser le zoom';
@override String get subSeekNext => 'Rechercher le sous-titre suivant';
@override String get subSeekPrev => 'Rechercher le sous-titre précédent';
@override String get shaderToggle => 'Activer/désactiver les shaders';
@@ -2099,6 +2104,9 @@ extension on TranslationsFr {
'hotkeys.actions.speedIncrease' => 'Augmenter la vitesse',
'hotkeys.actions.speedDecrease' => 'Réduire la vitesse',
'hotkeys.actions.speedReset' => 'Réinitialiser la vitesse',
'hotkeys.actions.zoomIn' => 'Zoom avant',
'hotkeys.actions.zoomOut' => 'Zoom arrière',
'hotkeys.actions.zoomReset' => 'Réinitialiser le zoom',
'hotkeys.actions.subSeekNext' => 'Rechercher le sous-titre suivant',
'hotkeys.actions.subSeekPrev' => 'Rechercher le sous-titre précédent',
'hotkeys.actions.shaderToggle' => 'Activer/désactiver les shaders',
@@ -2224,6 +2232,7 @@ extension on TranslationsFr {
'videoControls.pipActive' => 'Lecture en mode image dans l\'image',
'videoControls.pipFailed' => 'Échec du démarrage du mode image dans l\'image',
'videoControls.screenshotSaved' => 'Capture d\'écran enregistrée',
'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent} %',
'videoControls.pipErrors.androidVersion' => 'Nécessite Android 8.0 ou plus récent',
'videoControls.pipErrors.iosVersion' => 'Nécessite iOS 15.0 ou plus récent',
'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture est désactivé. Activez-le dans les paramètres système.',
@@ -2316,12 +2325,12 @@ extension on TranslationsFr {
'profiles.addPlezyProfile' => 'Ajouter un profil Plezy',
'profiles.switchingProfile' => 'Changement de profil…',
'profiles.deleteThisProfileTitle' => 'Supprimer ce profil ?',
_ => null,
} ?? switch (path) {
'profiles.deleteThisProfileMessage' => ({required Object displayName}) => 'Supprimer ${displayName}. Les connexions ne sont pas affectées.',
'profiles.active' => 'Actif',
'profiles.manage' => 'Gérer',
'profiles.delete' => 'Supprimer',
_ => null,
} ?? switch (path) {
'profiles.signOut' => 'Se déconnecter',
'profiles.signOutPlexTitle' => 'Se déconnecter de Plex ?',
'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Supprimer ${displayName} et tous les utilisateurs Plex Home ? Reconnexion possible à tout moment.',
@@ -2801,6 +2810,7 @@ extension on TranslationsFr {
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Rechercher sur le bureau...',
'videoSettings.playbackSpeed' => 'Vitesse de lecture',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Minuterie de mise en veille',
'videoSettings.audioSync' => 'Synchronisation audio',
'videoSettings.subtitleSync' => 'Synchronisation des sous-titres',
@@ -2829,13 +2839,13 @@ extension on TranslationsFr {
'metadataEdit.basicInfo' => 'Informations de base',
'metadataEdit.artwork' => 'Artwork',
'metadataEdit.advancedSettings' => 'Paramètres avancés',
_ => null,
} ?? switch (path) {
'metadataEdit.title' => 'Titre',
'metadataEdit.sortTitle' => 'Titre de tri',
'metadataEdit.originalTitle' => 'Titre original',
'metadataEdit.releaseDate' => 'Date de sortie',
'metadataEdit.contentRating' => 'Classification',
_ => null,
} ?? switch (path) {
'metadataEdit.studio' => 'Studio',
'metadataEdit.tagline' => 'Slogan',
'metadataEdit.summary' => 'Résumé',