Problem
Switching the display language mid-session (Settings -> Language) updated most of the UI immediately via the generic data-i18n re-apply pass, but library-list content built from raw innerHTML at render time (recent-tracks subtitles, search placeholder, trash/favorites empty states) had no data-i18n hooks to re-resolve, so it silently stayed in whichever language was active when it was last rendered until the page was reloaded.
This is the same class of bug as the earlier renderEmptyShell() render-ordering issue (#415's predecessor work) — computed text baked directly into HTML without a re-render hook for language changes.
Fix
Registered an onLanguageChange listener in static/js/catalog.js that rebuilds the library list (render()) on language switch, mirroring the existing listener that already rebuilds the settings modal.
Fixed in #415.
Problem
Switching the display language mid-session (Settings -> Language) updated most of the UI immediately via the generic
data-i18nre-apply pass, but library-list content built from rawinnerHTMLat render time (recent-tracks subtitles, search placeholder, trash/favorites empty states) had nodata-i18nhooks to re-resolve, so it silently stayed in whichever language was active when it was last rendered until the page was reloaded.This is the same class of bug as the earlier
renderEmptyShell()render-ordering issue (#415's predecessor work) — computed text baked directly into HTML without a re-render hook for language changes.Fix
Registered an
onLanguageChangelistener instatic/js/catalog.jsthat rebuilds the library list (render()) on language switch, mirroring the existing listener that already rebuilds the settings modal.Fixed in #415.