Skip to content

chore(i18n): polish en_US wording and terminology across all pages - #2240

Open
710leo wants to merge 2 commits into
mainfrom
optimize-en-locale
Open

chore(i18n): polish en_US wording and terminology across all pages#2240
710leo wants to merge 2 commits into
mainfrom
optimize-en-locale

Conversation

@710leo

@710leo 710leo commented Aug 4, 2026

Copy link
Copy Markdown
Member
  • Unify industry terms: Blackout/Shield -> Mute/Muting rules, Execution duration/interval -> For duration/Evaluation interval, alarm -> alert, machine -> host, curve -> series, Datasource -> Data source
  • Fix mistranslations against zh_CN (host clock offset, subscription for_duration, inhibit scenario, event_recover processor = Self-healing)
  • Fix typos and grammar: binded/unbinded, submited, persent, buisness, Templete, updator, "Are you sure to", full-width punctuation
  • Normalize UI labels to sentence case across pages and plugins

Summary by CodeRabbit

  • Style
    • Standardized English capitalization, sentence case, terminology, and grammar across dashboards, alerts, data sources, explorers, workflows, AI settings, notifications, permissions, and integrations.
    • Clarified validation messages, help text, placeholders, query guidance, time-range explanations, and configuration descriptions.
    • Improved consistency for terms such as “Data source,” “Mute,” “Teams,” “Workflow,” “Severity,” and “Time series.”
    • Refined database and observability plugin labels across supported query and visualization interfaces.

- Unify industry terms: Blackout/Shield -> Mute/Muting rules, Execution
  duration/interval -> For duration/Evaluation interval, alarm -> alert,
  machine -> host, curve -> series, Datasource -> Data source
- Fix mistranslations against zh_CN (host clock offset, subscription
  for_duration, inhibit scenario, event_recover processor = Self-healing)
- Fix typos and grammar: binded/unbinded, submited, persent, buisness,
  Templete, updator, "Are you sure to", full-width punctuation
- Normalize UI labels to sentence case across pages and plugins
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@710leo, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 34 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: f2fdda49-73af-43de-9ba7-b81a8c5144fd

📥 Commits

Reviewing files that changed from the base of the PR and between f7a09dc and cc065c8.

📒 Files selected for processing (4)
  • src/components/AiChatNG/recommend.ts
  • src/components/EnhancedTable/EnhancedTable.tsx
  • src/components/TimeRangePicker/RelativeTimeRangePicker/index.tsx
  • src/pages/user/locale/en_US.ts
📝 Walkthrough

Walkthrough

The PR updates English locale strings across shared components, application pages, alerting and workflow interfaces, dashboards, explorers, and data-source plugins. Changes standardize sentence case, terminology, validation text, labels, and explanatory guidance without changing exported entities.

Changes

English localization updates

Layer / File(s) Summary
Shared UI, common text, and AI configuration
src/components/*/locale/en_US.ts, src/locales/*/locale/en_US.ts, src/pages/account/locale/en_US.ts, src/pages/aiConfig/*/locale/en_US.ts
Standardizes sentence case and data-source terminology. Revises common validation, clipboard, template, account, AI, tag, query, and Cron guidance.
Alerting, workflows, and notifications
src/pages/alertRules/locale/en_US.ts, src/pages/event*/locale/en_US.ts, src/pages/notification*/locale/en_US.ts, src/pages/warning/*/locale/en_US.ts
Clarifies alert-rule, workflow, notification, mute-rule, subscription, callback, enrichment, evaluation, and no-data wording.
Dashboard and explorer pages
src/pages/dashboard/**/locale/en_US.ts, src/pages/datasource/locale/en_US.ts, src/pages/explorer/locale/en_US.ts, src/pages/log*/locale/en_US.ts, src/pages/hosts/locale/en_US.ts
Updates dashboard, data-source, host, log, explorer, migration, and visualization labels and descriptions.
Supporting pages and plugins
src/pages/{metricsBuiltin,monitor,notFound,permissions,recordingRules,siteSettings,targets,traceCpt}/locale/en_US.ts, src/plugins/*/locale/en_US.ts
Revises supporting page text and normalizes query, chart, SQL, recording-rule, field, and trigger terminology across plugins.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • n9e/fe#2114: Overlaps with alert-rule processor and workflow terminology.
  • n9e/fe#2183: Overlaps with ClickHouse aggregate and query-builder localization.
  • n9e/fe#2197: Overlaps with alert-mute locale strings and form terminology.

Suggested reviewers: jsers

🚥 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 title clearly summarizes the PR's broad English localization wording and terminology updates across the application.
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.
✨ 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 optimize-en-locale

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.

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

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

🟡 Minor comments (24)
src/plugins/clickHouse/locale/en_US.ts-55-57 (1)

55-57: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Complete the sentence-case normalization for related labels.

The PR changes visible labels to sentence case but leaves neighboring references or actions in title case. Apply these updates:

  • src/plugins/clickHouse/locale/en_US.ts#L55-L57: change Time Series mode to Time series mode.
  • src/plugins/doris/locale/en_US.ts#L79-L80: change Time Series mode to Time series mode.
  • src/plugins/elasticsearch/locale/en_US.ts#L42-L43: change the sibling add_to.btn value from Add To to Add to.
🤖 Prompt for 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.

In `@src/plugins/clickHouse/locale/en_US.ts` around lines 55 - 57, Normalize the
related labels to sentence case: in src/plugins/clickHouse/locale/en_US.ts lines
55-57 and src/plugins/doris/locale/en_US.ts lines 79-80, change “Time Series
mode” to “Time series mode”; in src/plugins/elasticsearch/locale/en_US.ts lines
42-43, update the sibling add_to.btn value from “Add To” to “Add to”.
src/pages/alertRules/locale/en_US.ts-121-124 (1)

121-124: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Specify the host clock offset.

host.trigger.key.offset is a host-specific trigger. Time offset does not identify the affected clock. Change the label to Host clock offset.

🤖 Prompt for 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.

In `@src/pages/alertRules/locale/en_US.ts` around lines 121 - 124, The offset
property label in the host trigger keys object does not specify that the time
offset is host-specific. Update the offset property value from 'Time offset' to
'Host clock offset' to clarify that this is a host-specific trigger affecting
the host's clock.
src/pages/alertRules/locale/en_US.ts-130-140 (1)

130-140: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Correct the duplicated duration guidance.

Usually the for duration and During the for duration are ungrammatical. Use The configured duration and During this duration in both strings.

Proposed fix
- 'Usually the for duration is longer than the evaluation interval. During the for duration, the query is evaluated multiple times at the evaluation interval, and an alert fires only if the condition is met every time. If set to 0, an alert fires as soon as the condition is met once.'
+ 'The configured duration is usually longer than the evaluation interval. During this duration, the query is evaluated multiple times at the evaluation interval, and an alert fires only if the condition is met every time. If set to 0, an alert fires as soon as the condition is met once.'
🤖 Prompt for 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.

In `@src/pages/alertRules/locale/en_US.ts` around lines 130 - 140, Update both
prom_for_duration_tip strings under the alert rule query and metric query
sections: replace “Usually the for duration” with “The configured duration” and
“During the for duration” with “During this duration,” preserving the remaining
guidance.
src/pages/warning/subscribe/locale/en_US.ts-47-47 (1)

47-47: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Include the unit in the duration example.

The field is measured in seconds, but the tip says “with 300 configured.” Use “with 300 seconds configured” to remove the ambiguity.

🤖 Prompt for 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.

In `@src/pages/warning/subscribe/locale/en_US.ts` at line 47, Update the duration
example in the warning subscription locale text to say “with 300 seconds
configured” instead of “with 300 configured,” preserving the rest of the
explanatory text.
src/pages/notificationChannels/locale/en_US.ts-65-65 (1)

65-65: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use “Skip TLS verification” for the TLS setting.

Skip TLS verify is not a standard noun phrase. State the operation clearly because this label describes a security-sensitive option.

Proposed wording
-  insecure_skip_verify: 'Skip TLS verify',
+  insecure_skip_verify: 'Skip TLS verification',

Also applies to: 86-87

🤖 Prompt for 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.

In `@src/pages/notificationChannels/locale/en_US.ts` at line 65, Update the
insecure_skip_verify locale label to use the clear wording “Skip TLS
verification,” and apply the same wording to the additional occurrence
referenced by the review.
src/pages/notificationChannels/locale/en_US.ts-63-63 (1)

63-63: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use “Number of retries” for retry_times.

Retry times is not idiomatic and can be confused with a time interval. Use one label for HTTP, FlashDuty, and PagerDuty.

Proposed wording
-  retry_times: 'Retry times',
+  retry_times: 'Number of retries',

Also applies to: 110-110, 119-119

🤖 Prompt for 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.

In `@src/pages/notificationChannels/locale/en_US.ts` at line 63, Update the
retry_times labels in the HTTP, FlashDuty, and PagerDuty notification channel
translations to use “Number of retries” instead of “Retry times,” keeping the
same translation key and consistent wording across all three entries.
src/pages/warning/subscribe/locale/en_US.ts-55-55 (1)

55-55: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the grammar in the tag and group validation message.

Fill in at least one of tags or receiving groups is incomplete. Use Fill in at least one tag or receiving group.

🤖 Prompt for 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.

In `@src/pages/warning/subscribe/locale/en_US.ts` at line 55, Update the
tags_groups_require validation message to read “Fill in at least one tag or
receiving group,” replacing the grammatically incomplete wording while
preserving the existing localization key.
src/pages/warning/shield/locale/en_US.ts-26-26 (1)

26-26: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Make the broad-scope warning precise.

Line [26] is ambiguous about whether one or both filters are absent. It also says “all alert events,” while the same locale limits muting by severity and time. State that the rule can mute all matching events in the selected business group.

Proposed wording
-  scope_unlimited_tip: 'No data source or event tag is configured; this rule will mute all alert events of the selected business group. Please confirm',
+  scope_unlimited_tip: 'Neither a data source nor an event-tag filter is configured; this rule can mute all alert events in the selected business group that match the configured severity and time conditions. Please confirm',
🤖 Prompt for 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.

In `@src/pages/warning/shield/locale/en_US.ts` at line 26, Update the
scope_unlimited_tip locale text to explicitly cover the case where either or
both filters are unconfigured, and describe the impact as muting all matching
events in the selected business group while preserving the existing severity and
time constraints.
src/pages/notificationRules/locale/en_US.ts-194-194 (1)

194-194: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use a natural phrase for aggregation intervals.

too large aggregation time intervals is not idiomatic and makes the warning harder to read. Use overly long aggregation intervals.

Proposed wording
-    default_duration_tip: 'Please note that too large aggregation time intervals will cause alert delivery delays',
+    default_duration_tip: 'Please note that overly long aggregation intervals delay alert delivery',
🤖 Prompt for 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.

In `@src/pages/notificationRules/locale/en_US.ts` at line 194, Update the
default_duration_tip translation to replace “too large aggregation time
intervals” with the natural phrase “overly long aggregation intervals,”
preserving the rest of the warning.
src/pages/notificationTemplates/locale/en_US.ts-18-18 (1)

18-18: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Clarify the media-type field reference.

Fields that can be used in the media type, referenced by ... is grammatically incomplete. Preserve {{contentKey}} and state the reference format directly.

Proposed wording
-    tip: 'Fields that can be used in the media type, referenced by $tpl.{{contentKey}}',
+    tip: 'Fields available in the media type are referenced as $tpl.{{contentKey}}',
🤖 Prompt for 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.

In `@src/pages/notificationTemplates/locale/en_US.ts` at line 18, Update the tip
value in the notification template locale to clearly state the media-type field
reference format, preserving the {{contentKey}} placeholder and correcting the
incomplete grammar.
src/pages/warning/shield/locale/en_US.ts-3-3 (1)

3-3: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Make the edit error message a complete sentence.

Missing required parameters, unable to edit, please contact the administrator is a comma splice. State the failure and the next action directly.

Proposed wording
-  edit_missing_params: 'Missing required parameters, unable to edit, please contact the administrator',
+  edit_missing_params: 'Required parameters are missing, so this rule cannot be edited. Please contact an administrator',
🤖 Prompt for 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.

In `@src/pages/warning/shield/locale/en_US.ts` at line 3, Update the
edit_missing_params locale string to use complete sentences rather than joining
independent clauses with a comma, while clearly stating the edit failure and
directing the user to contact the administrator.
src/pages/siteSettings/locale/en_US.ts-5-5 (1)

5-5: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Make the image-size hints grammatical.

Lines 5, 7, 9, and 11 use Enter the image URL, recommended size .... The comma joins two separate instructions. Use two sentences consistently.

Proposed wording
-  favicon_url_tip: 'Enter the image URL, recommended size 32x32',
+  favicon_url_tip: 'Enter the image URL. Recommended size: 32x32.',
-  login_page_logo_url_tip: 'Enter the image URL, recommended size 120x38',
+  login_page_logo_url_tip: 'Enter the image URL. Recommended size: 120x38.',
-  menu_big_logo_url_tip: 'Enter the image URL, recommended size 120x38',
+  menu_big_logo_url_tip: 'Enter the image URL. Recommended size: 120x38.',
-  menu_small_logo_url_tip: 'Enter the image URL, recommended size 38x38',
+  menu_small_logo_url_tip: 'Enter the image URL. Recommended size: 38x38.',

Also applies to: 7-7, 9-9, 11-11

🤖 Prompt for 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.

In `@src/pages/siteSettings/locale/en_US.ts` at line 5, Update the image-size
hints for favicon_url_tip and the corresponding entries on lines 7, 9, and 11 to
use two grammatical sentences instead of joining the instructions with a comma,
preserving the existing URLs and size recommendations.
src/pages/dashboard/locale/en_US.ts-61-61 (1)

61-61: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Separate the feedback link from the import restriction.

Line 61 ends with can be imported and immediately appends <a>feedback</a>. The rendered guidance is an incomplete phrase. Add punctuation and an explicit action for the link while preserving the <a> placeholder.

Proposed wording
-      import_grafana_tip: 'Only dashboards using Prometheus data sources, and the chart types and features supported by Nightingale, can be imported <a>feedback</a>',
+      import_grafana_tip: 'Only dashboards that use Prometheus data sources and chart types and features supported by Nightingale can be imported. <a>Send feedback</a>',
🤖 Prompt for 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.

In `@src/pages/dashboard/locale/en_US.ts` at line 61, Update the
import_grafana_tip translation so the import restriction ends with proper
punctuation, then add a separate explicit feedback action while preserving the
existing <a> placeholder for the link.
src/pages/targets/locale/en_US.ts-28-32 (1)

28-32: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Make the heartbeat ranges non-overlapping.

Lines 29 and 30 both describe a heartbeat “within” a limit. The yellow range overlaps the green range, so the explanation does not identify the middle interval. State the interval explicitly.

Proposed wording
-    Heartbeat within 3 minutes: yellow <1 />
-    No heartbeat within 3 minutes: red
+    Heartbeat between 1 and 3 minutes: Yellow <1 />
+    No heartbeat for more than 3 minutes: Red
🤖 Prompt for 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.

In `@src/pages/targets/locale/en_US.ts` around lines 28 - 32, Update the
update_at_tip translation so the yellow heartbeat range explicitly covers the
interval after 1 minute through 3 minutes, while preserving the green “within 1
minute” and red “no heartbeat within 3 minutes” descriptions.
src/pages/help/SSOConfigs/locale/en_US.ts-21-21 (1)

21-21: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Rewrite the corpId_tip text as a complete sentence.

Corporation ID, you can find the CorpId ... is a comma splice. Use a colon or two sentences, for example: Corporation ID: You can find the CorpId on the homepage of the DingTalk Open Platform.

🤖 Prompt for 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.

In `@src/pages/help/SSOConfigs/locale/en_US.ts` at line 21, Update the corpId_tip
translation to use grammatically complete sentence structure by replacing the
comma splice with a colon or separate sentences, while preserving the existing
meaning and guidance.
src/pages/logExplorer/locale/en_US.ts-16-16 (1)

16-16: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the existing Raw logs mode label.

mode.raw_logs is Raw logs, but confirm_content says Raw Logs mode. Use Raw logs mode to keep one label and sentence case.

🤖 Prompt for 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.

In `@src/pages/logExplorer/locale/en_US.ts` at line 16, Update the confirm_content
string to use the existing mode.raw_logs label wording, changing “Raw Logs mode”
to “Raw logs mode” while preserving the rest of the message.
src/pages/help/SSOConfigs/locale/en_US.ts-23-23 (1)

23-23: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use sentence case for client_secret.

Change Client Secret to Client secret. Keep Client ID because ID is an acronym.

🤖 Prompt for 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.

In `@src/pages/help/SSOConfigs/locale/en_US.ts` at line 23, Update the
client_secret label in the SSOConfigs locale to use sentence case as “Client
secret”; leave the Client ID label unchanged because ID is an acronym.
src/pages/logExplorer/locale/en_US.ts-64-64 (1)

64-64: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the plural form for the data-source type title.

The key and following description refer to multiple data source types, but the title says No available data source type. Change it to No available data source types.

🤖 Prompt for 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.

In `@src/pages/logExplorer/locale/en_US.ts` at line 64, Update the
no_supported_datasource_types_title translation value in the locale resource to
use the plural wording “No available data source types,” leaving the key and
surrounding translations unchanged.
src/pages/explorer/locale/en_US.ts-63-63 (1)

63-63: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Name the download action clearly.

Query logs first, then click download is ambiguous. Use Query logs first, then click the download button or the exact button label.

🤖 Prompt for 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.

In `@src/pages/explorer/locale/en_US.ts` at line 63, Update the emptyText
translation in en_US so the download action is explicit, replacing “click
download” with “click the download button” or the exact visible button label
while preserving the rest of the message.
src/pages/explorer/locale/en_US.ts-70-70 (1)

70-70: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Make the field-existence action label grammatical.

Filter for field present is not a complete noun phrase. Use Filter documents with this field to match the equivalent log explorer action.

🤖 Prompt for 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.

In `@src/pages/explorer/locale/en_US.ts` at line 70, Update the exists action
label in the locale translation to “Filter documents with this field,” matching
the equivalent log explorer wording and preserving the existing translation key.
src/pages/logExplorer/locale/en_US.ts-31-31 (1)

31-31: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Complete the field-statistics message.

Field statistics not enabled, unable to perform statistical analysis omits are and joins two clauses with a comma. Use Field statistics are not enabled, so statistical analysis is not available.

🤖 Prompt for 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.

In `@src/pages/logExplorer/locale/en_US.ts` at line 31, Update the unindexable
locale message in the log explorer translations to exactly state that field
statistics are not enabled and statistical analysis is not available, using
“are” and a “so” clause instead of the current comma-separated wording.
src/pages/explorer/locale/en_US.ts-20-20 (1)

20-20: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Complete both field-presence messages.

Both strings omit is not present in the second clause. The explorer message also omits the before mapping.

  • src/pages/explorer/locale/en_US.ts#L20-L20: use The field exists in the mapping but is not present in the 500 sampled documents.
  • src/pages/logExplorer/locale/en_US.ts#L58-L58: use This field exists in the mapping but is not present in the 500 displayed documents.
🤖 Prompt for 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.

In `@src/pages/explorer/locale/en_US.ts` at line 20, Update fieldValues_topnNoData
in src/pages/explorer/locale/en_US.ts at lines 20-20 to use “The field exists in
the mapping but is not present in the 500 sampled documents”. Update the
corresponding field-presence message in src/pages/logExplorer/locale/en_US.ts at
lines 58-58 to use “This field exists in the mapping but is not present in the
500 displayed documents”.
src/pages/help/migrate/locale/en_US.ts-12-12 (1)

12-12: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use Migrate for the button label.

migrate is rendered on both the primary “migrate” page button and the modal submit button, while the help text says “Click the migrate button”. Keep Migration only for section/title copy such as modal:title.

🤖 Prompt for 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.

In `@src/pages/help/migrate/locale/en_US.ts` at line 12, Update the `migrate`
locale string to `Migrate` for the primary and modal submit button labels, while
preserving `Migration` for section and title text such as `modal:title`.
src/pages/log/IndexPatterns/locale/en_US.ts-92-92 (1)

92-92: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the regular-expression example.

The current example displays :(d+)$, which matches the letter d and cannot extract 1740920581 from the sample value. Escape the backslash in the TypeScript string so the UI displays :(\d+)$.

Proposed fix
-  'log-reg-extract': "e.g. for address field 17:356:256291904:1740920581, extracting with ':(d+)$' generates a new field phone = 1740920581",
+  'log-reg-extract': "e.g. for address field 17:356:256291904:1740920581, extracting with ':(\\d+)$' generates a new field phone = 1740920581",
🤖 Prompt for 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.

In `@src/pages/log/IndexPatterns/locale/en_US.ts` at line 92, Update the
`log-reg-extract` locale string to escape the backslash in the
regular-expression example, so the TypeScript source renders `:(\d+)$` in the UI
and correctly represents matching the trailing digits.
🤖 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.

Minor comments:
In `@src/pages/alertRules/locale/en_US.ts`:
- Around line 121-124: The offset property label in the host trigger keys object
does not specify that the time offset is host-specific. Update the offset
property value from 'Time offset' to 'Host clock offset' to clarify that this is
a host-specific trigger affecting the host's clock.
- Around line 130-140: Update both prom_for_duration_tip strings under the alert
rule query and metric query sections: replace “Usually the for duration” with
“The configured duration” and “During the for duration” with “During this
duration,” preserving the remaining guidance.

In `@src/pages/dashboard/locale/en_US.ts`:
- Line 61: Update the import_grafana_tip translation so the import restriction
ends with proper punctuation, then add a separate explicit feedback action while
preserving the existing <a> placeholder for the link.

In `@src/pages/explorer/locale/en_US.ts`:
- Line 63: Update the emptyText translation in en_US so the download action is
explicit, replacing “click download” with “click the download button” or the
exact visible button label while preserving the rest of the message.
- Line 70: Update the exists action label in the locale translation to “Filter
documents with this field,” matching the equivalent log explorer wording and
preserving the existing translation key.
- Line 20: Update fieldValues_topnNoData in src/pages/explorer/locale/en_US.ts
at lines 20-20 to use “The field exists in the mapping but is not present in the
500 sampled documents”. Update the corresponding field-presence message in
src/pages/logExplorer/locale/en_US.ts at lines 58-58 to use “This field exists
in the mapping but is not present in the 500 displayed documents”.

In `@src/pages/help/migrate/locale/en_US.ts`:
- Line 12: Update the `migrate` locale string to `Migrate` for the primary and
modal submit button labels, while preserving `Migration` for section and title
text such as `modal:title`.

In `@src/pages/help/SSOConfigs/locale/en_US.ts`:
- Line 21: Update the corpId_tip translation to use grammatically complete
sentence structure by replacing the comma splice with a colon or separate
sentences, while preserving the existing meaning and guidance.
- Line 23: Update the client_secret label in the SSOConfigs locale to use
sentence case as “Client secret”; leave the Client ID label unchanged because ID
is an acronym.

In `@src/pages/log/IndexPatterns/locale/en_US.ts`:
- Line 92: Update the `log-reg-extract` locale string to escape the backslash in
the regular-expression example, so the TypeScript source renders `:(\d+)$` in
the UI and correctly represents matching the trailing digits.

In `@src/pages/logExplorer/locale/en_US.ts`:
- Line 16: Update the confirm_content string to use the existing mode.raw_logs
label wording, changing “Raw Logs mode” to “Raw logs mode” while preserving the
rest of the message.
- Line 64: Update the no_supported_datasource_types_title translation value in
the locale resource to use the plural wording “No available data source types,”
leaving the key and surrounding translations unchanged.
- Line 31: Update the unindexable locale message in the log explorer
translations to exactly state that field statistics are not enabled and
statistical analysis is not available, using “are” and a “so” clause instead of
the current comma-separated wording.

In `@src/pages/notificationChannels/locale/en_US.ts`:
- Line 65: Update the insecure_skip_verify locale label to use the clear wording
“Skip TLS verification,” and apply the same wording to the additional occurrence
referenced by the review.
- Line 63: Update the retry_times labels in the HTTP, FlashDuty, and PagerDuty
notification channel translations to use “Number of retries” instead of “Retry
times,” keeping the same translation key and consistent wording across all three
entries.

In `@src/pages/notificationRules/locale/en_US.ts`:
- Line 194: Update the default_duration_tip translation to replace “too large
aggregation time intervals” with the natural phrase “overly long aggregation
intervals,” preserving the rest of the warning.

In `@src/pages/notificationTemplates/locale/en_US.ts`:
- Line 18: Update the tip value in the notification template locale to clearly
state the media-type field reference format, preserving the {{contentKey}}
placeholder and correcting the incomplete grammar.

In `@src/pages/siteSettings/locale/en_US.ts`:
- Line 5: Update the image-size hints for favicon_url_tip and the corresponding
entries on lines 7, 9, and 11 to use two grammatical sentences instead of
joining the instructions with a comma, preserving the existing URLs and size
recommendations.

In `@src/pages/targets/locale/en_US.ts`:
- Around line 28-32: Update the update_at_tip translation so the yellow
heartbeat range explicitly covers the interval after 1 minute through 3 minutes,
while preserving the green “within 1 minute” and red “no heartbeat within 3
minutes” descriptions.

In `@src/pages/warning/shield/locale/en_US.ts`:
- Line 26: Update the scope_unlimited_tip locale text to explicitly cover the
case where either or both filters are unconfigured, and describe the impact as
muting all matching events in the selected business group while preserving the
existing severity and time constraints.
- Line 3: Update the edit_missing_params locale string to use complete sentences
rather than joining independent clauses with a comma, while clearly stating the
edit failure and directing the user to contact the administrator.

In `@src/pages/warning/subscribe/locale/en_US.ts`:
- Line 47: Update the duration example in the warning subscription locale text
to say “with 300 seconds configured” instead of “with 300 configured,”
preserving the rest of the explanatory text.
- Line 55: Update the tags_groups_require validation message to read “Fill in at
least one tag or receiving group,” replacing the grammatically incomplete
wording while preserving the existing localization key.

In `@src/plugins/clickHouse/locale/en_US.ts`:
- Around line 55-57: Normalize the related labels to sentence case: in
src/plugins/clickHouse/locale/en_US.ts lines 55-57 and
src/plugins/doris/locale/en_US.ts lines 79-80, change “Time Series mode” to
“Time series mode”; in src/plugins/elasticsearch/locale/en_US.ts lines 42-43,
update the sibling add_to.btn value from “Add To” to “Add to”.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2fcd0080-2197-45c0-88cc-a843c399ac1c

📥 Commits

Reviewing files that changed from the base of the PR and between 83cc3e5 and f7a09dc.

📒 Files selected for processing (63)
  • src/components/AiChatNG/locale/en_US.ts
  • src/components/BlankBusinessPlaceholder/locale/en_US.ts
  • src/components/CronPattern/locale/en_US.ts
  • src/components/DatasourceSelect/locale/en_US.ts
  • src/components/InputEnlarge/locale/en_US.ts
  • src/components/KQLInput/locale/en_US.ts
  • src/components/KVTagSelect/locale/en_US.ts
  • src/components/LogQL/locale/en_US.ts
  • src/components/PromGraphCpt/locale/en_US.ts
  • src/components/PromQueryBuilder/locale/en_US.ts
  • src/components/SideMenu/locale/en_US.ts
  • src/components/TableColumnSelect/locale/en_US.ts
  • src/components/TimeRangePicker/locale/en_US.ts
  • src/components/ViewSelect/locale/en_US.ts
  • src/components/menu/locale/en_US.ts
  • src/components/pageLayout/locale/en_US.ts
  • src/locales/common/locale/en_US.ts
  • src/locales/datasource/locale/en_US.ts
  • src/pages/account/locale/en_US.ts
  • src/pages/aiConfig/agents/locale/en_US.ts
  • src/pages/aiConfig/llmConfigs/locale/en_US.ts
  • src/pages/aiConfig/skills/locale/en_US.ts
  • src/pages/alertCurEvent/locale/en_US.ts
  • src/pages/alertRules/locale/en_US.ts
  • src/pages/builtInComponents/locale/en_US.ts
  • src/pages/dashboard/Components/UnitPicker/locale/en_US.ts
  • src/pages/dashboard/locale/en_US.ts
  • src/pages/datasource/locale/en_US.ts
  • src/pages/embeddedProduct/locale/en_US.ts
  • src/pages/event/locale/en_US.ts
  • src/pages/eventPipeline/locale/en_US.ts
  • src/pages/explorer/locale/en_US.ts
  • src/pages/help/NotificationSettings/locale/en_US.ts
  • src/pages/help/SSOConfigs/locale/en_US.ts
  • src/pages/help/migrate/locale/en_US.ts
  • src/pages/help/servers/locale/en_US.ts
  • src/pages/historyEvents/locale/en_US.ts
  • src/pages/hosts/locale/en_US.ts
  • src/pages/landing/locale/en_US.ts
  • src/pages/log/IndexPatterns/locale/en_US.ts
  • src/pages/logExplorer/locale/en_US.ts
  • src/pages/metricsBuiltin/locale/en_US.ts
  • src/pages/monitor/object/locale/en_US.ts
  • src/pages/notFound/locale/en_US.ts
  • src/pages/notificationChannels/locale/en_US.ts
  • src/pages/notificationRules/locale/en_US.ts
  • src/pages/notificationTemplates/locale/en_US.ts
  • src/pages/permissions/locale/en_US.ts
  • src/pages/recordingRules/locale/en_US.ts
  • src/pages/siteSettings/locale/en_US.ts
  • src/pages/targets/locale/en_US.ts
  • src/pages/traceCpt/locale/en_US.ts
  • src/pages/warning/shield/locale/en_US.ts
  • src/pages/warning/subscribe/locale/en_US.ts
  • src/plugins/TDengine/locale/en_US.ts
  • src/plugins/clickHouse/locale/en_US.ts
  • src/plugins/doris/locale/en_US.ts
  • src/plugins/elasticsearch/locale/en_US.ts
  • src/plugins/iotdb/locale/en_US.ts
  • src/plugins/loki/locale/en_US.ts
  • src/plugins/mysql/locale/en_US.ts
  • src/plugins/pgsql/locale/en_US.ts
  • src/plugins/victorialogs/locale/en_US.ts

…nglish in UI strings

- user: 'Selected {num} items' used a single brace so i18next never
  interpolated it; English users saw the literal placeholder. Other
  languages already used {{num}}
- user: translate perm_flag_0/1 (were left as the raw 'ro' / 'rw'),
  reword the two empty-state fragments and the business group note
- EnhancedTable: action column fell back to a hardcoded Chinese title
- RelativeTimeRangePicker: default placeholder was hardcoded Chinese
- AiChatNG: fix user-visible English prompts ('busi group', 'Host
  machine', missing question marks, machine -> host)
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