Files
streamyfin/scripts/i18n-keys.config.json
Gauvino 840b81cded ci(i18n): detect unused & missing translation keys + clean en.json key debt
Rebased onto develop (post #1663 sentence-case pass). Adds a dependency-free
Bun checker (bun run i18n:check) wired into the lint matrix: flags keys used in
code but missing from en.json, and keys present in en.json but referenced
nowhere. Source-only - only en.json is checked/edited; Crowdin syncs the other
locales.

en.json: +8 missing source keys, -86 dead keys. Planned-feature keys kept and
allow-listed with tracking issues:
- home.settings.other.show_large_home_carousel (#1702 native media-bar)
- home.settings.logs.delete_all_logs (#1703 iOS logs fix)
- home.suggested_episodes (#1704)

login: point the TV password modal at the existing login.login_button instead
of a redundant login.login alias.
2026-06-08 13:04:52 +02:00

47 lines
1.4 KiB
JSON

{
"localesDir": "translations",
"sourceLocale": "en",
"srcDirs": [
"app",
"components",
"hooks",
"providers",
"utils",
"modules",
"packages",
"constants"
],
"srcExtensions": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
"excludeDirs": [
"node_modules",
"ios",
"android",
".expo",
".git",
"dist",
"build",
"translations"
],
"_ignoreUnusedNote": "Keys for planned features that are intentionally kept in en.json but not yet wired in code. They are exempt from the unused-key check until implemented. Remove an entry once its feature ships and uses the key. Pending implementation: home.settings.other.show_large_home_carousel (#1702 media-bar), home.settings.logs.delete_all_logs (#1703 iOS logs fix), home.suggested_episodes (#1704).",
"ignoreUnused": [
"watchlists.add_to_watchlist",
"watchlists.remove_from_watchlist",
"watchlists.create_one_first",
"watchlists.no_compatible_watchlists",
"pin.confirm_pin",
"pin.pins_dont_match",
"player.search_subtitles",
"player.subtitle_search",
"player.subtitle_download_hint",
"player.subtitle_tracks",
"player.using_jellyfin_server",
"player.swipe_down_settings",
"player.stopPlayback",
"player.stopPlayingTitle",
"player.stopPlayingConfirm",
"home.settings.other.show_large_home_carousel",
"home.settings.logs.delete_all_logs",
"home.suggested_episodes"
]
}