fix(i18n): Translate the remaining Git and pull request text (#116)

Multi-repo branch popup matches actions by their translated label (highlights and Chinese search now work) and translates its group headers. Conflict counts, relative times (shared dateFormat), in-progress operation titles, git operation progress/results, branch widget tooltips, diff/hunk counts, worktree markers, PR author line and review placeholders go through tx; the default "Changes" changelist shows its translated name. HexViewer read-only leaves the untranslated allowlist. 92 zh entries.

Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
This commit is contained in:
l0ng-ai authored and GitHub committed 2026-10-28 12:38:25 +08:00
1 parent 443bb51bba
commit 429e8ffc82
22 files changed
+237 -77

No files matched your search

+2 -2
View File
@@ -160,7 +160,7 @@ function ListRow({ pr }: { pr: PullRequestSummary }) {
<StateBadge pr={pr} />
</div>
<div className={styles.listMeta}>
#{pr.number} by {pr.author} · {relativeTime(pr.updatedAt)}
#{pr.number} {tx`by ${pr.author}`} · {relativeTime(pr.updatedAt)}
{decision ? ` · ${decision}` : ""}
{pr.labels.length ? ` · ${pr.labels.map((l) => l.name).join(", ")}` : ""}
</div>
@@ -486,7 +486,7 @@ function Details() {
<div className={styles.metaRow}>
<StateBadge pr={s} />
<span>
#{s.number} by <strong>{s.author}</strong> · {s.baseRef} ← {s.headRef}
#{s.number} {tx`by ${s.author}`} · {s.baseRef} ← {s.headRef}
</span>
{reviewDecisionLabel(s.reviewDecision) && (
<span className={styles.dim}>· {reviewDecisionLabel(s.reviewDecision)}</span>
+1 -1
View File
@@ -189,7 +189,7 @@ function ReviewDialog(props: {
<textarea
data-autofocus
aria-label={tx("Review comment")}
placeholder={needsBody ? "Leave a comment (required)" : "Leave a comment (optional)"}
placeholder={needsBody ? tx("Leave a comment (required)") : tx("Leave a comment (optional)")}
className={styles.textarea}
rows={8}
value={body}