Skip to content

RI-8272 i18n: migrate settings pages#6154

Open
valkirilov wants to merge 8 commits into
mainfrom
fe/feature/RI-8272/i18n-migrate-settings
Open

RI-8272 i18n: migrate settings pages#6154
valkirilov wants to merge 8 commits into
mainfrom
fe/feature/RI-8272/i18n-migrate-settings

Conversation

@valkirilov

@valkirilov valkirilov commented Jul 6, 2026

Copy link
Copy Markdown
Member

What

Migrate the Settings pages' user-facing strings to i18next (t() / <Trans>). New keys are namespaced by settings section under settings.* (general, privacy, workbench, cloud, advanced) plus settings.appVersion, with English + Bulgarian added to en.json / bg.json. Per-section coverage is shown in the screenshots below.

Not translated (out of scope — follow-up PR): the Notifications/Privacy consent toggle labels & descriptions come from the backend agreements spec (agreements-spec.json), not the UI, and the backend has no i18n layer yet — those lines stay English in the screenshots.

Screenshots (EN | BG)

Section English Български
General en-general bg-general
Privacy en-privacy bg-privacy
Workbench en-workbench bg-workbench
Redis Cloud en-cloud bg-cloud
Advanced en-advanced bg-advanced

Testing

  • Manual: open Settings, switch the Language dropdown EN↔BG (or append ?lang=bg); verify each section renders translated.

Closes RI-8272

Related community requests: #605, #1317, #1883, #2040, #2137, #2181, #2213, #2417, #2550, #2590, #2695, #2715, #2716, #2727, #2828, #2912, #2943, #2945, #3081, #3141, #3142, #3319, #3411, #3601, #3625, #3628, #3663, #3671, #3812, #3815, #4150, #4182, #4408, #4664, #4672, #4744, #5052, #5967

🤖 Generated with Claude Code


Note

Low Risk
UI-only string and translation wiring; settings behavior and persistence are unchanged aside from displayed text and link markup.

Overview
Migrates Settings user-facing copy to i18next (t() / <Trans>) across General (language, theme, date/time, notifications header), Privacy, Workbench, Redis Cloud, Advanced, and the app version footer. New strings live under settings.* in en.json and bg.json, with older settings.language.* keys folded into settings.general.language.*.

Cloud and Workbench sections use <Trans> for inline links (Redis Cloud sign-in, pipelining docs); Redis Cloud delete flows use escapeTrans on dynamic API key names. escapeTrans is moved from success-messages.tsx into uiSrc/i18n/escapeTrans.ts and re-exported from the i18n barrel.

Consent toggle labels/descriptions are unchanged—they still come from the backend agreements spec (called out as out of scope).

Reviewed by Cursor Bugbot for commit d03e2b8. Bugbot is set up for automated code reviews on this repo. Configure here.

valkirilov and others added 7 commits July 6, 2026 14:14
Route Theme, Language, Notifications title, and Date/Time formatter
user-facing strings through t() under settings.general.*, including the
theme and timezone dropdown option labels. Retire the unused
settings.language.* orphan keys.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Route Workbench editor-cleanup and pipeline strings through t() under
settings.workbench.*; the pipeline summary uses <Trans> for its inline
docs link.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Route Redis Cloud API-keys settings and the keys table through t() under
settings.cloud.*; link/interpolation strings use <Trans>. Derive the
clear-keys URL from the shared EXTERNAL_LINKS constant instead of a
hardcoded literal.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Route the keys-to-scan advanced setting strings through t() under
settings.advanced.*.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Route the Redis Insight version label through t() with version
interpolation (settings.appVersion).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Prettier fix for the general settings migration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Route the Privacy section intro and Usage Data title through t() under
settings.privacy.*. Consent toggle labels/descriptions remain
backend-supplied and out of scope.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@valkirilov valkirilov requested a review from a team as a code owner July 6, 2026 12:17

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d887cfa35f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@valkirilov valkirilov self-assigned this Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage - Frontend unit tests

St.
Category Percentage Covered / Total
🟢 Statements 83.7% 26840/32065
🟡 Branches 69.42% 11416/16446
🟡 Functions 79.01% 7172/9077
🟢 Lines 84.17% 26146/31064

Test suite run success

7593 tests passing in 847 suites.

Report generated by 🧪jest coverage report action from d03e2b8

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Images automagically compressed by Calibre's image-actions

Compression reduced images by 70.3%, saving 203.4 KB.

Filename Before After Improvement Visual comparison
pr-screenshots/bg-general.png 49.1 KB 14.7 KB 70.1% View diff
pr-screenshots/en-general.png 45.0 KB 13.0 KB 71.1% View diff
pr-screenshots/bg-cloud.png 35.8 KB 10.4 KB 70.9% View diff
pr-screenshots/en-cloud.png 28.8 KB 8.5 KB 70.4% View diff
pr-screenshots/bg-advanced.png 25.5 KB 7.4 KB 71.1% View diff
pr-screenshots/bg-privacy.png 22.7 KB 7.1 KB 68.5% View diff
pr-screenshots/en-advanced.png 21.1 KB 6.0 KB 71.5% View diff
pr-screenshots/bg-workbench.png 21.6 KB 6.6 KB 69.5% View diff
pr-screenshots/en-privacy.png 21.0 KB 6.6 KB 68.6% View diff
pr-screenshots/en-workbench.png 18.7 KB 5.6 KB 70.1% View diff

@CLAassistant

CLAassistant commented Jul 6, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7199cc0. Configure here.

The API-keys delete confirmation interpolated the (user-named) key into a
<Trans> markup string with escapeValue off, so a name containing </> could
render as markup. Escape it via a shared escapeTrans helper (extracted from
success-messages.tsx to uiSrc/i18n, now reused in both).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@valkirilov valkirilov force-pushed the fe/feature/RI-8272/i18n-migrate-settings branch from 7199cc0 to d03e2b8 Compare July 6, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants