Skip to content

fix(mobile): correct Khmer code reviewer, status and PR discussion copy - #8462

Merged
iscekic merged 1 commit into
mainfrom
drain/km-reviewer-status-discussion-copy
Oct 21, 2026
Merged

iscekic merged 1 commit into
mainfrom
drain/km-reviewer-status-discussion-copy

Conversation

@iscekic

@iscekic iscekic commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

Eight Khmer values were out of step with the English source or with each other. All are visible copy in the app; keys, placeholders and file structure are unchanged (3290 keys before and after).

  • Manual review, by hand. codeReviewer.manualReview.title and codeReviewer.reviewList.startManualReview said the review happens on request (តាមការស្នើសុំ), which reads as "when someone asks", not as the review the user starts themselves. Both now use the catalog's manual term (ដោយដៃ), so the review-list call-to-action, the manual-review screen header and the profile row that opens it read one way.
  • One review-memory term. codeReviewer.reviewMemory.title named the feature ការចងចាំពីការពិនិត្យ while its own loading, off, read-only and enable strings say អង្គចងចាំសម្រាប់ការត្រួតពិនិត្យ, with a different word for "review" as well. The title now matches the family.
  • Cancelled is not deleted. common.cancelled was បានលុបចោល (from the verb for abolishing/removing), while the Cancel action is បោះបង់. The status now reads បានបោះបង់, the same root the remediation status already uses, so the review-list chip and the finding remediation panel no longer say an operation was removed.
  • Label punctuation. common.notFound ended in the Khmer sentence terminator while it renders as an error heading (chat header, terminal-session error), and the sibling short labels carry none. The trailing ។ is gone.
  • One comment term. prReview.composer.comment said អត្ថាធិប្បាយ (commentary) as the section label over the body field, whose accessibility label and placeholder already say មតិយោបល់. The catalog check holds one wording per English string, so the same move covers the diff floating action and the review-event chip, and prReview.composer.commentNow carries the term on its submit button.
  • Collapse, not hide. prReview.discussion.collapseThread is the accessibility label of the expanded thread header, which collapses it. It said លាក់ការពិភាក្សា ("hide the discussion"); it now says បង្រួមការពិភាក្សា, the verb the catalog already uses for collapsing.
Key Before After
common.cancelled បានលុបចោល បានបោះបង់
common.notFound រកមិនឃើញទេ។ រកមិនឃើញទេ
codeReviewer.reviewMemory.title ការចងចាំពីការពិនិត្យ អង្គចងចាំសម្រាប់ការត្រួតពិនិត្យ
codeReviewer.manualReview.title ការត្រួតពិនិត្យតាមការស្នើសុំ ការត្រួតពិនិត្យដោយដៃ
codeReviewer.reviewList.startManualReview ចាប់ផ្តើមការត្រួតពិនិត្យតាមការស្នើសុំ ចាប់ផ្តើមការត្រួតពិនិត្យដោយដៃ
prReview.composer.comment អត្ថាធិប្បាយ មតិយោបល់
prReview.floatingActions.comment អត្ថាធិប្បាយ មតិយោបល់
prReview.eventChips.comment អត្ថាធិប្បាយ មតិយោបល់
prReview.composer.commentNow បញ្ចេញមតិឥឡូវនេះ ផ្ញើមតិយោបល់ឥឡូវនេះ
prReview.discussion.collapseThread លាក់ការពិភាក្សា បង្រួមការពិភាក្សា

Copy lives in the English catalog; a reviewed translation slice edits one catalog by hand and the parity checks guard it. This change touches the Khmer catalog only.

Verification

Run on the work VM against this branch.

  • pnpm --filter kilo-app check:i18n — Found 0 warnings and 0 errors, check-catalogs: 87 languages, every catalog matches en.json.
  • node tools/i18n/check-plurals.mjs — every counted message and every locale declares its plural categories.
  • pnpm --filter kilo-app format:check — clean.
  • pnpm --filter kilo-app exec vitest run src/i18n — 17 files, 1612 tests passed, with a throwaway render smoke in place.
  • pnpm --filter kilo-app exec vitest run src/components/code-reviewer src/components/pr-review — 68 files, 754 tests passed.

The one-wording check groups English Comment across the composer label, the diff floating action and the review-event chip; all three move together, so no wording-exception entry is needed. Every other changed key is its own wording group.

Render smoke (throwaway test, deleted before the commit) switched the app's own i18next instance to Khmer with fallbackLng: 'en', asserted exactUsedKey so an English fallback fails the run, and drove a real consumer. Rendered output:

common.cancelled = បានបោះបង់
common.notFound = រកមិនឃើញទេ
codeReviewer.reviewMemory.title = អង្គចងចាំសម្រាប់ការត្រួតពិនិត្យ
codeReviewer.manualReview.title = ការត្រួតពិនិត្យដោយដៃ
codeReviewer.reviewList.startManualReview = ចាប់ផ្តើមការត្រួតពិនិត្យដោយដៃ
prReview.composer.comment = មតិយោបល់
prReview.floatingActions.comment = មតិយោបល់
prReview.eventChips.comment = មតិយោបល់
prReview.composer.commentNow = ផ្ញើមតិយោបល់ឥឡូវនេះ
prReview.discussion.collapseThread = បង្រួមការពិភាក្សា
manual CTA carries the screen title term: ចាប់ផ្តើមការត្រួតពិនិត្យដោយដៃ
describeTerminalFailure(gone).title = រកមិនឃើញទេ

The not-found value is asserted through the terminal-session error copy builder, a real caller that renders the label as an error heading. No screenshot is attached: every changed string sits behind an authenticated Code Reviewer or PR screen with a connected provider, and this is a values-only catalog change with no visual layout to capture.

Proxy answers

The owner's proxy gave these answers in the owner's place.

  1. Question: Manual review title: Finding 1 wants the CTA startManualReview to use "the same manual-review term as codeReviewer.manualReview.title". Evidence: that title also reads "on request" (ការត្រួតពិនិត្យតាមការស្នើសុំ), so aligning the CTA to it would keep the defect. The brief also says edit only keys the findings name; the title is not named. Which scope?
    Answer: Fix title + CTA to "by hand"
    Confidence: 0.72 · Precedent: Fix the root cause and the class of the issue: "fix class of issue preventing progress"; If you see a gap, fix it: "if you saw a gap, fix it"
  2. Question: Comment-now button: prReview.composer.commentNow is the primary button in the comment sheet (English "Comment now"). It currently uses បញ្ចេញមតិឥឡូវនេះ. Which imperative form should carry the new មតិយោបល់ term?
    Answer: ផ្ញើមតិយោបល់ឥឡូវនេះ
    Confidence: 0.60 · Precedent: Make every surface pleasant to look at and remove redundant copy: owner asked to remove the redundant "context" copy
  3. Question: Comment group: The catalog check allows one Khmer wording per English string. English "Comment" covers three keys — composer.comment, floatingActions.comment (diff floating action) and eventChips.comment (review-event chip) — all currently អត្ថាធិប្បាយ, and Khmer has no wording exception for it. How should the composer term change?
    Answer: Move all three to មតិយោបល់
    Confidence: 0.70 · Precedent: Keep similar elements consistent across surfaces: owner asked that "the thought row match the tool call row"; Keep each PR diff to files that the feature needs
  4. Question: Collapse thread: prReview.discussion.collapseThread (a11y label on the expanded thread header, English "Collapse thread") reads លាក់ការពិភាក្សា ("hide the discussion"). Which Khmer wording?
    Answer: បង្រួមការពិភាក្សា
    Confidence: 0.70 · Precedent: Keep similar elements consistent across surfaces: owner asked that "the thought row match the tool call row"

The Khmer catalog now names the manual-review flow by hand rather than
on request, uses one review-memory term across the feature, derives the
cancelled status from the Cancel verb, drops the sentence mark from the
not-found label, uses one comment term across the PR composers, and
labels the thread control with the collapse verb its check state implies.
@iscekic iscekic added drain Work item from the findings drain janitor:i18n Janitor finding: mobile copy and catalog checks labels Oct 21, 2026
@kilo-code-bot

kilo-code-bot Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

Reviewed the ten Khmer copy changes in apps/mobile/src/i18n/locales/km.json; keys, placeholders, and consumers are unaffected, and each new value matches the term family used by its sibling strings on the same screen.

Assumptions: [INFERENCE] Khmer linguistic accuracy could not be independently verified; the review covers structure (keys, placeholders, punctuation, consumer context) and in-repo terminology consistency, which is what the catalog checks enforce.

Files Reviewed (1 file)
  • apps/mobile/src/i18n/locales/km.json - no issues

Reviewed by deepseek-flash-latest · Input: 66.9K · Output: 10.1K · Cached: 991.6K

Review guidance: REVIEW.md from base branch main

@iscekic iscekic added the merge:bot Bot-owned review; merge when ready once readiness passes and a review approves. label Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

drain Work item from the findings drain janitor:i18n Janitor finding: mobile copy and catalog checks merge:bot Bot-owned review; merge when ready once readiness passes and a review approves.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants