Skip to content

Fix docs localization consistency#276

Merged
NLipatov merged 10 commits into
mainfrom
fix/frontend-localization-audit
Mar 21, 2026
Merged

Fix docs localization consistency#276
NLipatov merged 10 commits into
mainfrom
fix/frontend-localization-audit

Conversation

@NLipatov

@NLipatov NLipatov commented Mar 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace unsupported ICU plural usage in docs benchmarks with Docusaurus plural handling
  • align benchmark copy and locale-aware formatting across all translated code.json files
  • add localization consistency checks for custom code translations, navbar keys, and localized docs trees

Testing

  • node docs/TunGo/scripts/check-localization.js

Summary by CodeRabbit

  • Internationalization
    • Replaced count-based peer labels with a static "Peers" label and parameterized benchmark messages across locales; added navbar title and logo alt translations.
  • Improvements
    • Benchmarks use locale-aware number/latency formatting and improved peer display in charts and tables; notes now use parameter placeholders.
  • Chores
    • Added a localization validation check and integrated an i18n check into the build process.
  • Style
    • Refined benchmark card/table layout, spacing and responsive behavior.
  • Cleanup
    • Removed an unused example page and obsolete imports.

@coderabbitai

coderabbitai Bot commented Mar 20, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds a localization validator invoked during docs build, parameterizes benchmark i18n templates and replaces pluralized peer-count keys with static labels across locales, introduces locale-aware number/latency formatters in the benchmarks UI, updates benchmarks styles, and adds navbar translations for multiple locales.

Changes

Cohort / File(s) Summary
I18n code files
docs/TunGo/i18n/{ar,de,en,es,fr,id,ja,pt,ru,zh-Hans}/code.json
Removed ICU plural/peer-count keys (bench.legend.peers, bench.table.peerCount), added bench.table.peers, localized/renamed lookup/miss-path/lookup metric keys, and replaced hardcoded notes with parameterized templates ({minCount}, {maxCount}, {startLatency}, {firstCount}, {endLatency}, {lastCount}).
I18n navbar files
docs/TunGo/i18n/{ar,de,es,fr,id,ja,pt,ru,zh-Hans}/docusaurus-theme-classic/navbar.json
Added navbar branding keys title and logo.alt with locale-specific messages and descriptions.
Localization validation & build
docs/TunGo/package.json, docs/TunGo/scripts/check-localization.js
Added check:i18n script and updated build to run it; new Node script validates code.json presence/parity, flags ICU plural usage, verifies placeholder consistency, checks navbar key parity, and validates localized docs file parity; fails build on errors.
Benchmarks page (logic/UI)
docs/TunGo/src/pages/benchmarks.js
Added useBenchmarkFormatting hook (Intl-based formatters), changed Sparkline/FullCycleTable/FastPathTable signatures to accept formatting and peer formatters, switched some table cells to <th scope="row">, and replaced hardcoded benchmark strings with parameterized, locale-formatted values.
Benchmarks styling & misc pages
docs/TunGo/src/pages/benchmarks.module.css, docs/TunGo/src/pages/index.js
Adjusted card layout to flex with equal-height behavior, added .srOnly, refined table/header alignment and responsive spacing; removed unused Docusaurus context import from index.js.
Cleanup
docs/TunGo/src/pages/markdown-page.md
Deleted example markdown page.

Sequence Diagram(s)

sequenceDiagram
  participant DevCI as Developer/CI
  participant NPM as npm (scripts)
  participant Check as check-localization.js
  participant FS as Filesystem (i18n, docs)
  participant Docusaurus as docusaurus build

  DevCI->>NPM: npm run build
  NPM->>Check: run check-localization.js
  Check->>FS: read i18n/*/code.json, navbar.json, docs/*
  FS-->>Check: return file sets & contents
  alt validation passes
    Check-->>NPM: exit 0 / "Localization validation passed."
    NPM->>Docusaurus: docusaurus build
    Docusaurus-->>NPM: build artifacts
    NPM-->>DevCI: build succeeded
  else validation fails
    Check-->>NPM: exit 1 / "Localization validation failed"
    NPM-->>DevCI: build aborted (non-zero exit)
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐇 I hopped through JSON keys with care,

Replaced fixed counts with placeholders fair,
I checked each locale, file, and doc,
So benchmarks sing in every clock,
A little rabbit guarding i18n flair.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'Fix docs localization consistency' directly and clearly summarizes the main objective of the changeset—adding localization consistency checks and replacing unsupported ICU plural usage across docs.

✏️ 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 fix/frontend-localization-audit

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.

@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: 596c6e4ad7

ℹ️ 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".

Comment thread docs/TunGo/src/pages/benchmarks.js Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/TunGo/i18n/ru/code.json`:
- Around line 107-108: The "bench.peerCount.plurals" entry only provides three
variants; update it to include all four Russian plural forms ("one", "few",
"many", "other") by supplying a fourth message string for the missing form while
preserving the {countLabel} placeholder; modify the "bench.peerCount.plurals"
object to contain four plural variants in the correct order (one, few, many,
other) so Intl.PluralRules for Russian is satisfied.

In `@docs/TunGo/scripts/check-localization.js`:
- Around line 71-79: The plural validation currently checks if forms < 2 which
misses languages with more categories; update the check in the block that
handles keys ending with '.plurals' to compare forms against
pluralCategories.length (i.e., if (forms < pluralCategories.length) push an
error), and adjust the error text built with path.relative(projectRoot,
codeJsonPath), key, forms and locale to state that it defines only X plural
forms but Y are required for that locale (use pluralCategories.length for the
required count).

In `@docs/TunGo/src/pages/benchmarks.js`:
- Around line 342-351: The MetricCard for the fast-path lookup currently
hardcodes "~4-15 ns"; update it to derive its value from the data
(repository.fastPath or benchmarkSnapshot.fastPath) and format it using the same
helpers as the note (i.e., useBenchmarkFormatting() / the existing formatting
function used elsewhere) so the displayed range stays in sync; replace the
literal value prop on the MetricCard with a computed string built from
repository.fastPath (or benchmarkSnapshot) and the existing translate/format
helpers (same pattern as formatPeerCount) so localization and snapshot
consistency are preserved.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 57a82715-4d48-4db6-b9ff-67a7d271b773

📥 Commits

Reviewing files that changed from the base of the PR and between 8583956 and 596c6e4.

📒 Files selected for processing (25)
  • docs/TunGo/i18n/ar/code.json
  • docs/TunGo/i18n/ar/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/de/code.json
  • docs/TunGo/i18n/de/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/en/code.json
  • docs/TunGo/i18n/es/code.json
  • docs/TunGo/i18n/es/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/fr/code.json
  • docs/TunGo/i18n/fr/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/id/code.json
  • docs/TunGo/i18n/id/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/ja/code.json
  • docs/TunGo/i18n/ja/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/pt/code.json
  • docs/TunGo/i18n/pt/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/ru/code.json
  • docs/TunGo/i18n/ru/docusaurus-theme-classic/navbar.json
  • docs/TunGo/i18n/zh-Hans/code.json
  • docs/TunGo/i18n/zh-Hans/docusaurus-theme-classic/navbar.json
  • docs/TunGo/package.json
  • docs/TunGo/scripts/check-localization.js
  • docs/TunGo/src/i18n/usePluralMessage.js
  • docs/TunGo/src/pages/benchmarks.js
  • docs/TunGo/src/pages/index.js
  • docs/TunGo/src/pages/markdown-page.md
💤 Files with no reviewable changes (2)
  • docs/TunGo/src/pages/markdown-page.md
  • docs/TunGo/src/pages/index.js

Comment thread docs/TunGo/i18n/ru/code.json Outdated
Comment thread docs/TunGo/scripts/check-localization.js
Comment thread docs/TunGo/src/pages/benchmarks.js

@coderabbitai coderabbitai 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.

♻️ Duplicate comments (1)
docs/TunGo/src/pages/benchmarks.js (1)

343-352: ⚠️ Potential issue | 🟡 Minor

Fast-path metric value is still hardcoded and can drift from snapshot data.

The value for fast-path lookup still bypasses benchmarkSnapshot + formatting helpers, so it can become inconsistent with the localized note and underlying data.

💡 Suggested fix
@@
   const missPathStart = benchmarkSnapshot.repository.missPath[0];
   const missPathEnd = benchmarkSnapshot.repository.missPath[benchmarkSnapshot.repository.missPath.length - 1];
+  const fastPathLatencies = benchmarkSnapshot.repository.fastPath.flatMap((row) =>
+    row.series.map((point) => point.ns),
+  );
+  const fastPathMinNs = Math.min(...fastPathLatencies);
+  const fastPathMaxNs = Math.max(...fastPathLatencies);
@@
           <MetricCard
             label={translate({id: 'bench.metric.lookup', message: 'Fast-path lookup'})}
-            value="~4-15 ns"
+            value={`${formatNs(fastPathMinNs)} -> ${formatNs(fastPathMaxNs)}`}
             note={translate(
               {
                 id: 'bench.metric.lookupNote',
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/TunGo/src/pages/benchmarks.js` around lines 343 - 352, The MetricCard
for the "Fast-path lookup" is using a hardcoded value "~4-15 ns" which can drift
from snapshot data; update the value prop to derive its string from the
benchmarkSnapshot and existing formatting helpers (e.g., use
benchmarkSnapshot.lookup or the appropriate snapshot key and pass it through the
latency/metric formatter function used elsewhere such as formatLatency or
formatMetric) instead of the literal string so the displayed value stays
consistent with the localized note and snapshot data in the MetricCard
component.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@docs/TunGo/src/pages/benchmarks.js`:
- Around line 343-352: The MetricCard for the "Fast-path lookup" is using a
hardcoded value "~4-15 ns" which can drift from snapshot data; update the value
prop to derive its string from the benchmarkSnapshot and existing formatting
helpers (e.g., use benchmarkSnapshot.lookup or the appropriate snapshot key and
pass it through the latency/metric formatter function used elsewhere such as
formatLatency or formatMetric) instead of the literal string so the displayed
value stays consistent with the localized note and snapshot data in the
MetricCard component.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c923d640-6cfc-46c8-8341-d5e9036701b5

📥 Commits

Reviewing files that changed from the base of the PR and between 596c6e4 and 933df57.

📒 Files selected for processing (1)
  • docs/TunGo/src/pages/benchmarks.js

@coderabbitai coderabbitai 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.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/TunGo/src/pages/benchmarks.js`:
- Around line 177-180: The legend currently renders numeric-only peer counts in
series.map (inside the element with class Styles.legendEntry and child classes
Styles.legendPeers / Styles.legendValue) causing loss of context for assistive
tech; update the JSX that uses peerLabelFormatter(point.peers) and
formatter(point[valueKey]) to include an accessible string that preserves the
"Peers" context (e.g., add a visually-hidden or aria-only label combining a
translated "Peers" string with the count) so screen readers announce "X peers"
while keeping the visible numeric-only label unchanged; use the existing
peerLabelFormatter and your i18n translation function for the "Peers" text to
build the accessible label.
- Line 225: FullCycleTable is currently stringifying entry.allocs directly
(leaving allocs/op unlocalized); update FullCycleTable to format allocs with a
locale-aware formatter instead of raw stringifying—either call
Number(entry.allocs).toLocaleString() when rendering allocs/op or add a
formatAlloc (or reuse an existing numeric formatter) prop and use that
(referencing FullCycleTable and the entry.allocs render spot) so allocs/op
respects the user locale and non-Latin numerals.
- Around line 302-305: The table body currently renders every cell as a <td>,
which loses the lookup-name association for screen readers; update the rows
rendering inside rows.map (the row.map callback using rowIndex and columnIndex)
so that when columnIndex === 0 you render the first cell as a row header (use a
<th> with scope="row" and the same key pattern) and render all other cells as
<td>, preserving keys and content to maintain existing layout and keys like
`row-${rowIndex}-col-${columnIndex}`.

In `@docs/TunGo/src/pages/benchmarks.module.css`:
- Around line 64-66: The new flex-column rules intended to bottom-align
sparklines are being overridden by a later `.chartCard { display: grid; }`;
either keep `.chartCard` as flex or move the vertical-alignment rules to a
dedicated inner wrapper. Update the stylesheet so that `chartCard` retains
`display: flex; flex-direction: column; min-height: 100%; margin-top: auto;`
(remove or change the later `.chartCard { display: grid; }`), or instead create
a child selector (e.g., `.chartCard > .contentWrapper`) and apply the
flex/column/min-height/margin-top rules there, and ensure other grid rules
target the correct child so the layout is not overridden.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bbfc8844-558f-412b-8817-2e9d9bedad73

📥 Commits

Reviewing files that changed from the base of the PR and between 8e06c58 and 86a6161.

📒 Files selected for processing (12)
  • docs/TunGo/i18n/ar/code.json
  • docs/TunGo/i18n/de/code.json
  • docs/TunGo/i18n/en/code.json
  • docs/TunGo/i18n/es/code.json
  • docs/TunGo/i18n/fr/code.json
  • docs/TunGo/i18n/id/code.json
  • docs/TunGo/i18n/ja/code.json
  • docs/TunGo/i18n/pt/code.json
  • docs/TunGo/i18n/ru/code.json
  • docs/TunGo/i18n/zh-Hans/code.json
  • docs/TunGo/src/pages/benchmarks.js
  • docs/TunGo/src/pages/benchmarks.module.css
🚧 Files skipped from review as they are similar to previous changes (7)
  • docs/TunGo/i18n/ar/code.json
  • docs/TunGo/i18n/en/code.json
  • docs/TunGo/i18n/fr/code.json
  • docs/TunGo/i18n/ru/code.json
  • docs/TunGo/i18n/pt/code.json
  • docs/TunGo/i18n/ja/code.json
  • docs/TunGo/i18n/id/code.json

Comment thread docs/TunGo/src/pages/benchmarks.js
Comment thread docs/TunGo/src/pages/benchmarks.js Outdated
Comment thread docs/TunGo/src/pages/benchmarks.js Outdated
Comment thread docs/TunGo/src/pages/benchmarks.module.css

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/TunGo/src/pages/benchmarks.module.css (1)

471-474: Optional: drop duplicated min-height reset in the 640px block.

This reset is already applied at the 996px breakpoint, so the second declaration is redundant.

🧹 Simplification
-  .metricCard,
-  .chartCard {
-    min-height: auto;
-  }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/TunGo/src/pages/benchmarks.module.css` around lines 471 - 474, Remove
the duplicated min-height reset in the 640px breakpoint: the selectors
.metricCard and .chartCard already set min-height: auto at the 996px breakpoint,
so delete the redundant min-height: auto declaration inside the 640px block (or
consolidate the rule so only the 996px breakpoint contains min-height: auto) to
avoid repetition.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/TunGo/src/pages/benchmarks.module.css`:
- Around line 342-352: The .srOnly CSS rule uses the deprecated clip: rect(...)
property; replace that property with the modern clip-path approach by removing
clip: rect(0, 0, 0, 0) and adding clip-path: inset(50%) (keeping all other
properties intact) in the .srOnly selector so stylelint no longer flags
property-no-deprecated for the .srOnly rule.

---

Nitpick comments:
In `@docs/TunGo/src/pages/benchmarks.module.css`:
- Around line 471-474: Remove the duplicated min-height reset in the 640px
breakpoint: the selectors .metricCard and .chartCard already set min-height:
auto at the 996px breakpoint, so delete the redundant min-height: auto
declaration inside the 640px block (or consolidate the rule so only the 996px
breakpoint contains min-height: auto) to avoid repetition.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 58b2b001-deab-4087-96e8-fc232f614f6b

📥 Commits

Reviewing files that changed from the base of the PR and between 86a6161 and f334de0.

📒 Files selected for processing (2)
  • docs/TunGo/src/pages/benchmarks.js
  • docs/TunGo/src/pages/benchmarks.module.css
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/TunGo/src/pages/benchmarks.js

Comment thread docs/TunGo/src/pages/benchmarks.module.css

@coderabbitai coderabbitai 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.

♻️ Duplicate comments (1)
docs/TunGo/src/pages/benchmarks.module.css (1)

342-352: ⚠️ Potential issue | 🟡 Minor

Replace deprecated clip property with clip-path: inset(50%).

The .srOnly class uses clip: rect(0, 0, 0, 0) which is deprecated and flagged by your stylelint config (property-no-deprecated). The modern equivalent is clip-path: inset(50%).

Proposed fix
 .srOnly {
   position: absolute;
   width: 1px;
   height: 1px;
   padding: 0;
   margin: -1px;
   overflow: hidden;
-  clip: rect(0, 0, 0, 0);
+  clip-path: inset(50%);
   white-space: nowrap;
   border: 0;
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/TunGo/src/pages/benchmarks.module.css` around lines 342 - 352, Update
the .srOnly utility to remove the deprecated clip declaration and replace it
with clip-path: inset(50%) (keeping the existing position, width, height,
padding, margin, overflow, white-space and border rules); specifically, locate
the .srOnly class in the CSS and delete clip: rect(0, 0, 0, 0) and add
clip-path: inset(50%) so it satisfies the stylelint property-no-deprecated rule
while preserving the same visually-hidden behavior.
🧹 Nitpick comments (1)
docs/TunGo/src/pages/benchmarks.js (1)

276-292: Consider removing duplicate aria-label.

Both the wrapper <div> (line 280) and the <table> (line 288) have identical aria-label attributes. Screen readers may announce this twice. Keep just one—typically on the <table> since it's the semantic data structure, and use aria-labelledby or remove the label from the wrapper.

Optional cleanup
     <div
       className={Styles.tableWrap}
       role="region"
-      aria-label={translate({
-        id: 'bench.table.lookupAria',
-        message: 'Repository lookup and miss-path benchmark results',
-      })}
+      aria-labelledby="lookup-table-label"
       tabIndex={0}
     >
       <table
         className={`${Styles.dataTable} ${Styles.fastPathTable}`}
+        id="lookup-table-label"
         aria-label={translate({
           id: 'bench.table.lookupAria',
           message: 'Repository lookup and miss-path benchmark results',
         })}
       >
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/TunGo/src/pages/benchmarks.js` around lines 276 - 292, The wrapper div
currently repeats the same aria-label used on the table (the translate({...})
call) which causes duplicate announcements; remove the aria-label from the
wrapper (the element using Styles.tableWrap) and leave the aria-label on the
table (the element using Styles.dataTable and Styles.fastPathTable), or if you
need a wrapper label use aria-labelledby pointing to the table instead; update
the JSX so only the table contains the translate(...) aria-label (or use
aria-labelledby) to avoid double announcements.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@docs/TunGo/src/pages/benchmarks.module.css`:
- Around line 342-352: Update the .srOnly utility to remove the deprecated clip
declaration and replace it with clip-path: inset(50%) (keeping the existing
position, width, height, padding, margin, overflow, white-space and border
rules); specifically, locate the .srOnly class in the CSS and delete clip:
rect(0, 0, 0, 0) and add clip-path: inset(50%) so it satisfies the stylelint
property-no-deprecated rule while preserving the same visually-hidden behavior.

---

Nitpick comments:
In `@docs/TunGo/src/pages/benchmarks.js`:
- Around line 276-292: The wrapper div currently repeats the same aria-label
used on the table (the translate({...}) call) which causes duplicate
announcements; remove the aria-label from the wrapper (the element using
Styles.tableWrap) and leave the aria-label on the table (the element using
Styles.dataTable and Styles.fastPathTable), or if you need a wrapper label use
aria-labelledby pointing to the table instead; update the JSX so only the table
contains the translate(...) aria-label (or use aria-labelledby) to avoid double
announcements.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fb4238c1-f1c3-46dc-a18d-d684da7531d6

📥 Commits

Reviewing files that changed from the base of the PR and between 86a6161 and f334de0.

📒 Files selected for processing (2)
  • docs/TunGo/src/pages/benchmarks.js
  • docs/TunGo/src/pages/benchmarks.module.css

@NLipatov

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Mar 21, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (1)
docs/TunGo/i18n/fr/code.json (1)

129-129: Unify “Lookup” vs “Recherche” terminology for consistency.

Line 129 and Line 156 use “Recherche”, while adjacent benchmark strings still use “Lookup”. Pick one term across this section to keep the UI lexicon consistent.

Also applies to: 156-156

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/TunGo/i18n/fr/code.json` at line 129, The French localization uses both
“Recherche” and “Lookup” inconsistently; update the JSON message values so the
same term is used across this section by replacing the "message": "Recherche"
entries (e.g., the occurrences at the JSON message keys around the current diff
and the other occurrence near line 156) to the chosen unified term (either
"Recherche" or "Lookup") and also update adjacent benchmark strings that still
use "Lookup" so all related "message" values match; ensure you change every
instance of the conflicting "message" keys within this file section to the
selected term.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/TunGo/i18n/fr/code.json`:
- Line 129: The French localization uses both “Recherche” and “Lookup”
inconsistently; update the JSON message values so the same term is used across
this section by replacing the "message": "Recherche" entries (e.g., the
occurrences at the JSON message keys around the current diff and the other
occurrence near line 156) to the chosen unified term (either "Recherche" or
"Lookup") and also update adjacent benchmark strings that still use "Lookup" so
all related "message" values match; ensure you change every instance of the
conflicting "message" keys within this file section to the selected term.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 96f52c8c-2a18-475c-a28b-156ce3eaeb19

📥 Commits

Reviewing files that changed from the base of the PR and between f334de0 and 30e3ecc.

📒 Files selected for processing (13)
  • docs/TunGo/i18n/ar/code.json
  • docs/TunGo/i18n/de/code.json
  • docs/TunGo/i18n/en/code.json
  • docs/TunGo/i18n/es/code.json
  • docs/TunGo/i18n/fr/code.json
  • docs/TunGo/i18n/id/code.json
  • docs/TunGo/i18n/ja/code.json
  • docs/TunGo/i18n/pt/code.json
  • docs/TunGo/i18n/ru/code.json
  • docs/TunGo/i18n/zh-Hans/code.json
  • docs/TunGo/scripts/check-localization.js
  • docs/TunGo/src/pages/benchmarks.js
  • docs/TunGo/src/pages/benchmarks.module.css
✅ Files skipped from review due to trivial changes (1)
  • docs/TunGo/scripts/check-localization.js
🚧 Files skipped from review as they are similar to previous changes (8)
  • docs/TunGo/i18n/en/code.json
  • docs/TunGo/i18n/de/code.json
  • docs/TunGo/i18n/ar/code.json
  • docs/TunGo/src/pages/benchmarks.module.css
  • docs/TunGo/src/pages/benchmarks.js
  • docs/TunGo/i18n/id/code.json
  • docs/TunGo/i18n/ru/code.json
  • docs/TunGo/i18n/ja/code.json

@NLipatov NLipatov merged commit fc643a8 into main Mar 21, 2026
2 checks passed
@NLipatov NLipatov deleted the fix/frontend-localization-audit branch March 27, 2026 14:36
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