Skip to content

i18n: review follow-ups from #70, and a CI gate - #73

Merged
antonarnaudov merged 1 commit into
mainfrom
feat/i18n-all
Oct 1, 2026
Merged

antonarnaudov merged 1 commit into
mainfrom
feat/i18n-all

Conversation

@antonarnaudov

Copy link
Copy Markdown
Contributor

Follow-ups from the #70 review:

  • What git stores stays English. Reflog entries, stash create messages and the revert commit were built from the translated UI label. englishOf() (packages/l10n) turns a translated message back into its English source; tested.
  • Merge dashboard Cancel: the NO_OP abort verb is the English sentinel again, so zh-cn shows "Cancel the merge" (translated), not a bare 取消.
  • Rewritten-branch hint: four whole sentences instead of spliced words (also restores the English "replaced versions").
  • Markup gate: bundle-nls refuses a translation that adds < > & " its English doesn't have, since translations reach innerHTML and attributes.
  • CI: re-extracts the source bundle and fails on drift, then runs npm run i18n.

First step of extending translations to the desktop app and Merge Studio, and to more languages.

🤖 Generated with Claude Code

… gate

- Reflog entries, stash messages and the revert commit are built from the
  label the UI showed; englishOf() turns a translated label back into its
  English message, so a Chinese session no longer writes Chinese into the
  repository's history.
- The merge dashboard's NO_OP abort verb is the English sentinel again, so
  abortLabel() gives "Cancel the merge" in every language.
- The rewritten-branch hint is four whole sentences, not words spliced in.
- bundle-nls refuses a translation that adds < > & or " the English does
  not have (translations reach innerHTML and attributes).
- CI re-extracts the source bundle and fails on drift, then gates every
  translation.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@antonarnaudov
antonarnaudov merged commit 4eb9f68 into main Oct 1, 2026
10 checks passed
antonarnaudov added a commit that referenced this pull request Oct 1, 2026
* release: extension 1.18.0, desktop 2.5.0, Merge Studio 1.3.0

Versions, changelog headings (1 Oct 2026) and release notes for 14
languages across all three products (#70, #73, #74).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(rebase): a reword keeps the commit's description (#75)

The interactive rebase workspace read each commit's subject only, so a
reword's message box started from the subject and applying it dropped the
description. It now reads the whole message (%B, NUL-separated records, as
the desktop's rebase view does), seeds the box from it, sizes the box to
show it, and the commit counter is translated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* release: the reword fix in 1.18.0's notes

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: Edit Message… on a commit, in the extension and the desktop app (#75)

A commit's menu offers Edit Message… where it can work: on the current
branch's line, not a merge or below one. It opens the whole message in an
editor, then rewords the commit with a rebase that replays what came after
— git-service's multiCommit.ts with a third verb, the path Squash already
takes — asks whether branches on rewritten commits come along, and offers
Undo. Uncommitted changes and an operation in progress refuse it first.

Also: publishedWarning was handed English verbs inside translated
sentences, and the too-far refusal spliced in a raw verb; both are whole
translated messages now.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* i18n: Edit Message… in all 14 languages

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* release: Edit Message… in 1.18.0 and 2.5.0's notes

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant