RI-8268 Translate all backend error codes (round 3)#6127
Conversation
🛡️ Jit Security Scan Results✅ No security findings were detected in this PR
Security scan by Jit
|
ec81b1c to
618d0da
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ec81b1c2e9
ℹ️ 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".
Code Coverage - Integration Tests
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ba130f4cf
ℹ️ 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".
e63fa65 to
b5ffaae
Compare
8ba130f to
7811f9f
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ 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 7811f9f. Configure here.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7811f9f892
ℹ️ 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".
7811f9f to
260a0b1
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 260a0b11d0
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 904c12ac2e
ℹ️ 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".
403254f to
12f1111
Compare
7dc70db to
5c6f079
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5c6f079a24
ℹ️ 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".
Code Coverage - Frontend unit tests
Test suite run success7474 tests passing in 840 suites. Report generated by 🧪jest coverage report action from 5c6f079 |
12f1111 to
1a6659f
Compare
5c6f079 to
8dc98e3
Compare
Migrate success-messages.tsx factories to i18n (notification.success.* keys),
using the i18n singleton + <Trans> for bold names, the Release Notes link, and
{{total}} counts. MESSAGE_ACTION now resolves its action word (claimed/
acknowledged) through i18n so the whole toast localizes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Migrate INFINITE_MESSAGES to i18n (notification.infinite.* keys) via the i18n singleton + <Trans> for the bold Notice and inline Redis Cloud link, with a button.* segment for the action labels (Manage DB, Connect, Import, OK, Create, Restart). Keys re-sorted to i18next-cli's canonical order via i18n:extract. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The value type (Member/Field/Group/Entry/Element/Consumer/JSON key) was an English literal interpolated into the title, producing mixed-language Bulgarian toasts. Add a per-type title key for each so it reads correctly and agrees in gender in Bulgarian. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
<Trans> parses interpolated values as markup (escapeValue is off), so a Redis key/name containing e.g. "<br/>" was rendered as a tag instead of literal text. Escape the user-provided values before interpolating them. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1a6659f to
042c0a2
Compare
Add api.error.code.<n>.{title,message,...} for the remaining backend error codes
(connection, cloud jobs, AI, RDI, import, encryption, misc, generic). Rebuilt on
the api.error.code.* namespace; the per-code error text now lives under api.* while
FE toast chrome stays under notification.*. en/bg parity, 301 keys.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
These codes wrap runtime detail into the backend message (cloud-job failure reason, RDI detail, import filename), so drop their static .message and keep only .title — the localized lookup now falls through to the backend message instead of overriding it with generic copy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Title-only entries so the heading localizes while the backend message (which carries the sanitized runtime detail) still shows. Closes the SSH range gap. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
RedisConnectionFailedException (10900) and CloudOauthMissedRequiredDataException (11009) carry runtime detail in their message (driver/OS reason, missing-field list), so drop their static .message and keep only .title. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8dc98e3 to
b0a0d6b
Compare
* feat(ui): localize interpolated backend error messages (RI-8268) * fix(ui): render newlines in the default error toast body (RI-8268) Refs: RI-8268

What
Round 3 of frontend notification translation, stacked on the baseline (#6126). Fills in i18n coverage for all remaining backend error codes from #6125 — going from 15 to ~80 translated codes.
Data-only. Round 1 wired a fully dynamic lookup (
getTranslatedApiError/getTranslatedApiTitleresolvenotification.error.code.<n>.title/.messageat runtime, with English fallback;removeUnusedKeys: false). So this PR adds keys toen.json+bg.jsononly — no.tsxchanges — and coded errors now render alocalized title + body instead of the backend English.
Per-domain commits:
Conventions kept from rounds 1–2:
.titleonly, so the backend message (with its specifics) still shows:10905/10907(connection),11407/11408/11409(RDI pipeline, like11401), and the generic12_xxxfamily.i18n:extractcanonical order (idempotent).Testing
yarn type-check(additive keys, baseline clean),yarn test(error/notification specs green),yarn i18n:extract(no churn, parity holds).yarn dev:ui, dispatch a raw coded error from the console and confirm localized title+body, plus?lang=bg:Part of RI-8268
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
Note
Low Risk
Mostly additive locale strings plus a cosmetic pre-line style on error notifications; no auth or business-logic changes.
Overview
Round 3 expands localized API error coverage from a small set to roughly 80 backend
errorCodevalues by adding matchingapi.error.code.<n>.title/.messageentries inen.jsonandbg.json. Existing runtime lookup (getTranslatedApiError/getTranslatedApiTitle) picks these up automatically, so coded errors show localized titles and bodies (including Bulgarian via?lang=bg) instead of raw English from the API.Domains covered in the new keys include Redis connection (10900–10908), Cloud OAuth/CAPI gaps, cloud jobs/subscriptions (11100–11116), database (11200), AI assistant/service limits (113xx), RDI (11402–11411), SSH/tunnel titles (116xx), import/SSH certs (11700–11710), encryption/keytar (11800–11807), remote config (119xx), and generic HTTP-style title-only codes (12100, 124xx, 12500). Several codes use title-only or
{{detail}}/{{url}}interpolation so runtime-specific backend text still appears where intended.A small notification UI tweak applies
white-space: pre-lineon default error text so messages with embedded newlines (e.g....\n{{detail}}) display on multiple lines.Reviewed by Cursor Bugbot for commit 37d4e63. Bugbot is set up for automated code reviews on this repo. Configure here.