fix(i18n): localize settings developer menu#2250
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughReplaces hardcoded English strings in SettingsHome and DeveloperOptionsPanel with i18n keys, adds corresponding translation entries across multiple language chunks, and updates tests to render components with locale-aware providers and preloaded locale state. ChangesSettings UI i18n Integration
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 9
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@app/src/lib/i18n/chunks/ar-5.ts`:
- Around line 164-201: The Arabic locale chunk contains untranslated English
values for the developer/mascot/appearance menu keys; replace the English
strings with proper Arabic translations for the listed keys (e.g.
settings.developerMenu.ai.title, settings.developerMenu.ai.desc,
settings.developerMenu.screenAwareness.title,
settings.developerMenu.screenAwareness.desc,
settings.developerMenu.messagingChannels.title,
settings.developerMenu.messagingChannels.desc,
settings.developerMenu.tools.title, settings.developerMenu.tools.desc,
settings.developerMenu.agentChat.title, settings.developerMenu.agentChat.desc,
settings.developerMenu.cronJobs.title, settings.developerMenu.cronJobs.desc,
settings.developerMenu.localModelDebug.title,
settings.developerMenu.localModelDebug.desc,
settings.developerMenu.webhooks.title, settings.developerMenu.webhooks.desc,
settings.developerMenu.intelligence.title,
settings.developerMenu.intelligence.desc,
settings.developerMenu.notificationRouting.title,
settings.developerMenu.notificationRouting.desc,
settings.developerMenu.composeioTriggers.title,
settings.developerMenu.composeioTriggers.desc,
settings.developerMenu.composioRouting.title,
settings.developerMenu.composioRouting.desc,
settings.developerMenu.integrationTriggers.title,
settings.developerMenu.integrationTriggers.desc, settings.appearance.menuDesc)
preserving the exact key names and string formatting/quoting; update only the
string values with accurate Arabic translations and run a quick locale
lint/preview to confirm no syntax or encoding issues.
In `@app/src/lib/i18n/chunks/bn-5.ts`:
- Around line 167-204: The new Bengali locale entries for keys like
'settings.developerMenu.ai.title', 'settings.developerMenu.ai.desc',
'settings.developerMenu.screenAwareness.title',
'settings.developerMenu.screenAwareness.desc',
'settings.developerMenu.messagingChannels.title',
'settings.developerMenu.messagingChannels.desc',
'settings.developerMenu.tools.title', 'settings.developerMenu.tools.desc',
'settings.developerMenu.agentChat.title',
'settings.developerMenu.agentChat.desc',
'settings.developerMenu.cronJobs.title', 'settings.developerMenu.cronJobs.desc',
'settings.developerMenu.localModelDebug.title',
'settings.developerMenu.localModelDebug.desc',
'settings.developerMenu.webhooks.title', 'settings.developerMenu.webhooks.desc',
'settings.developerMenu.intelligence.title',
'settings.developerMenu.intelligence.desc',
'settings.developerMenu.notificationRouting.title',
'settings.developerMenu.notificationRouting.desc',
'settings.developerMenu.composeioTriggers.title',
'settings.developerMenu.composeioTriggers.desc',
'settings.developerMenu.composioRouting.title',
'settings.developerMenu.composioRouting.desc',
'settings.developerMenu.integrationTriggers.title',
'settings.developerMenu.integrationTriggers.desc', and
'settings.appearance.menuDesc' are still in English; replace each English string
with the correct Bengali translation so the bn-5.ts locale file is fully
localized (apply same fix for the entries around lines 212–213 mentioned in the
review). Ensure translations preserve intent and any punctuation and update only
the string values for those keys.
In `@app/src/lib/i18n/chunks/es-5.ts`:
- Around line 170-207: The new Spanish locale entries under keys like
'settings.developerMenu.ai.title', 'settings.developerMenu.ai.desc',
'settings.developerMenu.screenAwareness.title', etc. are still in English;
translate each English string into proper Spanish and replace the values in
es-5.ts for all entries shown (including the ones noted at the end: the entries
at lines referenced as 215–216), ensuring the keys remain unchanged and
punctuation/formatting (line breaks, quotes, commas) is preserved.
In `@app/src/lib/i18n/chunks/fr-5.ts`:
- Around line 172-209: The French locale file fr-5.ts contains English values
for multiple keys (e.g. settings.developerMenu.ai.title,
settings.developerMenu.ai.desc, settings.developerMenu.screenAwareness.title,
settings.developerMenu.messagingChannels.title,
settings.developerMenu.tools.desc, settings.developerMenu.agentChat.desc,
settings.developerMenu.cronJobs.desc,
settings.developerMenu.localModelDebug.desc,
settings.developerMenu.webhooks.desc, settings.developerMenu.intelligence.desc,
settings.developerMenu.notificationRouting.desc,
settings.developerMenu.composeioTriggers.desc,
settings.developerMenu.composioRouting.desc,
settings.developerMenu.integrationTriggers.desc, settings.appearance.menuDesc
and the items noted at lines 217-218); replace each English string with an
accurate French translation while keeping the exact keys unchanged, preserving
punctuation and intent (concise UI phrasing), and ensure any remaining lines
referenced (217-218) are similarly translated to French before committing.
In `@app/src/lib/i18n/chunks/hi-5.ts`:
- Around line 168-205: The Hindi locale file contains English strings for new
keys (e.g. settings.developerMenu.* keys such as
'settings.developerMenu.ai.title',
'settings.developerMenu.screenAwareness.desc',
'settings.developerMenu.composeioTriggers.desc', and
'settings.appearance.menuDesc' among others); replace those English values with
their correct Hindi translations so the Hindi chunk hi-5.ts fully localizes the
Developer, Appearance and Mascot menu content, updating every key in the shown
block (lines containing settings.developerMenu.* and
settings.appearance.menuDesc) to Hindi equivalents while keeping the keys
unchanged.
In `@app/src/lib/i18n/chunks/id-5.ts`:
- Around line 168-205: Replace the English placeholders in this Indonesian
locale file by translating the developer-menu and nearby labels into Indonesian:
update all keys from 'settings.developerMenu.ai.title' through
'settings.developerMenu.composioRouting.desc' to Indonesian-language strings
(each '.title' and '.desc' pair), and also translate
'settings.appearance.menuDesc' and the mascot/other labels referenced around the
same block; keep the key names identical and only change the string values so
the Settings UI shows full Indonesian text.
In `@app/src/lib/i18n/chunks/it-5.ts`:
- Around line 170-207: The new Italian locale entries are still in
English—translate the developer menu and mascot strings into Italian by
replacing the English values for the listed keys (e.g.
settings.developerMenu.ai.title, settings.developerMenu.ai.desc,
settings.developerMenu.screenAwareness.title,
settings.developerMenu.screenAwareness.desc,
settings.developerMenu.messagingChannels.*, settings.developerMenu.tools.*,
settings.developerMenu.agentChat.*, settings.developerMenu.cronJobs.*,
settings.developerMenu.localModelDebug.*, settings.developerMenu.webhooks.*,
settings.developerMenu.intelligence.*,
settings.developerMenu.notificationRouting.*,
settings.developerMenu.composeioTriggers.*,
settings.developerMenu.composioRouting.*,
settings.developerMenu.integrationTriggers.*, and settings.appearance.menuDesc
plus the mascot labels referenced around lines 215-216) with proper Italian
translations, preserving punctuation and any contextual hints; ensure tone and
terminology match existing it-5.ts conventions and verify no English strings
remain.
In `@app/src/lib/i18n/chunks/pt-5.ts`:
- Around line 171-208: Several new settings keys (e.g.,
'settings.developerMenu.ai.title', 'settings.developerMenu.ai.desc',
'settings.developerMenu.screenAwareness.title',
'settings.developerMenu.screenAwareness.desc',
'settings.developerMenu.messagingChannels.*', 'settings.developerMenu.tools.*',
'settings.developerMenu.agentChat.*', 'settings.developerMenu.cronJobs.*',
'settings.developerMenu.localModelDebug.*', 'settings.developerMenu.webhooks.*',
'settings.developerMenu.intelligence.*',
'settings.developerMenu.notificationRouting.*',
'settings.developerMenu.composeioTriggers.*',
'settings.developerMenu.composioRouting.*',
'settings.developerMenu.integrationTriggers.*' and the entries around 216-217)
are still in English; replace each English string with an accurate Portuguese
translation (matching tone and length of existing pt-5.ts entries), keep the
same key names, preserve punctuation, and run a quick CI/lint check to ensure no
trailing commas or syntax errors after updating the values.
In `@app/src/lib/i18n/chunks/ru-5.ts`:
- Around line 168-205: The new Russian locale file ru-5.ts contains English text
for the Developer Menu and Mascot menu keys; replace the English values with
proper Russian translations for the listed keys (e.g.,
'settings.developerMenu.ai.title', 'settings.developerMenu.ai.desc',
'settings.developerMenu.screenAwareness.title',
'settings.developerMenu.screenAwareness.desc',
'settings.developerMenu.messagingChannels.title',
'settings.developerMenu.messagingChannels.desc',
'settings.developerMenu.tools.title', 'settings.developerMenu.tools.desc',
'settings.developerMenu.agentChat.title',
'settings.developerMenu.agentChat.desc',
'settings.developerMenu.cronJobs.title', 'settings.developerMenu.cronJobs.desc',
'settings.developerMenu.localModelDebug.title',
'settings.developerMenu.localModelDebug.desc',
'settings.developerMenu.webhooks.title', 'settings.developerMenu.webhooks.desc',
'settings.developerMenu.intelligence.title',
'settings.developerMenu.intelligence.desc',
'settings.developerMenu.notificationRouting.title',
'settings.developerMenu.notificationRouting.desc',
'settings.developerMenu.composeioTriggers.title',
'settings.developerMenu.composeioTriggers.desc',
'settings.developerMenu.composioRouting.title',
'settings.developerMenu.composioRouting.desc',
'settings.developerMenu.integrationTriggers.title',
'settings.developerMenu.integrationTriggers.desc', and also the mascot/menu
entries around lines 213-214); locate these keys in ru-5.ts and replace each
English string with the correct Russian translation, keeping punctuation and
formatting consistent with other locale entries.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: bc21c9a2-cba8-4cb3-b5ef-f0d02dd01e2c
📒 Files selected for processing (16)
app/src/components/settings/SettingsHome.tsxapp/src/components/settings/__tests__/SettingsHome.test.tsxapp/src/components/settings/panels/DeveloperOptionsPanel.tsxapp/src/components/settings/panels/__tests__/DeveloperOptionsPanel.test.tsxapp/src/lib/i18n/chunks/ar-5.tsapp/src/lib/i18n/chunks/bn-5.tsapp/src/lib/i18n/chunks/en-5.tsapp/src/lib/i18n/chunks/es-5.tsapp/src/lib/i18n/chunks/fr-5.tsapp/src/lib/i18n/chunks/hi-5.tsapp/src/lib/i18n/chunks/id-5.tsapp/src/lib/i18n/chunks/it-5.tsapp/src/lib/i18n/chunks/pt-5.tsapp/src/lib/i18n/chunks/ru-5.tsapp/src/lib/i18n/chunks/zh-CN-5.tsapp/src/lib/i18n/en.ts
# Conflicts: # app/src/components/settings/SettingsHome.tsx # app/src/components/settings/panels/DeveloperOptionsPanel.tsx
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Summary
Problem
Solution
useTranslation.Submission Checklist
pnpm test:coveragewas not run locally; focused Vitest coverage for the changed Settings/i18n surfaces passes.## Related- N/A: no coverage-matrix feature ID changed.docs/RELEASE-MANUAL-SMOKE.md) - N/A: translation-only Settings UI change.Closes #NNNin the## RelatedsectionImpact
Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
Validation Run
node_modules\.bin\prettier.cmd --check src/components/settings/SettingsHome.tsx src/components/settings/__tests__/SettingsHome.test.tsx src/components/settings/panels/DeveloperOptionsPanel.tsx src/components/settings/panels/__tests__/DeveloperOptionsPanel.test.tsx src/lib/i18n/en.ts src/lib/i18n/chunks/*-5.tspnpm typecheckpnpm --filter openhuman-app test -- src/lib/i18n/__tests__/coverage.test.ts src/components/settings/__tests__/SettingsHome.test.tsx src/components/settings/panels/__tests__/DeveloperOptionsPanel.test.tsxpnpm i18n:checkpnpm --filter openhuman-app compilenode_modules\.bin\eslint.cmd src/components/settings/SettingsHome.tsx src/components/settings/__tests__/SettingsHome.test.tsx src/components/settings/panels/DeveloperOptionsPanel.tsx src/components/settings/panels/__tests__/DeveloperOptionsPanel.test.tsx src/lib/i18n/en.ts src/lib/i18n/chunks --ext .ts,.tsx --cacheValidation Blocked
command:pnpm --filter openhuman-app format:checkerror:Repo-wide Prettier check reports 846 pre-existing files needing formatting; direct Prettier check for changed files passes.impact:Formatting validation for this PR's changed files is covered, but the full repo check remains blocked by existing unrelated formatting drift.command:pnpm --filter openhuman-app lint -- ...error:The app lint script runs the full app and fails on existing unrelated lint errors; direct ESLint for changed files passes.impact:Lint validation for this PR's changed files is covered, but the full app lint gate remains blocked by existing unrelated lint debt.command:pnpm test:coverageerror:Not run locally due full-suite scope; focused Vitest regression tests and i18n coverage check were run.impact:Diff coverage is left to CI; changed Settings/i18n behavior has focused regression coverage.Behavior Changes
Parity Contract
Duplicate / Superseded PR Handling
aqilaziz:codex/OH-2225-settings-i18n.Summary by CodeRabbit
New Features
Tests