Repository navigation
fix(mobile): correct Khmer profiles, agents, MCP and repo binding copy - #8467
Conversation
The Khmer profile surface named the same object with three nouns, read the model field as a rejection, named an input box for the system prompt, kept an English subagent label with a sentence stop, and described local MCP servers, HTTP headers, webhook blockers and repositories with words that mean something else. Standardize one Khmer term per object across the profiles namespace, name the webhook entity the delete-blocked message refers to, keep the MCP error group unpunctuated like the English source, and use the same slug-style loanword casing throughout the slash-command family.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe incremental change only drops the terminal ។ from the three Khmer MCP failure messages, matching the English source and the rest of that error group; the previously reported profile-picker noun mismatch is now resolved on HEAD. Assumptions: Files Reviewed (1 file)
Previous Review Summary (commit c1f603e)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit c1f603e)Status: 1 Issue Found | Recommendation: Address before merge Executive SummaryThe Khmer copy changes are structurally sound, but the profile picker that opens the renamed Profiles screen still uses ប្រវត្តិរូប and ទម្រង់, so the same object is still named three ways in one flow. Assumptions: Overview
Issue Details (click to expand)WARNING
Files Reviewed (1 file)
Reviewed by deepseek-flash-latest · Input: 66.7K · Output: 5.4K · Cached: 469.4K Review guidance: REVIEW.md from base branch |
…nts-mcp-copy # Conflicts: # apps/mobile/src/i18n/locales/km.json
What changes
apps/mobile/src/i18n/locales/km.jsononly — values, no keys, no placeholders,no other catalog. JSON-path diff against
main: 0 keys added, 0 removed, 46values changed, every
{{token}}preserved.Classes fixed:
newProfile,nameLabel,ownerLabel,descriptionLabel, the emptystate, the delete dialog, the default-profile section, the agents title,
the slug-conflict sentence, both toasts, and the create/delete/save/load
errors. It previously alternated between ប្រវត្តិរូប, ទម្រង់ and
កម្រងព័ត៌មាន, so one screen named the object up to three ways.
title, the picker placeholders, the pinned-repositories card and the
pin/unbind actions. The card previously mixed កន្លែងផ្ទុក with ឃ្លាំង,
and the rest kept the Latin loanword.
agents.model("Model override") said ការបដិសេធគំរូ — model rejection —and now reads ការជំនួសម៉ូដែល.
agents.prompt("System prompt") named an input box and now names theinstructions: ការណែនាំប្រព័ន្ធ.
agents.visibilitySubagentkeeps no English label and no sentence stop,like its two sibling options: ភ្នាក់ងាររង - អាចហៅបានតែពីអ្នកដទៃប៉ុណ្ណោះ.
mcp.localType("Local") said ក្នុងស្រុក, which describes a country, andnow says នៅមូលដ្ឋាន beside the existing ពីចម្ងាយ for Remote.
mcp.headers("Headers (JSON)") used the word for a book preface and nowuses the catalog's HTTP-header term: ក្បាលសំណើ (JSON).
deleteBlockedkept "webhook trigger" untranslated, then referred back toit as គន្លឹះ ("keys"). Both sentences now name the webhook with the
catalog's វេបហ៊ុក term, so the instruction tells the reader what to remove
the profile from.
emptyDescriptionnow reads as one "reuse … across sessions" predicateover environment variables, setup commands and skills, instead of a second
"arrange" verb that took the skills.
deleteMessageopens with an explicit subject for "This", leaving "its"bound to the profile.
newProfile,repoBindings.emptyandemptyTitle,matching the English source and the sibling empty titles.
urlInvalid,saveFailed,deleteFailedandupdateFailedlose it, so every messagein that group reads alike.
deleteFailedandupdateFailedarrived frommainduring the sync and follow the same convention.slashCommands.titlewrites the loanword lowercase,like
slashCommands.emptyandslashCommands.edit.Verification
pnpm --filter kilo-app check:i18n→Found 0 warnings and 0 errors.and
check-catalogs: 87 languages, every catalog matches en.jsonpnpm --filter kilo-app check:plurals→every counted message and every locale declares its plural categoriespnpm --filter kilo-app exec vitest run src/i18n src/components/profiles→43 files, 1892 tests passed (after merging
main)main: 0 keys added, 0 removed, 46 values changed;placeholder sets identical for every changed value
English wording, so no wording exception is needed; the Khmer catalog had no
differing group before or after the change.
Throwaway mounted render run with the app language set to Khmer (real
components, catalog selected from the Khmer file, deleted before committing):
e.g.
profiles.deleteMessage => សកម្មភាពនេះលុបកម្រងព័ត៌មាន និងការកំណត់របស់វាចេញជាអចិន្ត្រៃយ៍។ នេះមិនអាចត្រឡប់វិញបានទេ។and
profiles.mcp.headers => ក្បាលសំណើ (JSON)មិនទាន់មានកម្រងព័ត៌មានទេ, the newdescription, and the create action
កម្រងព័ត៌មានថ្មីការជំនួសម៉ូដែល,ការណែនាំប្រព័ន្ធ, thevisibility heading, and the three visibility options, with
ភ្នាក់ងាររង - អាចហៅបានតែពីអ្នកដទៃប៉ុណ្ណោះas the radio's accessibility labelនៅមូលដ្ឋានandពីចម្ងាយserver rows, the remoteserver's edit sheet renders the
ក្បាលសំណើ (JSON)field, and its failingsave, delete and enable operations raise the Khmer
saveFailed,deleteFailedandupdateFailedmessages with no terminal markបានខ្ទាស់ទៅឃ្លាំងកូដ, its description andthe
ខ្ទាស់ឃ្លាំងកូដactionLimit: the affected screens sit behind sign-in, so no screenshot is published;
the evidence above comes from rendering the real screens and the real catalog in
the app's own test renderer, not from a device capture.
Proxy answers
The owner's proxy gave these answers in the owner's place.
Answer: Whole profiles namespace
Confidence: 0.75 · Precedent: Fix the root cause and the class of the issue: if anything repeats the same mistake over and over again, fix the class; if you saw a gap, fix it
Answer: Whole repoBindings namespace
Confidence: 0.65 · Precedent: Fix the class of the issue on every affected surface; consistency rule across surfaces
Answer: ការជំនួសម៉ូដែល
Confidence: 0.60 · Precedent: Keep similar elements consistent across surfaces: the thought row should match the tool call row
Answer: នៅមូលដ្ឋាន
Confidence: 0.55 · Precedent: Keep similar elements consistent across surfaces
Answer: ក្បាលសំណើ (JSON)
Confidence: 0.70 · Precedent: Keep similar elements consistent across surfaces: the thought row should match the tool call row
Answer: Name the webhook
Confidence: 0.55 · Precedent: Do the least work possible with no drop in quality