Skip to content

i18n(settings/live): move hardcoded UI strings into string resources - #654

Merged
ProdigyV21 merged 6 commits into
ProdigyV21:mainfrom
ReichiMD:claude/i18n-cleanup-worker-h060cp
Sep 5, 2026
Merged

i18n(settings/live): move hardcoded UI strings into string resources#654
ProdigyV21 merged 6 commits into
ProdigyV21:mainfrom
ReichiMD:claude/i18n-cleanup-worker-h060cp

Conversation

@ReichiMD

@ReichiMD ReichiMD commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

What
Same approach as #632, applied to the settings screen and the Live TV fullscreen HUD.
Moves the hardcoded English UI strings in SettingsScreen.kt and FullscreenHud.kt
into the string resource system and adds the German values. No behaviour changes,
no logic changes.
45 display strings moved from Kotlin literals to stringResource(R.string.…)
12 of them reused existing resources that were already present but unused
(on, off, auto, close, cancel, play, connect, connected,
settings_disconnect, settings_connected_as, settings_mode_tablet,
settings_mode_phone)
38 new keys added to values/strings.xml in their matching sections
(, ,

, , )

German values added to values-de/strings.xml
Also fills two gaps introduced by 4a9c551: player_addon_setup_hint and
player_season_episode_short had no German value yet. values-de is complete
again (1454 of 1455; app_name is intentionally left untranslated).
Areas covered: catalog pack import/delete dialogs, the Simkl activation modal,
the Data Routing block, Discord Rich Presence status text, the On/Off value
labels across the mobile settings rows, and the five playback
contentDescriptions in the Live TV HUD.
Why
Approved in Discord (28 Aug): "Yes try to also bring hardcoded things into this.
That has been kinda a long time bug. They dont have to be in English yea."
This benefits all 50 language folders, not just German — untranslated locales fall
back to English exactly as before.
Notes
Stored values and internal keys are unchanged; only rendered text is localized.
Follows the existing pattern from LiveCategory.kt. Deliberately left in English
because they are compared or persisted:
the settings section names ("Home Server", "Cloud Sync & Account", …) —
they are navigation keys and already resolved for display through the existing
when lookup in MobileSettingsMainPage
the default IPTV playlist name ("List N"), which is written into
IptvPlaylistEntry.name
uiState.secondarySubtitle, which is compared with equals(…, ignoreCase = true)
trackingModeLabel() is now @composable. It produced a finished String in a
plain helper, so its one localizable branch ("Automatic") would have resolved
against the system locale instead of the app locale. The provider names
(Trakt, Simkl, MDBList) stay as they are.
The EditText hint in InputModal is now resolved in composition and no longer
lowercases the field label. This is the one rendering change in the PR: English
shows "Enter Pack URL..." instead of "Enter pack url...". Lowercasing a label is
wrong in German and in most other locales, where nouns keep their casing.
Brand and franchise names (Trakt, Simkl, MDBList, Telegram, Discord RPC, Groq,
Gemini) are left untouched, as are the language names in the content-language
picker.
Log messages, telemetry strings and animation labels are out of scope.
CI: Verify build (compile + unit tests) green on this branch.
created by Claude (Anthropic) on behalf of @ReichiMD

Moves the remaining hardcoded English UI strings in the settings screen
and the Live TV fullscreen HUD into the string resource system, and adds
the two missing German values from 4a9c551.

- SettingsScreen.kt: catalog pack dialogs, Simkl activation modal, the
  Data Routing block, Discord Rich Presence status and the On/Off value
  labels are now resolved through string resources
- FullscreenHud.kt: the five playback contentDescriptions plus play/pause
- trackingModeLabel() is now @composable so its one localized branch is
  resolved in composition instead of in a plain helper (C12)
- values-de: player_addon_setup_hint and player_season_episode_short

Stored values and internal lookup keys are left untouched: the settings
section names ("Home Server", "Cloud Sync & Account"), the default IPTV
playlist name ("List N") and uiState.secondarySubtitle stay English
because they are compared or persisted.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011TDDEcEXgHS9ZjR5doeF4Y
@github-actions github-actions Bot added the area: android Changes to the Android app or Gradle build label Sep 5, 2026
@ProdigyV21
ProdigyV21 merged commit d7ceecb into ProdigyV21:main Sep 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: android Changes to the Android app or Gradle build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants