From 9a3a33fdd3984c73a2a5cb8e946f9db5be2b6bef Mon Sep 17 00:00:00 2001
From: damontecres <154766448+damontecres@users.noreply.github.com>
Date: Sat, 22 Nov 2025 18:39:58 -0500
Subject: [PATCH] Use full phases for skip buttons for better translations
(#304)
Changes the skip segment button text to use a single phrase instead of
concatenating two strings. This allows correct context when translating.
Follow up from #292
---
.../com/github/damontecres/wholphin/ui/Formatting.kt | 12 ++++++++++++
.../wholphin/ui/playback/PlaybackControls.kt | 4 ++--
.../damontecres/wholphin/ui/playback/PlaybackPage.kt | 5 ++---
app/src/main/res/values-de/strings.xml | 6 ++++++
app/src/main/res/values/strings.xml | 6 ++++++
5 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt
index 1e5c1ae3..621133b0 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt
@@ -181,3 +181,15 @@ val MediaSegmentType.stringRes: Int
MediaSegmentType.OUTRO -> R.string.outro
MediaSegmentType.INTRO -> R.string.intro
}
+
+@get:StringRes
+val MediaSegmentType.skipStringRes: Int
+ get() =
+ when (this) {
+ MediaSegmentType.UNKNOWN -> R.string.skip_segment_unknown
+ MediaSegmentType.COMMERCIAL -> R.string.skip_segment_commercial
+ MediaSegmentType.PREVIEW -> R.string.skip_segment_preview
+ MediaSegmentType.RECAP -> R.string.skip_segment_recap
+ MediaSegmentType.OUTRO -> R.string.skip_segment_outro
+ MediaSegmentType.INTRO -> R.string.skip_segment_intro
+ }
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackControls.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackControls.kt
index 2343a2e5..d195afc7 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackControls.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackControls.kt
@@ -62,7 +62,7 @@ import com.github.damontecres.wholphin.R
import com.github.damontecres.wholphin.ui.AppColors
import com.github.damontecres.wholphin.ui.seekBack
import com.github.damontecres.wholphin.ui.seekForward
-import com.github.damontecres.wholphin.ui.stringRes
+import com.github.damontecres.wholphin.ui.skipStringRes
import com.github.damontecres.wholphin.ui.tryRequestFocus
import com.github.damontecres.wholphin.util.ExceptionHandler
import kotlinx.coroutines.delay
@@ -199,7 +199,7 @@ fun PlaybackControls(
.padding(end = 32.dp),
) {
Text(
- text = stringResource(R.string.skip) + " " + stringResource(segment.type.stringRes),
+ text = stringResource(segment.type.skipStringRes),
)
}
}
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt
index 6f895305..3e89f629 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt
@@ -60,7 +60,6 @@ import androidx.tv.material3.Button
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Text
import androidx.tv.material3.surfaceColorAtElevation
-import com.github.damontecres.wholphin.R
import com.github.damontecres.wholphin.data.model.ItemPlayback
import com.github.damontecres.wholphin.data.model.Playlist
import com.github.damontecres.wholphin.preferences.PlayerBackend
@@ -74,7 +73,7 @@ import com.github.damontecres.wholphin.ui.nav.Destination
import com.github.damontecres.wholphin.ui.preferences.subtitle.SubtitleSettings.applyToMpv
import com.github.damontecres.wholphin.ui.preferences.subtitle.SubtitleSettings.toSubtitleStyle
import com.github.damontecres.wholphin.ui.seasonEpisode
-import com.github.damontecres.wholphin.ui.stringRes
+import com.github.damontecres.wholphin.ui.skipStringRes
import com.github.damontecres.wholphin.ui.tryRequestFocus
import com.github.damontecres.wholphin.util.ExceptionHandler
import com.github.damontecres.wholphin.util.LoadingState
@@ -413,7 +412,7 @@ fun PlaybackPage(
modifier = Modifier.focusRequester(focusRequester),
) {
Text(
- text = stringResource(R.string.skip) + " " + stringResource(segment.type.stringRes),
+ text = stringResource(segment.type.skipStringRes),
)
}
}
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 23dc2043..137efa0b 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -274,4 +274,10 @@
Zurückspringen
Wiedergabe backend
Aktiviere erneut wiedergeben in als nächstes
+ Segment Überspringen
+ Werbung Überspringen
+ Vorschau Überspringen
+ Rückblick Überspringen
+ Outro Überspringen
+ Intro Überspringen
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 31bbd291..5286503e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -313,6 +313,12 @@
Disable if you experience crashes
MPV Options
ExoPlayer Options
+ Skip Segment
+ Skip Ads
+ Skip Preview
+ Skip Recap
+ Skip Outro
+ Skip Intro
- Disabled