This release localizes the entire app. English, Simplified Chinese (zh-CN), Traditional Chinese (zh-TW), and Japanese (ja) are wired up end-to-end across every tab, modal, dialog, and toast — 559 translation keys per locale, parity verified. Plus a batch of reliability fixes: offline-mode now actually stays offline, Chatterbox accepts reference samples it used to reject, MLX Qwen 0.6B points at the right repo, and macOS system audio survives backgrounding.
Internationalization (#508)
- i18next foundation with an in-app language switcher that re-renders the tree on change — lazy-loaded components were holding stale strings without an explicit key-bump on the React root.
- Four locales at full coverage: English, Simplified Chinese, Traditional Chinese, Japanese. No partial/English-fallback surfaces.
- Every user-visible surface translated: Stories (list, content editor, dialogs, toasts), Effects (list, detail, chain editor, built-in preset names), Voices (table, search, inspector, Create/Edit modal, audio sample panels), Audio Channels (list, dialogs, device picker), history + story dropdown menus, ProfileCard / ProfileList / HistoryTable, and the unsupported-model note.
- Relative dates localize via
date-fnslocale objects (3 days ago→3 天前/3 日前) —Intl.RelativeTimeFormatdoesn't produce the phrasing we use in the history table. - Dev-build version suffix (
v0.4.2 (dev)/(开发版)/(開發版)/(開発版)) is now locale-aware. - 559 translation keys across all four locales.
Reliability
HF_HUB_OFFLINEnow guards every inference path (#503) — some engines were still attempting a HuggingFace metadata roundtrip on first load when offline mode was enabled, causing hangs on airgapped or flaky networks.- Chatterbox reference samples are preprocessed instead of rejected (#502) — samples outside the expected sample rate or channel layout are resampled to match, rather than failing with an opaque error.
- MLX Qwen 0.6B repo path fixed (#501) — now points at the published
mlx-communityrepo so the model actually downloads on Apple Silicon. - macOS system audio survives backgrounding (#486, closes #41) — WKWebView was tearing down the audio session when the app lost focus, silently killing system-audio capture.
- MLX backend
miniaudiodependency pinned (#506) —mlx_audio.sttneeds it at runtime and nothing else transitively pulled it in, so--no-depsinstalls were breaking on first use.
Landing / Docs
- New
/downloadpage (#487) — no more dumping first-time visitors onto the GitHub releases list. The API example snippet on the landing page also got an accuracy pass. - Download redirects work behind reverse proxies (#498) — uses the public origin instead of
localhostwhen resolving platform-specific installer URLs. - MDX docs audited against the multi-engine backend (#484) — stale single-engine assumptions removed.
- Three more tutorials + mobile navbar / hero CTA fixes (#483).
Linux
- Still not shipping. The re-enable attempt (#488) landed on
mainbut CI still hangs in thetauri-actionbundler step onubuntu-22.04— no output for 25+ minutes afterrpmbundling, even withcreateUpdaterArtifacts: falseand--bundles deb,rpm. The matrix entry is disabled again for 0.4.2; the ubuntu-specific setup steps stay in the workflow so re-enabling is a one-line change once we identify the hang. Next release will take another pass.
New Contributors
- @shekharyv — download redirects behind reverse proxies (#498)