Migrates the long tail of user-facing English literals identified by the
audit report — 65 new keys across 14 source files plus the matching FR
translations (tutoiement, NBSP, curly apostrophes).
Categories:
- TMDB filter placeholders in CollectionEditorScreen (10 keys, "28,12",
"2020-01-01", "100", "en, ko, ja, hi", etc.)
- Collection editor titles & errors in CollectionEditorRepository
(TMDB/Trakt fallback titles, validation errors, "Could not load …")
- Folder type labels in FolderDetailRepository ("Trakt Series List",
"Trakt Movie List")
- TMDB resolver errors (api key required, not found, missing IDs, discover
no data) in TmdbCollectionSourceResolver
- Trakt public list resolver errors and search-result fallbacks in
TraktPublicListSourceResolver (rate limit, not public, items/likes
counts, credentials missing, error_with_code formatter)
- Comments load failure in TraktCommentsRepository
- Trakt status messages (Connected/Disconnected) in TraktAuthRepository
- AppUpdater exceptions (no release, github api error, missing tag,
no APK asset) — also strips the "cmp-rewrite" branch name from the
user-facing copy
- HTTP error fallbacks shared by both AddonPlatform.{android,ios}.kt
("Request failed with HTTP %d", "Empty response body")
- AndroidAppUpdaterPlatform download/install errors
- iOS DownloadsPlatformDownloader file/HTTP errors
- SubtitleRepository addon-subtitle display format
- DownloadsLiveStatusPlatform.android Pause action (reuses
compose_action_pause) and the byte-unit table (now includes
unit_bytes_tb)
Non-Composable suspend bodies use the existing `getString(...)` pattern;
synchronous bodies (constructors, lambda inits) use the established
`runBlocking { getString(...) }` pattern already in the codebase.
Keys that overlap with #943 (the FR overhaul PR) use the exact same
names so the eventual merge is a no-op on those.
- Synchronized strings.xml with the latest source strings.
- Fixed inconsistent terms to match the current app context.
- Added missing translation keys.
Added Indonesian (Bahasa Indonesia) translation to the project.
Files updated:
- Translated strings added to the `values-id` directory.
- Hooked up the new language option in `AppLanguage.kt`.
- Registered the `id` locale in Android's `locale_config.xml`.
`updates_downloading_progress` in values-fr/strings.xml used `%1$d%%` —
Compose Multiplatform Resources does NOT interpret `%%` as an escape
for a literal `%`. The runtime substitutes `%1$d` with the integer arg
and leaves the rest of the string verbatim, so the user sees
`Téléchargement 26%%` instead of `Téléchargement 26 %`.
Same change applied to two adjacent FR keys that already only had a
single trailing `%` (no doubled bug), but now also use NBSP (U+00A0)
before the symbol to match French typography:
- `streams_resume_from_percent`: `Reprendre depuis %1$d%` → `... %1$d %`
- `settings_playback_threshold_percentage_value`: `%1$s%` → `%1$s %`
EN strings keep `Downloading %1$d%` / `Resume from %1$d%` / `%1$s%`
(English convention: no space before `%`).
Port of NuvioMedia/NuvioTV#1704.
Adds a Sort Order setting to the Continue Watching section with two modes:
- Default: sort all items by most recently watched
- Streaming Style: released/in-progress items first (by recency), unaired
next-up items pushed to the end sorted by ascending air date