Skip to content

fix(mobile): correct Hungarian profile, agent and skill copy - #8206

Open
iscekic wants to merge 1 commit into
mainfrom
drain/hu-profile-agent-skill-copy
Open

iscekic wants to merge 1 commit into
mainfrom
drain/hu-profile-agent-skill-copy

Conversation

@iscekic

@iscekic iscekic commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Corrects 25 Hungarian values in apps/mobile/src/i18n/locales/hu.json. Values only; keys, key order, placeholders and $t() references are unchanged.

  • Profile entry and variables: entrySubtitle uses the a munkamenetek között wording of emptyDescription; namePlaceholder lowercases the example after például; keyLabel becomes the noun Kulcs.
  • Toasts: createdToast/deletedToast drop the fixed article before {{name}}, so any user-entered name stays grammatical.
  • Reordering and commands: moveUp/moveDown become one formal imperative pair (Mozgassa fel / Mozgassa le); commandPlaceholder uses the pl. abbreviation of the sibling placeholders.
  • Delete block: deleteBlocked names the webhook triggers with one term in both sentences.
  • Skills: one Készség term throughout (addSkill, skillNameLabel, skillEditTitle, skillMarkdownLabel, skillContentRequired, skillSaveFailed, skillsHint); addSkill is a singular action label; skillsHint is one register with the reflexive kitöltődik.
  • MCP: mcp.empty and mcp.saveFailed use the szerver term the sibling profiles.mcp keys already use.
  • Agents: slug/slugRequired/slugConflict/slugInvalid use one accurate slug term with the common noun lowercase mid-sentence; modelPlaceholder is a complete phrase; prompt is one closed compound; visibilityAll uses the same spaced en dash as its siblings.

profiles.mcp.secretCount is not named by the work item's key list and stays unchanged, per the owner's answer.

Verification

On this VM, against the branch head:

  • pnpm --filter kilo-app run check:i18n — oxlint i18n config (0 problems) and check-catalogs.mjs: 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 exec vitest run src/i18n — 16 files, 1609 tests passed.
  • pnpm --filter kilo-app run format:check — no files differ.
  • Throwaway i18next smoke with the app's own options (compatibilityJSON: 'v4', fallbackLng: 'en'): all 25 changed keys resolve to the new Hungarian value with {{name}} bound and no English fallback; profiles.mcp.secretCount still resolves to Titkos szám.

Android emulator end to end (headless omp36, local dev stack on this VM, fake local account, app language set to Hungarian):

  • Profile tab row shows Használja újra a környezeti beállításokat a munkamenetek között.
  • New-profile name placeholder reads például háttérbeli hibakeresés; deleting a profile raises "…" profil törölve with no fixed article.
  • Skills screen and sheet: Készség hozzáadása button and title, Készség neve / Készség tartalma labels, the new hint line, and A készség tartalma kötelező when saving with empty content.
  • MCP screen empty state reads Még nincsenek MCP szerverek.
  • Agent form: Ügynök slug, Rendszerprompt, A munkamenet alapértelmezettjének használata, and Mind – mindkettő in the visibility picker.
  • Variables form: Kulcs. Setup-command form: pl. pnpm install, with Mozgassa fel / Mozgassa le on the reorder controls.
  • profiles.agents.slugInvalid could not be reached from the UI: the client lowercases the slug field before validation, so an invalid-format save normalizes and succeeds. The string is covered by the catalog check and the runtime smoke.

Screenshots follow in a comment on this pull request.

Proxy answers

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

  1. Question: secretCount: Finding Security - Fix npm audit vulnerabilities #12 (profiles.mcp.secretCount "Titkos szám" → "Titkok száma") is approved for this work item, but the brief's key enumeration omits it. Change it?
    Answer: Include it (Recommended)
    Confidence: 0.60 · Precedent: Autonomy: 'if you saw a gap, fix it' (session 89824a222897). The finding is approved for this item, and it is the same file and the same kind of copy fix.
  2. Question: skillSaveFailed: profiles.skillSaveFailed is reused for create, update, delete and enable-toggle failures. Which Hungarian value?
    Answer: "Nem sikerült elmenteni a készséget"
    Confidence: 0.45 · Precedent: none
  3. Question: Toasts: createdToast/deletedToast currently hard-code "A" before {{name}}. Which construction?
    Answer: "{{name}}" profil létrehozva / törölve (Recommended)
    Confidence: 0.80 · Precedent: Speed: least work with no drop in quality, 'do the least amount of work possible, with no drop in quality' (session 7f3470e0ba6f). The brief also says to drop the article before {{name}}.
  4. Question: E2E depth: How far should end-to-end verification go for this copy-only change?
    Answer: Android emulator + screenshots (Recommended)
    Confidence: 0.75 · Precedent: Proof: 'logs and/or screenshots are mandatory proof ... make sure they make sense' (session 55c9c80332a7). Screenshots go up as comment uploads, 'Upload the images to the PR so reviewers can see' (session 884b92b7395e).
  5. Question: entrySubtitle: profiles.entrySubtitle: the brief names the „munkamenetek közötti” wording from emptyDescription, but that form is attributive. Which final phrase?
    Answer: „… a munkamenetek között” (Recommended)
    Confidence: 0.70 · Precedent: Fix the root cause and the class of the issue: the brief wants the emptyDescription wording, and the adverbial form is the grammatical way to carry it here
  6. Question: skillsHint: profiles.skillsHint second clause (English: "add a skill from your phone without drag and drop"). Which wording?
    Answer: „…; töltsön fel egy készséget a telefonjáról húzás nélkül.”
    Confidence: 0.40 · Precedent: Make every surface pleasant to look at and remove redundant copy: the literal „húzás és ejtés” is an unnatural calque, and the finding's shorter formal wording reads naturally
  7. Question: Slug label: profiles.agents.slug label: which term for the field?
    Answer: „Ügynök slug” (Recommended)
    Confidence: 0.60 · Precedent: Do the least work with no drop in quality: the brief prescribes one slug term, lowercase mid-sentence, and this option keeps the sibling keys consistent without rewording
  8. Question: Move pair: profiles.moveUp/moveDown are accessibility labels on chevron reorder buttons. Which matching pair?
    Answer: „Mozgassa fel” / „Mozgassa le” (Recommended)
    Confidence: 0.75 · Precedent: Keep similar elements consistent across surfaces: this matches the formal imperative a11y labels already used on the profile surface
  9. Question: MCP hyphen: profiles.mcp.empty/saveFailed: findings recommend hyphenated „MCP-szerver”, while the six sibling keys the brief calls the standard write „MCP szerver” with a space. Which form for the two changed keys?
    Answer: Spaced: „MCP szerverek” / „MCP szervert” (Recommended)
    Confidence: 0.85 · Precedent: Keep each PR diff to files that the feature needs (session df491946927a: "PR should be checked for stray changes before merging"). The brief makes the six sibling keys' „MCP szerver” the standard, and those keys are out of scope.
  10. Question: secretCount: profiles.mcp.secretCount value (accessibility label on the lock badge + number):
    Answer: Leave profiles.mcp.secretCount unchanged. The brief does not name it, and the brief says to change only the named keys. Only if the key is missing or broken and check:i18n fails, use „Titkok száma”.
    Confidence: 0.50 · Precedent: Keep each PR diff to files that the feature needs (session 7f3470e0ba6f: owner asked for checks against unrelated changes). Put each separate concern in its own PR (session debabfb38c82).

@iscekic iscekic added drain Work item from the findings drain janitor:i18n Janitor finding: mobile copy and catalog checks labels Oct 20, 2026
@iscekic

iscekic commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator Author

bot: Android emulator proof for the Hungarian profile, agent and skill copy. Headless omp36, local dev stack on the work VM, fake local test account, app language set to Hungarian. Each capture shows the changed copy as rendered by the app; the text was also confirmed in the UI hierarchy dump at capture time.

Order: profile entry and new-profile placeholder, MCP empty state, skills list and sheet with the required-content error, agent form and visibility options, variables key label, setup-command form with reorder labels, and the delete toast without a fixed article.

Two notes on scope: profiles.agents.slugInvalid is not reachable from the UI because the field lowercases the slug before validation, so the invalid-format save normalizes instead; and profiles.mcp.secretCount is intentionally unchanged because the work item's key list does not name it.

Profile tab row with the updated entry subtitle

New profile form showing the lowercase example placeholder

MCP section empty state using the server term

Skills screen with the singular add action label

Add-skill sheet with title, labels and hint

Skill sheet showing the required-content error

Agent form with slug, prompt and model placeholder values

Visibility options with the spaced en dash

Variable form with the key label

Setup command form with example placeholder and reorder labels

Profile delete toast without a fixed article

@kilo-code-bot

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

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

The change is a copy-only update of 25 Hungarian values in hu.json; all keys, key order, {{name}} placeholders and JSON structure are intact, values are unique within the catalog, and every string matches the meaning of its en.json counterpart.

Files Reviewed (1 file)
  • apps/mobile/src/i18n/locales/hu.json - 0 issues (25 value-only changes; {{name}} preserved in createdToast/deletedToast; no duplicate values introduced)

Reviewed by deepseek-v4.1-flash-1017 · Input: 58.9K · Output: 17.1K · Cached: 717.2K

Review guidance: REVIEW.md from base branch main

@iscekic iscekic added merge:bot Bot-owned review; readiness checks still apply before merging. merge:human Substantive functional risk requires human review. and removed merge:bot Bot-owned review; readiness checks still apply before merging. merge:human Substantive functional risk requires human review. labels Oct 20, 2026
@iscekic iscekic added the merge:blocked Agent-owned readiness prerequisites remain unresolved; do not merge. label Oct 20, 2026

This branch has not been deployed

No deployments
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:blocked Agent-owned readiness prerequisites remain unresolved; do not merge. merge:bot Bot-owned review; readiness checks still apply before merging.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants