NuvioStreaming/composeApp
Stéphane d1ee3cf784 feat(i18n): extract last deep-cut hardcoded strings to resources
Migrates 13 additional user-facing English literals found across 7 files
in a follow-up audit. Adds 13 new keys (EN + FR) and replaces the inline
literals with `getString(...)` / `runBlocking { getString(...) }`
depending on context.

- RuntimeFormat: episode / runtime hours+minutes template (`%dh %dm`,
  `%dh`, `%dm` → resource-backed; FR uses `%d h %d min`).
- SearchRepository: `require {}` empty-result message now hits
  `search_error_no_results_for_catalog` instead of the inline literal.
- PluginRepository: `already installed`, install-failed, refresh-failed
  fallback messages.
- PluginManifestParser: three `require {}` validation messages (name,
  version, providers).
- AddonManifestParser: `Manifest missing "<name>"` exception now uses
  `addons_manifest_missing_field`.
- PlayerEngine.ios: `MPV not available — Please rebuild the app` →
  `player_error_mpv_unavailable`.
- YoutubeChunkedDataSourceFactory: the developer-facing `No DataSpec`
  exception is replaced by a user-friendly `Unable to play this stream.`
  message that's safe to render through `onPlayerError.localizedMessage`.

FR translations follow existing conventions (tutoiement, curly apostrophes,
NBSP inside `« »`, internal branch names kept out of user-facing copy).
2026-05-20 06:41:24 +02:00
..
libs
src feat(i18n): extract last deep-cut hardcoded strings to resources 2026-05-20 06:41:24 +02:00
build.gradle.kts
proguard-rules.pro