Skip to content

The danger confirmation dialog is English in every language #90

Description

@zangjiucheng

The type-to-confirm dialog guarding destructive operations renders in English regardless of the selected locale. A Korean or Chinese user gets Tama warning them in their own language over a fully English modal.

Where

armDanger in src/legacy/main.ts:2403 composes its text from string literals rather than t() keys:

typeLabel.textContent = "Type the " + (ctx.typeNoun || "branch name") + " ";
...
typeLabel.appendChild(document.createTextNode(" to " + (ctx.typeVerb || "arm the rewrite") + ":"));
$("#dangerGo").textContent = ctx.confirmLabel || "Confirm";

Because the shared arm line is built here, all ten call sites are affected — including resethead and forcepush, which otherwise use t() correctly.

Six of those call sites in src/islands/sidebar/sidebar.svelte.ts (around :1973) pass zero translated fields. Title, description, the "What happens" list, the backup note and the confirm button are all hardcoded: deinit submodule, remove submodule, force switch, delete branch, reset to upstream, delete tag.

filterrepo.danger_type_label already exists in en, zh and ko, and nothing references it.

Fix

Key-ify the shared arm line, then pass translated fields from each call site. Use placeholders for the noun and verb rather than concatenation — "Type the" + noun + "to" + verb does not survive translation into Korean or Chinese word order.

Note

This predates Korean; Chinese users have had it since v1.1.

Good first issue

Well-bounded, an unused translation key already exists to build on, and it visibly improves the experience for every non-English user.


Found during v1.3.0 research: parallel codebase surveys, then each finding independently verified against the code before filing. Line numbers are from dev at the time of writing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions