feat(cli): localize TUI main interface, welcome, sessions, and peers screens#6241
Merged
Conversation
…itoring, skill, and status commands
…s, and bundled_agents
houko
approved these changes
Jun 19, 2026
houko
left a comment
Contributor
There was a problem hiding this comment.
LGTM — clean, mechanical localization with no behavior changes.
Verified:
- The Rust changes across the 38 CLI/TUI files are pure string →
i18n::t/t_argsreplacements. Spot-checked the largest (commands/skill.rs, +493/-133) — all of it isi18n::t_args(...)call conversions, no logic changes. i18n::t/t_argsfall back to the defaultenlanguage when a key is missing (i18n.rs), so partial locales degrade to English rather than showing raw keys.- CI is green.
One non-blocking note: the zh-CN locale is ~55% complete — 870 keys vs en 1590 / uk 1589. Chinese-locale users will see English for the ~720 untranslated keys. Acceptable given the graceful en fallback, but worth tracking completion of zh-CN in a follow-up so the experience isn't half-English. uk is essentially complete.
Approving.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type
Summary
This PR localizes the core CLI TUI main interface (
tui/mod.rs), the TUI Welcome screen (tui/screens/welcome.rs), the Sessions screen (tui/screens/sessions.rs), and the Peers screen (tui/screens/peers.rs) to support English, Ukrainian, and Simplified Chinese.All user-facing strings are refactored to use Fluent localization keys. Pluralization logic is implemented cleanly via Fluent templates.
Changes
Source Code Refactoring (
crates/librefang-cli/src/)[MODIFY] mod.rs
crate::i18n::tandcrate::i18n::t_args.chat-runner-keys for general messages (e.g. model switching, connection errors) to maintain consistency.Tab::label(self)to load localized tab names dynamically from Fluent.[MODIFY] welcome.rs
MenuItemstruct) to hold ownedStringlabels and hints instead of static&'static strlifetimes to support dynamic localization.tui-welcome-agent-count) for active daemon agent display.[MODIFY] sessions.rs
[MODIFY] peers.rs
Localization Files (
crates/librefang-cli/locales/)[MODIFY] en/main.ftl
tui-tab-*), welcome screen items (tui-welcome-*), sessions screen (tui-sessions-*), and peers screen (tui-peers-*).[MODIFY] uk/main.ftl
[MODIFY] zh-CN/main.ftl
Testing
Clean build with no warnings:
All 240+ unit/integration tests in the workspace pass successfully.
Verified that the interactive TUI boots up correctly, displays localized tab names and welcoming options, and handles sessions/peers layout and actions flawlessly under different locales.