Skip to content

Several UI strings bypassed the i18n system and stayed hardcoded in English #416

Description

@thcp

Problem

While extending the i18n system to German, Portuguese, and Indonesian (#415), an audit turned up several pre-existing spots where UI text was hardcoded in English directly in JS, bypassing the translation system entirely. These showed up in English regardless of the selected language:

  • The recent-tracks list subtitle ("1 stem" / "2 stems") in renderRecentItem (static/js/catalog.js)
  • The library search placeholder, overwritten per-view ("Search trash…", "Search favorites…", "Search library…") every render, silently stomping the correctly-translated static placeholder
  • The trash empty-state messages ("Trash is empty", "No deleted tracks match your search")
  • The .presence-panel legend (.presence-labels — Vocals/Drums/Bass/Guitar/Piano/Others) had no data-i18n attributes at all
  • Several error toasts: track-unavailable message, job restore/start failures, unsupported-file-type and file-too-large upload errors, and a second (previously untranslated) playlist-import failure path
  • job.js also carried an unused plural import left over from an earlier pass

Fix

All of the above are now wired through the existing t()/plural()/data-i18n system with full parity across all 7 supported languages (en, pl, ja, zh-Hans, de, pt, id).

Fixed in #415.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions