Skip to content

fix(i18n): add missing locale keys#1679

Merged
zerob13 merged 1 commit into
devfrom
codex/fix-i18n-missing-translations
May 26, 2026
Merged

fix(i18n): add missing locale keys#1679
zerob13 merged 1 commit into
devfrom
codex/fix-i18n-missing-translations

Conversation

@zerob13
Copy link
Copy Markdown
Collaborator

@zerob13 zerob13 commented May 26, 2026

Summary

  • add missing MCP, prompt upload, and MCP empty-state translations across all supported locales
  • regenerate vue-i18n locale message types
  • archive the SDD notes for the completed i18n fix

Validation

  • pnpm run i18n:types
  • pnpm run format
  • pnpm run i18n
  • pnpm run lint
  • commit hook typecheck

Summary by CodeRabbit

  • Documentation

    • Added internationalization (i18n) management documentation, including implementation plans and task tracking for missing translation key restoration.
  • Localization

    • Restored missing UI text translations across 27 supported languages, including: error messages for MCP client loading failures, required field labels in prompts, upload failure feedback, and guidance text for empty MCP server states.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 26, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4eed248c-3d0c-4553-9462-fba0c7db72e4

📥 Commits

Reviewing files that changed from the base of the PR and between aabd048 and cb802c6.

📒 Files selected for processing (64)
  • docs/archives/i18n-missing-translations/plan.md
  • docs/archives/i18n-missing-translations/spec.md
  • docs/archives/i18n-missing-translations/tasks.md
  • src/renderer/src/i18n/da-DK/mcp.json
  • src/renderer/src/i18n/da-DK/promptSetting.json
  • src/renderer/src/i18n/da-DK/settings.json
  • src/renderer/src/i18n/de-DE/mcp.json
  • src/renderer/src/i18n/de-DE/promptSetting.json
  • src/renderer/src/i18n/de-DE/settings.json
  • src/renderer/src/i18n/en-US/mcp.json
  • src/renderer/src/i18n/en-US/promptSetting.json
  • src/renderer/src/i18n/en-US/settings.json
  • src/renderer/src/i18n/es-ES/mcp.json
  • src/renderer/src/i18n/es-ES/promptSetting.json
  • src/renderer/src/i18n/es-ES/settings.json
  • src/renderer/src/i18n/fa-IR/mcp.json
  • src/renderer/src/i18n/fa-IR/promptSetting.json
  • src/renderer/src/i18n/fa-IR/settings.json
  • src/renderer/src/i18n/fr-FR/mcp.json
  • src/renderer/src/i18n/fr-FR/promptSetting.json
  • src/renderer/src/i18n/fr-FR/settings.json
  • src/renderer/src/i18n/he-IL/mcp.json
  • src/renderer/src/i18n/he-IL/promptSetting.json
  • src/renderer/src/i18n/he-IL/settings.json
  • src/renderer/src/i18n/id-ID/mcp.json
  • src/renderer/src/i18n/id-ID/promptSetting.json
  • src/renderer/src/i18n/id-ID/settings.json
  • src/renderer/src/i18n/it-IT/mcp.json
  • src/renderer/src/i18n/it-IT/promptSetting.json
  • src/renderer/src/i18n/it-IT/settings.json
  • src/renderer/src/i18n/ja-JP/mcp.json
  • src/renderer/src/i18n/ja-JP/promptSetting.json
  • src/renderer/src/i18n/ja-JP/settings.json
  • src/renderer/src/i18n/ko-KR/mcp.json
  • src/renderer/src/i18n/ko-KR/promptSetting.json
  • src/renderer/src/i18n/ko-KR/settings.json
  • src/renderer/src/i18n/ms-MY/mcp.json
  • src/renderer/src/i18n/ms-MY/promptSetting.json
  • src/renderer/src/i18n/ms-MY/settings.json
  • src/renderer/src/i18n/pl-PL/mcp.json
  • src/renderer/src/i18n/pl-PL/promptSetting.json
  • src/renderer/src/i18n/pl-PL/settings.json
  • src/renderer/src/i18n/pt-BR/mcp.json
  • src/renderer/src/i18n/pt-BR/promptSetting.json
  • src/renderer/src/i18n/pt-BR/settings.json
  • src/renderer/src/i18n/ru-RU/mcp.json
  • src/renderer/src/i18n/ru-RU/promptSetting.json
  • src/renderer/src/i18n/ru-RU/settings.json
  • src/renderer/src/i18n/tr-TR/mcp.json
  • src/renderer/src/i18n/tr-TR/promptSetting.json
  • src/renderer/src/i18n/tr-TR/settings.json
  • src/renderer/src/i18n/vi-VN/mcp.json
  • src/renderer/src/i18n/vi-VN/promptSetting.json
  • src/renderer/src/i18n/vi-VN/settings.json
  • src/renderer/src/i18n/zh-CN/mcp.json
  • src/renderer/src/i18n/zh-CN/promptSetting.json
  • src/renderer/src/i18n/zh-CN/settings.json
  • src/renderer/src/i18n/zh-HK/mcp.json
  • src/renderer/src/i18n/zh-HK/promptSetting.json
  • src/renderer/src/i18n/zh-HK/settings.json
  • src/renderer/src/i18n/zh-TW/mcp.json
  • src/renderer/src/i18n/zh-TW/promptSetting.json
  • src/renderer/src/i18n/zh-TW/settings.json
  • src/types/i18n.d.ts

📝 Walkthrough

Walkthrough

This PR restores missing i18n translation keys across 25 supported locales and updates the Vue I18n type definitions. Three consistent keys are added to each locale: MCP error/prompt messages and upload-failure text. The type definitions are substantially expanded to cover onboarding, voice, encryption, provider workflows, scheduled tasks, plugins, and guide setup.

Changes

i18n Missing Translations Restoration

Layer / File(s) Summary
Documentation and Task Tracking
docs/archives/i18n-missing-translations/plan.md, spec.md, tasks.md
Specification, implementation plan, and completion checklist for restoring missing i18n keys across all locales. Documents scope, non-goals, constraints, and validation steps.
Type Definitions for i18n Message Structure
src/types/i18n.d.ts
Comprehensive update to DefineLocaleMessage interface adding nested properties for onboarding, voice, compaction, modelPicker, workspace, save-as status, prompts, MCP, settings navigation, deepchat agents, database encryption, privacy/provider import, scheduled tasks, plugins, control center, image preview, guide, and import providers.
MCP Error and Prompt Keys Across All Locales
src/renderer/src/i18n/*/mcp.json (25 locales)
Adds errors.loadClientsFailed (MCP client-loading failure) and prompts.required (required field label) to all 25 locale JSON files (da-DK, de-DE, en-US, es-ES, fa-IR, fr-FR, he-IL, id-ID, it-IT, ja-JP, ko-KR, ms-MY, pl-PL, pt-BR, ru-RU, tr-TR, vi-VN, zh-CN, zh-HK, zh-TW).
Upload Failed Message Across All Locales
src/renderer/src/i18n/*/promptSetting.json (25 locales)
Adds uploadFailed localization string to prompt settings across all 25 locales, providing UI messaging for failed file/prompt uploads.
MCP No Servers Description Across All Locales
src/renderer/src/i18n/*/settings.json (25 locales)
Adds mcp.noServersDescription to MCP settings section across all 25 locales, displaying guidance when no MCP servers are configured.

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly Related PRs

  • ThinkInAIXYZ/deepchat#1353: Adds new UI controls that consume the MCP-related i18n keys (errors.loadClientsFailed, prompts.required, mcp.noServersDescription) being restored in this PR.
  • ThinkInAIXYZ/deepchat#654: Introduces i18n type generation script/plugin that the updated src/types/i18n.d.ts depends on.

Suggested Labels

codex

Poem

🐰 A rabbit hops through twenty-five locales,
Planting translation seeds in every tale—
"Upload failed," "required," "no servers here,"
i18n keys bloom, crystal clear.
Type definitions dance, now complete—
Missing translations, no more feat! 🌍

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'fix(i18n): add missing locale keys' directly and specifically describes the main change—adding missing internationalization translation keys across supported locales.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-i18n-missing-translations

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@zerob13 zerob13 merged commit 9d81d6f into dev May 26, 2026
3 checks passed
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.

1 participant