Skip to content

🔧 chore(i18n): sync translations from Crowdin#545

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
l10n_crowdin
Open

🔧 chore(i18n): sync translations from Crowdin#545
github-actions[bot] wants to merge 1 commit into
mainfrom
l10n_crowdin

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Automated sync from Crowdin. Review wording, then merge.

✨ Added

  • Added translations for global update mode and cross-device sync settings.
  • Added container update workflow/status, dry-run, policy revert, and update insight strings.
  • Added audit, notification, security, registry, server, trigger, watcher, and scanner UI labels.
  • Added dashboard widget resizing and shared column-picker/table-sorting labels.
  • Localized legacy API path detection banners across supported locales.

🔧 Changed

  • Expanded and restructured locale keys for container update status and registry links.
  • Expanded shared data-table localization with sorting labels.

⚠️ Concerns

  • Many newly added strings remain in English and require translation review.
  • Verify locale key structures match the source locale, especially dashboardView and containerComponents.updateStatus.
  • Confirm placeholders such as {total} and {count} are preserved consistently.

@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drydock-website Ready Ready Preview, Comment Jul 17, 2026 12:32am
drydockdemo-website Ready Ready Preview, Comment Jul 17, 2026 12:32am

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds localization coverage for global update modes, cross-device appearance sync, container update previews and statuses, notification templates, list-view cards, dashboard resizing, table sorting, column picking, and legacy API-path banners across supported locales.

Possibly related PRs

  • CodesWhat/drydock#501 — Adds related locale keys and update-insight/update-status text for pinned-container update information.
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch l10n_crowdin

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.

Actionable comments posted: 20

🤖 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 `@ui/src/locales/ar/configView.json`:
- Around line 9-26: Translate the newly added English UI strings into their
target locales while preserving the existing JSON keys and interpolation
placeholders. Update the update-mode entries in
ui/src/locales/ar/configView.json (lines 9-26) and
ui/src/locales/de/configView.json (lines 9-26); dry-run copy in
ui/src/locales/ar/containerComponents.json (lines 10-12) and
ui/src/locales/de/containerComponents.json (lines 10-12); resize-widget labels
in ui/src/locales/ar/dashboardView.json (line 6) and
ui/src/locales/de/dashboardView.json (line 6); audit action labels in
ui/src/locales/ar/listViews.json (lines 57-61) and
ui/src/locales/fr/listViews.json (lines 57-61); and column-picker labels in
ui/src/locales/ar/sharedComponents.json (lines 3-8) and
ui/src/locales/fr/sharedComponents.json (lines 3-8).

In `@ui/src/locales/de/listViews.json`:
- Around line 57-61: Translate every newly added English locale value in the
specified ranges: update audit, notification, security, and dry-run strings in
ui/src/locales/de/listViews.json:57-61; sorting strings in
ui/src/locales/de/sharedComponents.json:3-8 and
ui/src/locales/es/sharedComponents.json:3-8; error and appearance-sync additions
in ui/src/locales/es/configView.json:9-26 and
ui/src/locales/fr/configView.json:9-26; update-policy and status strings in
ui/src/locales/es/containerComponents.json:10-12 and
ui/src/locales/fr/containerComponents.json:10-12; resize labels in
ui/src/locales/es/dashboardView.json:6 and
ui/src/locales/fr/dashboardView.json:6; and the remaining list-view strings in
ui/src/locales/es/listViews.json:57-61. Preserve the existing locale keys and
JSON structure while replacing only the untranslated values.

In `@ui/src/locales/it/configView.json`:
- Around line 10-23: Translate the newly added English values in the Italian
catalog, including the update-mode strings under "title", "description", and
"options", plus the sync and error messages at the referenced entries. Preserve
all existing keys and JSON structure so ConfigGeneralTab.vue and ConfigView.vue
continue resolving the same configuration strings.

In `@ui/src/locales/it/containerComponents.json`:
- Around line 10-12: Translate all newly added container workflow strings in the
Italian catalog, including the referenced workflow, status, insight,
grouped-view, policy-toast, previewOnly, dryRunUpdateTooltip, and
dryRunCondition entries. Replace remaining English values with accurate Italian
translations while preserving every key, placeholder such as {trigger}, and
existing catalog structure.

In `@ui/src/locales/it/dashboardView.json`:
- Line 6: Update the resizeWidget entry in the Italian dashboard locale catalog
from English to the Italian wording used by the dashboard resize control,
preserving the existing key and JSON structure.

In `@ui/src/locales/it/listViews.json`:
- Line 57: Translate the newly added list-view entries in the Italian catalog,
including the audit, notification, security, scanner, and dry-run values
identified by the referenced ranges. Replace each remaining English string with
accurate Italian while preserving the existing JSON keys and formatting.

In `@ui/src/locales/it/sharedComponents.json`:
- Around line 3-8: Translate the Italian catalog’s shared table-control values
in columnPicker, including toggleTooltip, heading, reset, and
hiddenBadgeTooltip, into Italian while preserving the {count} placeholder
exactly.

In `@ui/src/locales/ja/configView.json`:
- Around line 10-23: Translate the newly added English strings in the Japanese
catalog to Japanese, including the update-mode title, description, and option
labels/descriptions near the visible "title", "description", and "options"
entries, along with the sync and error messages at the referenced locations.
Preserve the existing JSON keys and structure.

In `@ui/src/locales/ja/containerComponents.json`:
- Around line 10-12: Translate the newly added container workflow strings in the
Japanese catalog—including the visible previewOnly, dryRunUpdateTooltip, and
dryRunCondition entries and the referenced workflow, status, insight,
grouped-view, and policy-toast ranges—into natural Japanese while preserving all
keys, placeholders, and message meaning.

In `@ui/src/locales/ja/dashboardView.json`:
- Line 6: Update the resizeWidget entry in the Japanese dashboard catalog from
English to the Japanese wording used by the dashboard resize control, preserving
the existing key and JSON structure.

In `@ui/src/locales/ja/listViews.json`:
- Line 57: Translate the newly added list-view values in the Japanese catalog,
including the audit, notification, security, scanner, and dry-run entries
identified by keys such as update-applied-dryrun and the additional listed
ranges. Replace each remaining English value with accurate Japanese while
preserving the existing JSON keys and structure.

In `@ui/src/locales/ko/containerComponents.json`:
- Around line 372-421: Translate all newly added source-language English catalog
values into their target languages while preserving every interpolation token.
Update Korean entries in ui/src/locales/ko/containerComponents.json#L372-L421,
`#L10-L12`, `#L30-L32`, `#L39`, `#L196-L197`, `#L349-L354`, and `#L523-L524`;
ui/src/locales/ko/configView.json#L9-L26, `#L93`, `#L103-L107`, and `#L146-L147`;
ui/src/locales/ko/dashboardView.json#L6; ui/src/locales/ko/listViews.json#L57,
`#L60-L61`, `#L108-L109`, `#L129-L150`, `#L195`, `#L244-L247`, and `#L354-L357`; and
ui/src/locales/ko/sharedComponents.json#L3-L8 and `#L31-L33`. Update Dutch entries
in ui/src/locales/nl/configView.json#L9-L26, `#L93`, `#L103-L107`, and `#L146-L147`,
and ui/src/locales/nl/containerComponents.json#L10-L12, `#L30-L32`, `#L39`,
`#L196-L197`, `#L349-L354`, `#L372-L421`, and `#L523-L524`. Update Japanese labels in
ui/src/locales/ja/sharedComponents.json#L3-L8 and `#L31-L33`, and Russian labels
in ui/src/locales/ru/sharedComponents.json#L3-L8 and `#L31-L33`.

In `@ui/src/locales/nl/dashboardView.json`:
- Line 6: Translate every newly added English value in the affected locale
catalogs while preserving all existing keys, JSON structure, and placeholders:
ui/src/locales/nl/dashboardView.json:6; ui/src/locales/nl/listViews.json:57-61,
107-109, 129-150, 195, 244-247, 354-357;
ui/src/locales/nl/sharedComponents.json:3-8, 31-33;
ui/src/locales/pl/configView.json:9-26, 93, 103-107, 145-147;
ui/src/locales/ru/configView.json:9-26, 93, 103-107, 145-147;
ui/src/locales/ru/containerComponents.json:10-12, 30-32, 39, 196-197, 349-354,
372-421, 523-524; ui/src/locales/ru/dashboardView.json:6; and
ui/src/locales/ru/listViews.json:57-61, 107-109, 129-150, 195, 244-247, 354-357.

In `@ui/src/locales/pl/appShell.json`:
- Line 160: Update the legacyApiPathTitle translation to use the verb-first
Polish word order and correct plural forms, placing {total} after “Wykryto” as
in “Wykryto {total} starszych ścieżek API”.

In `@ui/src/locales/pl/containerComponents.json`:
- Around line 10-12: Translate every newly added English value in the specified
Polish and Brazilian Portuguese locale catalogs into its target language,
covering all listed container, dashboard, list, shared-component, and
configuration entries. Preserve each interpolation placeholder, key, JSON
structure, and existing locale-specific formatting; update every affected site,
including the Brazilian Portuguese registry card labels at
ui/src/locales/pt-BR/listViews.json lines 283-286.

In `@ui/src/locales/ru/containerComponents.json`:
- Around line 372-421: The updateStatus translation object is nested under
groupedViews while UpdateStatusPanel.vue resolves
containerComponents.updateStatus.*. Move updateStatus to the top-level
containerComponents object, preserving all existing keys and translations so the
requested paths resolve correctly.

In `@ui/src/locales/tr/appShell.json`:
- Line 160: Update the legacyApiPathTitle translations in
ui/src/locales/tr/appShell.json:160-160 and
ui/src/locales/zh-TW/appShell.json:160-160 to describe requests detected for
removed or unversioned API paths rather than old API paths, while preserving the
{total} placeholder.

In `@ui/src/locales/tr/configView.json`:
- Around line 9-26: Complete the missing translations for all newly added
English values while preserving interpolation placeholders. Update
ui/src/locales/tr/configView.json (lines 10-23, 93, 104-106, 147),
ui/src/locales/tr/containerComponents.json (10-12, 30-32, 39, 196-197, 350-353,
373-380, 382-420, 523-524), ui/src/locales/tr/dashboardView.json (6),
ui/src/locales/zh-CN/configView.json (10-23, 93, 104-106, 147),
ui/src/locales/zh-CN/containerComponents.json (10-12, 30-32, 39, 196-197,
350-353, 373-380, 382-420, 523-524), ui/src/locales/zh-CN/dashboardView.json
(6), ui/src/locales/zh-CN/listViews.json (57, 60-61, 108-109, 129-150, 195,
244-247, 354-357), and ui/src/locales/zh-CN/sharedComponents.json (4-7, 31-33),
translating each affected catalog value into its target language without
changing keys or placeholders.

In `@ui/src/locales/tr/listViews.json`:
- Around line 57-61: Replace the English values with accurate target-language
translations while preserving all JSON keys and interpolation placeholders.
Update ui/src/locales/tr/listViews.json ranges 57-61, 107-109, 129-150, 194-195,
244-247, 354-357 and ui/src/locales/tr/sharedComponents.json ranges 3-8, 30-33;
ui/src/locales/uk/configView.json ranges 9-26, 93, 103-107, 145-147 and
ui/src/locales/uk/containerComponents.json ranges 10-12, 30-39, 196-197,
349-354, 372-421, 523-524; ui/src/locales/zh-TW/configView.json ranges 9-26, 93,
103-107, 145-147, ui/src/locales/zh-TW/containerComponents.json ranges 10-12,
30-39, 196-197, 349-354, 372-421, 523-524,
ui/src/locales/zh-TW/dashboardView.json range 6,
ui/src/locales/zh-TW/listViews.json ranges 57-61, 107-109, 129-150, 194-195,
244-247, 354-357, and ui/src/locales/zh-TW/sharedComponents.json ranges 3-8,
30-33. Translate the affected audit, update, sync, container, notification,
scanner, security, dashboard, column-picker, and sorting labels for Turkish,
Ukrainian, and Traditional Chinese respectively.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: fe73148e-23f4-4285-a905-56cf083b699a

📥 Commits

Reviewing files that changed from the base of the PR and between cd5b18c and 5a6c346.

📒 Files selected for processing (96)
  • ui/src/locales/ar/appShell.json
  • ui/src/locales/ar/configView.json
  • ui/src/locales/ar/containerComponents.json
  • ui/src/locales/ar/dashboardView.json
  • ui/src/locales/ar/listViews.json
  • ui/src/locales/ar/sharedComponents.json
  • ui/src/locales/de/appShell.json
  • ui/src/locales/de/configView.json
  • ui/src/locales/de/containerComponents.json
  • ui/src/locales/de/dashboardView.json
  • ui/src/locales/de/listViews.json
  • ui/src/locales/de/sharedComponents.json
  • ui/src/locales/es/appShell.json
  • ui/src/locales/es/configView.json
  • ui/src/locales/es/containerComponents.json
  • ui/src/locales/es/dashboardView.json
  • ui/src/locales/es/listViews.json
  • ui/src/locales/es/sharedComponents.json
  • ui/src/locales/fr/appShell.json
  • ui/src/locales/fr/configView.json
  • ui/src/locales/fr/containerComponents.json
  • ui/src/locales/fr/dashboardView.json
  • ui/src/locales/fr/listViews.json
  • ui/src/locales/fr/sharedComponents.json
  • ui/src/locales/it/appShell.json
  • ui/src/locales/it/configView.json
  • ui/src/locales/it/containerComponents.json
  • ui/src/locales/it/dashboardView.json
  • ui/src/locales/it/listViews.json
  • ui/src/locales/it/sharedComponents.json
  • ui/src/locales/ja/appShell.json
  • ui/src/locales/ja/configView.json
  • ui/src/locales/ja/containerComponents.json
  • ui/src/locales/ja/dashboardView.json
  • ui/src/locales/ja/listViews.json
  • ui/src/locales/ja/sharedComponents.json
  • ui/src/locales/ko/appShell.json
  • ui/src/locales/ko/configView.json
  • ui/src/locales/ko/containerComponents.json
  • ui/src/locales/ko/dashboardView.json
  • ui/src/locales/ko/listViews.json
  • ui/src/locales/ko/sharedComponents.json
  • ui/src/locales/nl/appShell.json
  • ui/src/locales/nl/configView.json
  • ui/src/locales/nl/containerComponents.json
  • ui/src/locales/nl/dashboardView.json
  • ui/src/locales/nl/listViews.json
  • ui/src/locales/nl/sharedComponents.json
  • ui/src/locales/pl/appShell.json
  • ui/src/locales/pl/configView.json
  • ui/src/locales/pl/containerComponents.json
  • ui/src/locales/pl/dashboardView.json
  • ui/src/locales/pl/listViews.json
  • ui/src/locales/pl/sharedComponents.json
  • ui/src/locales/pt-BR/appShell.json
  • ui/src/locales/pt-BR/configView.json
  • ui/src/locales/pt-BR/containerComponents.json
  • ui/src/locales/pt-BR/dashboardView.json
  • ui/src/locales/pt-BR/listViews.json
  • ui/src/locales/pt-BR/sharedComponents.json
  • ui/src/locales/ru/appShell.json
  • ui/src/locales/ru/configView.json
  • ui/src/locales/ru/containerComponents.json
  • ui/src/locales/ru/dashboardView.json
  • ui/src/locales/ru/listViews.json
  • ui/src/locales/ru/sharedComponents.json
  • ui/src/locales/tr/appShell.json
  • ui/src/locales/tr/configView.json
  • ui/src/locales/tr/containerComponents.json
  • ui/src/locales/tr/dashboardView.json
  • ui/src/locales/tr/listViews.json
  • ui/src/locales/tr/sharedComponents.json
  • ui/src/locales/uk/appShell.json
  • ui/src/locales/uk/configView.json
  • ui/src/locales/uk/containerComponents.json
  • ui/src/locales/uk/dashboardView.json
  • ui/src/locales/uk/listViews.json
  • ui/src/locales/uk/sharedComponents.json
  • ui/src/locales/vi/appShell.json
  • ui/src/locales/vi/configView.json
  • ui/src/locales/vi/containerComponents.json
  • ui/src/locales/vi/dashboardView.json
  • ui/src/locales/vi/listViews.json
  • ui/src/locales/vi/sharedComponents.json
  • ui/src/locales/zh-CN/appShell.json
  • ui/src/locales/zh-CN/configView.json
  • ui/src/locales/zh-CN/containerComponents.json
  • ui/src/locales/zh-CN/dashboardView.json
  • ui/src/locales/zh-CN/listViews.json
  • ui/src/locales/zh-CN/sharedComponents.json
  • ui/src/locales/zh-TW/appShell.json
  • ui/src/locales/zh-TW/configView.json
  • ui/src/locales/zh-TW/containerComponents.json
  • ui/src/locales/zh-TW/dashboardView.json
  • ui/src/locales/zh-TW/listViews.json
  • ui/src/locales/zh-TW/sharedComponents.json

Comment on lines +9 to +26
"updateMode": {
"title": "Global update mode",
"description": "Choose whether Drydock only reports updates, waits for a manual action, or dispatches eligible updates automatically.",
"options": {
"notify": {
"label": "Notify",
"description": "Detect and notify only; never apply updates."
},
"manual": {
"label": "Manual",
"description": "Apply updates only when you request them."
},
"auto": {
"label": "Auto",
"description": "Dispatch eligible updates automatically."
}
}
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Translate the synchronized additions before merging. The same defect is repeated across these catalogs: newly added UI values remain English instead of matching the target locale.

  • ui/src/locales/ar/configView.json#L9-L26: translate update-mode labels and descriptions.
  • ui/src/locales/ar/containerComponents.json#L10-L12: translate dry-run copy.
  • ui/src/locales/ar/dashboardView.json#L6-L6: translate the resize-widget label.
  • ui/src/locales/ar/listViews.json#L57-L61: translate audit action labels.
  • ui/src/locales/ar/sharedComponents.json#L3-L8: translate column-picker labels.
  • ui/src/locales/de/configView.json#L9-L26: translate update-mode labels and descriptions.
  • ui/src/locales/de/containerComponents.json#L10-L12: translate dry-run copy.
  • ui/src/locales/de/dashboardView.json#L6-L6: translate the resize-widget label.
  • ui/src/locales/fr/listViews.json#L57-L61: translate audit action labels.
  • ui/src/locales/fr/sharedComponents.json#L3-L8: translate column-picker labels.

Apply the same correction to the other changed ranges identified in each file, preserving all interpolation placeholders.

📍 Affects 10 files
  • ui/src/locales/ar/configView.json#L9-L26 (this comment)
  • ui/src/locales/ar/containerComponents.json#L10-L12
  • ui/src/locales/ar/dashboardView.json#L6-L6
  • ui/src/locales/ar/listViews.json#L57-L61
  • ui/src/locales/ar/sharedComponents.json#L3-L8
  • ui/src/locales/de/configView.json#L9-L26
  • ui/src/locales/de/containerComponents.json#L10-L12
  • ui/src/locales/de/dashboardView.json#L6-L6
  • ui/src/locales/fr/listViews.json#L57-L61
  • ui/src/locales/fr/sharedComponents.json#L3-L8
🤖 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 `@ui/src/locales/ar/configView.json` around lines 9 - 26, Translate the newly
added English UI strings into their target locales while preserving the existing
JSON keys and interpolation placeholders. Update the update-mode entries in
ui/src/locales/ar/configView.json (lines 9-26) and
ui/src/locales/de/configView.json (lines 9-26); dry-run copy in
ui/src/locales/ar/containerComponents.json (lines 10-12) and
ui/src/locales/de/containerComponents.json (lines 10-12); resize-widget labels
in ui/src/locales/ar/dashboardView.json (line 6) and
ui/src/locales/de/dashboardView.json (line 6); audit action labels in
ui/src/locales/ar/listViews.json (lines 57-61) and
ui/src/locales/fr/listViews.json (lines 57-61); and column-picker labels in
ui/src/locales/ar/sharedComponents.json (lines 3-8) and
ui/src/locales/fr/sharedComponents.json (lines 3-8).

Comment on lines +57 to +61
"update-applied-dryrun": "Update Previewed (Dry Run)",
"update-failed": "Update fehlgeschlagen",
"auto-update-blocked": "Automatisches Update blockiert",
"update-policy-override-set": "Update Policy Override Set",
"update-policy-override-cleared": "Update Policy Override Cleared",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Translate all newly added locale values before merging. The same omission affects multiple catalogs; the additional English ranges identified in each file must also be translated.

  • ui/src/locales/de/listViews.json#L57-L61: Translate the new audit, notification, security, and dry-run strings at the other flagged ranges.
  • ui/src/locales/de/sharedComponents.json#L3-L8: Translate the sorting strings at Lines 31-33.
  • ui/src/locales/es/configView.json#L9-L26: Translate the error and appearance-sync additions at Lines 93, 103-107, and 146-147.
  • ui/src/locales/es/containerComponents.json#L10-L12: Translate the other flagged update-policy and status ranges.
  • ui/src/locales/es/dashboardView.json#L6: Replace the English resize label.
  • ui/src/locales/es/listViews.json#L57-L61: Translate the other flagged list-view ranges.
  • ui/src/locales/es/sharedComponents.json#L3-L8: Translate the sorting strings at Lines 31-33.
  • ui/src/locales/fr/configView.json#L9-L26: Translate the error and appearance-sync additions at Lines 93, 103-107, and 146-147.
  • ui/src/locales/fr/containerComponents.json#L10-L12: Translate the other flagged update-policy and status ranges.
  • ui/src/locales/fr/dashboardView.json#L6: Replace the English resize label.
📍 Affects 10 files
  • ui/src/locales/de/listViews.json#L57-L61 (this comment)
  • ui/src/locales/de/sharedComponents.json#L3-L8
  • ui/src/locales/es/configView.json#L9-L26
  • ui/src/locales/es/containerComponents.json#L10-L12
  • ui/src/locales/es/dashboardView.json#L6-L6
  • ui/src/locales/es/listViews.json#L57-L61
  • ui/src/locales/es/sharedComponents.json#L3-L8
  • ui/src/locales/fr/configView.json#L9-L26
  • ui/src/locales/fr/containerComponents.json#L10-L12
  • ui/src/locales/fr/dashboardView.json#L6-L6
🤖 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 `@ui/src/locales/de/listViews.json` around lines 57 - 61, Translate every newly
added English locale value in the specified ranges: update audit, notification,
security, and dry-run strings in ui/src/locales/de/listViews.json:57-61; sorting
strings in ui/src/locales/de/sharedComponents.json:3-8 and
ui/src/locales/es/sharedComponents.json:3-8; error and appearance-sync additions
in ui/src/locales/es/configView.json:9-26 and
ui/src/locales/fr/configView.json:9-26; update-policy and status strings in
ui/src/locales/es/containerComponents.json:10-12 and
ui/src/locales/fr/containerComponents.json:10-12; resize labels in
ui/src/locales/es/dashboardView.json:6 and
ui/src/locales/fr/dashboardView.json:6; and the remaining list-view strings in
ui/src/locales/es/listViews.json:57-61. Preserve the existing locale keys and
JSON structure while replacing only the untranslated values.

Comment on lines +10 to +23
"title": "Global update mode",
"description": "Choose whether Drydock only reports updates, waits for a manual action, or dispatches eligible updates automatically.",
"options": {
"notify": {
"label": "Notify",
"description": "Detect and notify only; never apply updates."
},
"manual": {
"label": "Manual",
"description": "Apply updates only when you request them."
},
"auto": {
"label": "Auto",
"description": "Dispatch eligible updates automatically."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Translate the new configuration strings.

These newly added values remain English in the Italian catalog. Translate the update-mode, sync, and error messages before merging; the keys are already consumed by ConfigGeneralTab.vue and ConfigView.vue.

Also applies to: 93-93, 104-106, 147-147

🤖 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 `@ui/src/locales/it/configView.json` around lines 10 - 23, Translate the newly
added English values in the Italian catalog, including the update-mode strings
under "title", "description", and "options", plus the sync and error messages at
the referenced entries. Preserve all existing keys and JSON structure so
ConfigGeneralTab.vue and ConfigView.vue continue resolving the same
configuration strings.

Comment on lines +10 to +12
"previewOnly": "Preview only",
"dryRunUpdateTooltip": "This trigger is in dry-run mode — clicking will pull the new image but not replace the container.",
"dryRunCondition": "Action trigger {trigger} is in dry-run mode — updates are previewed only and containers are not replaced.",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Translate the new container workflow strings.

The newly added workflow, status, insight, grouped-view, and policy-toast values remain English in the Italian catalog. Translate these values so the update UI does not switch languages mid-flow.

Also applies to: 30-39, 196-197, 350-353, 373-380, 382-388, 390-420, 523-524

🤖 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 `@ui/src/locales/it/containerComponents.json` around lines 10 - 12, Translate
all newly added container workflow strings in the Italian catalog, including the
referenced workflow, status, insight, grouped-view, policy-toast, previewOnly,
dryRunUpdateTooltip, and dryRunCondition entries. Replace remaining English
values with accurate Italian translations while preserving every key,
placeholder such as {trigger}, and existing catalog structure.

"loading": "Caricamento dashboard...",
"loadFailed": "Impossibile caricare la dashboard",
"dragToReorder": "Trascina per riordinare",
"resizeWidget": "Resize dashboard widget",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Translate the dashboard resize label.

resizeWidget is still English in the Italian catalog. Replace it with the Italian wording used by the resize control.

🤖 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 `@ui/src/locales/it/dashboardView.json` at line 6, Update the resizeWidget
entry in the Italian dashboard locale catalog from English to the Italian
wording used by the dashboard resize control, preserving the existing key and
JSON structure.

Comment on lines +372 to +421
"updateStatus": {
"title": "Update status",
"showDetails": "Show conditions",
"liftsAt": "Lifts at {date}",
"updateButton": "Update now",
"blockedButton": "Update blocked",
"notificationsOnlyButton": "Notifications only",
"summary": {
"upToDate": "Up to date.",
"pinned": "Закреплено — для информации доступна более новая версия.",
"inProgress": "Update in progress.",
"hardBlocked": "Update blocked — fix required.",
"notify": "Notifications only — Drydock won't apply updates.",
"autoFiltered": "Update available — auto-dispatch is filtered (manual works).",
"manualFiltered": "Update available — a policy condition will require confirmation.",
"autoReady": "Update available — eligible for automatic dispatch.",
"manualReady": "Update available — ready to apply manually."
},
"conditions": {
"no-update-available": "No update available",
"rollback-container": "Rollback container",
"active-operation": "Update already running",
"security-scan-blocked": "Security policy blocked",
"last-update-rolled-back": "Previous update rolled back",
"snoozed": "Update snoozed",
"skip-tag": "Tag skipped",
"skip-digest": "Digest skipped",
"maturity-not-reached": "Maturity policy waiting",
"threshold-not-reached": "Trigger threshold not reached",
"trigger-excluded": "Trigger excluded by labels",
"trigger-not-included": "Trigger filtered by labels",
"agent-mismatch": "Trigger agent mismatch",
"no-update-trigger-configured": "No update trigger configured",
"self-update-unavailable": "Self-update unavailable",
"maintenance-window-closed": "Maintenance window closed",
"dry-run-trigger": "Dry-run trigger configuration"
},
"actions": {
"editPolicy": "Edit update policy",
"configureLabels": "Configure trigger labels",
"viewOperation": "View update operation",
"reviewSecurity": "Review scan results",
"viewRollback": "View rollback context",
"configureAgent": "Configure trigger agent",
"configureTriggers": "Configure update triggers",
"configureThreshold": "Configure trigger threshold",
"configureSelfUpdate": "Configure self-update",
"configureMaintenance": "Configure maintenance window"
}
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Fix the update-status translation key path.

UpdateStatusPanel.vue requests containerComponents.updateStatus.*, but this object is nested under containerComponents.groupedViews. Move updateStatus to the top level or update every consumer; otherwise the new Russian status strings are not resolved.

🤖 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 `@ui/src/locales/ru/containerComponents.json` around lines 372 - 421, The
updateStatus translation object is nested under groupedViews while
UpdateStatusPanel.vue resolves containerComponents.updateStatus.*. Move
updateStatus to the top-level containerComponents object, preserving all
existing keys and translations so the requested paths resolve correctly.

"legacyConfigTitleSingular": "{total} eski yapılandırma takma adı algılandı",
"legacyConfigTitlePlural": "{total} eski yapılandırma takma adı algılandı",
"legacyApiPathTitle": "{total} requests to the removed API path detected",
"legacyApiPathTitle": "{total} eski API yolları algılandı",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the legacy API banner title semantically aligned.

Both titles replace “requests to the removed/unversioned API path detected” with “old API paths detected.” Update both locales to retain the removed-path/request meaning and keep {total}.

  • ui/src/locales/tr/appShell.json: Line 160.
  • ui/src/locales/zh-TW/appShell.json: Line 160.
📍 Affects 2 files
  • ui/src/locales/tr/appShell.json#L160-L160 (this comment)
  • ui/src/locales/zh-TW/appShell.json#L160-L160
🤖 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 `@ui/src/locales/tr/appShell.json` at line 160, Update the legacyApiPathTitle
translations in ui/src/locales/tr/appShell.json:160-160 and
ui/src/locales/zh-TW/appShell.json:160-160 to describe requests detected for
removed or unversioned API paths rather than old API paths, while preserving the
{total} placeholder.

Comment on lines +9 to +26
"updateMode": {
"title": "Global update mode",
"description": "Choose whether Drydock only reports updates, waits for a manual action, or dispatches eligible updates automatically.",
"options": {
"notify": {
"label": "Notify",
"description": "Detect and notify only; never apply updates."
},
"manual": {
"label": "Manual",
"description": "Apply updates only when you request them."
},
"auto": {
"label": "Auto",
"description": "Dispatch eligible updates automatically."
}
}
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Complete the new locale translations before merging.

The changed catalogs add the expected keys, but many newly added values remain English. Translate the affected entries in:

  • ui/src/locales/tr/configView.json: Lines 10-23, 93, 104-106, and 147.
  • ui/src/locales/tr/containerComponents.json: Lines 10-12, 30-32, 39, 196-197, 350-353, 373-380, 382-420, and 523-524.
  • ui/src/locales/tr/dashboardView.json: Line 6.
  • ui/src/locales/zh-CN/configView.json: Lines 10-23, 93, 104-106, and 147.
  • ui/src/locales/zh-CN/containerComponents.json: Lines 10-12, 30-32, 39, 196-197, 350-353, 373-380, 382-420, and 523-524.
  • ui/src/locales/zh-CN/dashboardView.json: Line 6.
  • ui/src/locales/zh-CN/listViews.json: Lines 57, 60-61, 108-109, 129-150, 195, 244-247, and 354-357.
  • ui/src/locales/zh-CN/sharedComponents.json: Lines 4-7 and 31-33.

Preserve all interpolation placeholders.

📍 Affects 8 files
  • ui/src/locales/tr/configView.json#L9-L26 (this comment)
  • ui/src/locales/tr/containerComponents.json#L10-L12
  • ui/src/locales/tr/dashboardView.json#L6-L6
  • ui/src/locales/zh-CN/configView.json#L9-L26
  • ui/src/locales/zh-CN/containerComponents.json#L10-L12
  • ui/src/locales/zh-CN/dashboardView.json#L6-L6
  • ui/src/locales/zh-CN/listViews.json#L57-L61
  • ui/src/locales/zh-CN/sharedComponents.json#L3-L8
🤖 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 `@ui/src/locales/tr/configView.json` around lines 9 - 26, Complete the missing
translations for all newly added English values while preserving interpolation
placeholders. Update ui/src/locales/tr/configView.json (lines 10-23, 93,
104-106, 147), ui/src/locales/tr/containerComponents.json (10-12, 30-32, 39,
196-197, 350-353, 373-380, 382-420, 523-524),
ui/src/locales/tr/dashboardView.json (6), ui/src/locales/zh-CN/configView.json
(10-23, 93, 104-106, 147), ui/src/locales/zh-CN/containerComponents.json (10-12,
30-32, 39, 196-197, 350-353, 373-380, 382-420, 523-524),
ui/src/locales/zh-CN/dashboardView.json (6), ui/src/locales/zh-CN/listViews.json
(57, 60-61, 108-109, 129-150, 195, 244-247, 354-357), and
ui/src/locales/zh-CN/sharedComponents.json (4-7, 31-33), translating each
affected catalog value into its target language without changing keys or
placeholders.

Comment on lines +57 to +61
"update-applied-dryrun": "Update Previewed (Dry Run)",
"update-failed": "Güncelleme Başarısız",
"auto-update-blocked": "Otomatik Güncelleme Engellendi",
"update-policy-override-set": "Update Policy Override Set",
"update-policy-override-cleared": "Update Policy Override Cleared",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Incomplete translations across the current locale cohort.

The listed additions contain English values in non-English catalogs. Translate each target-locale value before merging, preserving all interpolation placeholders.

  • ui/src/locales/tr/listViews.json#L57-L61: Translate the new audit action values.
  • ui/src/locales/tr/listViews.json#L107-L109: Translate the unhealthy-container rule.
  • ui/src/locales/tr/listViews.json#L129-L150: Translate notification bell and template strings.
  • ui/src/locales/tr/listViews.json#L194-L195: Translate the clean security badge.
  • ui/src/locales/tr/listViews.json#L244-L247: Translate scanner asset-operation strings.
  • ui/src/locales/tr/listViews.json#L354-L357: Translate dry-run labels.
  • ui/src/locales/tr/sharedComponents.json#L3-L8: Translate column-picker labels.
  • ui/src/locales/tr/sharedComponents.json#L30-L33: Translate sort labels.
  • ui/src/locales/uk/configView.json#L9-L26: Translate update-mode options.
  • ui/src/locales/uk/configView.json#L93-L93: Translate the update-mode error.
  • ui/src/locales/uk/configView.json#L103-L107: Translate sync settings.
  • ui/src/locales/uk/configView.json#L145-L147: Translate the sync error.
  • ui/src/locales/uk/containerComponents.json#L10-L12: Translate dry-run action text.
  • ui/src/locales/uk/containerComponents.json#L30-L39: Translate override and skipped-state labels.
  • ui/src/locales/uk/containerComponents.json#L196-L197: Translate grouped-view labels.
  • ui/src/locales/uk/containerComponents.json#L349-L354: Translate update insight text.
  • ui/src/locales/uk/containerComponents.json#L372-L421: Translate update-status text.
  • ui/src/locales/uk/containerComponents.json#L523-L524: Translate policy revert toasts.
  • ui/src/locales/zh-TW/configView.json#L9-L26: Translate update-mode options.
  • ui/src/locales/zh-TW/configView.json#L93-L93: Translate the update-mode error.
  • ui/src/locales/zh-TW/configView.json#L103-L107: Translate sync settings.
  • ui/src/locales/zh-TW/configView.json#L145-L147: Translate the sync error.
  • ui/src/locales/zh-TW/containerComponents.json#L10-L12: Translate dry-run action text.
  • ui/src/locales/zh-TW/containerComponents.json#L30-L39: Translate override and skipped-state labels.
  • ui/src/locales/zh-TW/containerComponents.json#L196-L197: Translate grouped-view labels.
  • ui/src/locales/zh-TW/containerComponents.json#L349-L354: Translate update insight text.
  • ui/src/locales/zh-TW/containerComponents.json#L372-L421: Translate update-status text.
  • ui/src/locales/zh-TW/containerComponents.json#L523-L524: Translate policy revert toasts.
  • ui/src/locales/zh-TW/dashboardView.json#L6-L6: Translate the resize label.
  • ui/src/locales/zh-TW/listViews.json#L57-L61: Translate the new audit action values.
  • ui/src/locales/zh-TW/listViews.json#L107-L109: Translate the unhealthy-container rule.
  • ui/src/locales/zh-TW/listViews.json#L129-L150: Translate notification bell and template strings.
  • ui/src/locales/zh-TW/listViews.json#L194-L195: Translate the clean security badge.
  • ui/src/locales/zh-TW/listViews.json#L244-L247: Translate scanner asset-operation strings.
  • ui/src/locales/zh-TW/listViews.json#L354-L357: Translate dry-run labels.
  • ui/src/locales/zh-TW/sharedComponents.json#L3-L8: Translate column-picker labels.
  • ui/src/locales/zh-TW/sharedComponents.json#L30-L33: Translate sort labels.
📍 Affects 9 files
  • ui/src/locales/tr/listViews.json#L57-L61 (this comment)
  • ui/src/locales/tr/listViews.json#L107-L109
  • ui/src/locales/tr/listViews.json#L129-L150
  • ui/src/locales/tr/listViews.json#L194-L195
  • ui/src/locales/tr/listViews.json#L244-L247
  • ui/src/locales/tr/listViews.json#L354-L357
  • ui/src/locales/tr/sharedComponents.json#L3-L8
  • ui/src/locales/tr/sharedComponents.json#L30-L33
  • ui/src/locales/uk/configView.json#L9-L26
  • ui/src/locales/uk/configView.json#L93-L93
  • ui/src/locales/uk/configView.json#L103-L107
  • ui/src/locales/uk/configView.json#L145-L147
  • ui/src/locales/uk/containerComponents.json#L10-L12
  • ui/src/locales/uk/containerComponents.json#L30-L39
  • ui/src/locales/uk/containerComponents.json#L196-L197
  • ui/src/locales/uk/containerComponents.json#L349-L354
  • ui/src/locales/uk/containerComponents.json#L372-L421
  • ui/src/locales/uk/containerComponents.json#L523-L524
  • ui/src/locales/zh-TW/configView.json#L9-L26
  • ui/src/locales/zh-TW/configView.json#L93-L93
  • ui/src/locales/zh-TW/configView.json#L103-L107
  • ui/src/locales/zh-TW/configView.json#L145-L147
  • ui/src/locales/zh-TW/containerComponents.json#L10-L12
  • ui/src/locales/zh-TW/containerComponents.json#L30-L39
  • ui/src/locales/zh-TW/containerComponents.json#L196-L197
  • ui/src/locales/zh-TW/containerComponents.json#L349-L354
  • ui/src/locales/zh-TW/containerComponents.json#L372-L421
  • ui/src/locales/zh-TW/containerComponents.json#L523-L524
  • ui/src/locales/zh-TW/dashboardView.json#L6-L6
  • ui/src/locales/zh-TW/listViews.json#L57-L61
  • ui/src/locales/zh-TW/listViews.json#L107-L109
  • ui/src/locales/zh-TW/listViews.json#L129-L150
  • ui/src/locales/zh-TW/listViews.json#L194-L195
  • ui/src/locales/zh-TW/listViews.json#L244-L247
  • ui/src/locales/zh-TW/listViews.json#L354-L357
  • ui/src/locales/zh-TW/sharedComponents.json#L3-L8
  • ui/src/locales/zh-TW/sharedComponents.json#L30-L33
🤖 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 `@ui/src/locales/tr/listViews.json` around lines 57 - 61, Replace the English
values with accurate target-language translations while preserving all JSON keys
and interpolation placeholders. Update ui/src/locales/tr/listViews.json ranges
57-61, 107-109, 129-150, 194-195, 244-247, 354-357 and
ui/src/locales/tr/sharedComponents.json ranges 3-8, 30-33;
ui/src/locales/uk/configView.json ranges 9-26, 93, 103-107, 145-147 and
ui/src/locales/uk/containerComponents.json ranges 10-12, 30-39, 196-197,
349-354, 372-421, 523-524; ui/src/locales/zh-TW/configView.json ranges 9-26, 93,
103-107, 145-147, ui/src/locales/zh-TW/containerComponents.json ranges 10-12,
30-39, 196-197, 349-354, 372-421, 523-524,
ui/src/locales/zh-TW/dashboardView.json range 6,
ui/src/locales/zh-TW/listViews.json ranges 57-61, 107-109, 129-150, 194-195,
244-247, 354-357, and ui/src/locales/zh-TW/sharedComponents.json ranges 3-8,
30-33. Translate the affected audit, update, sync, container, notification,
scanner, security, dashboard, column-picker, and sorting labels for Turkish,
Ukrainian, and Traditional Chinese respectively.

"loading": "Завантаження панелі керування...",
"loadFailed": "Не вдалося завантажити панель керування",
"dragToReorder": "Перетягніть для зміни порядку",
"resizeWidget": "Resize dashboard widget",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Complete the Ukrainian and Vietnamese localization coverage.

The new keys are present, but many values remain English. Translate the affected entries before merging; otherwise these locales render mixed-language update, dashboard, list-view, notification, and shared-component UI.

  • ui/src/locales/uk/dashboardView.json#L6-L6: Translate resizeWidget.
  • ui/src/locales/uk/listViews.json#L57-L61,L106-L110,L129-L150,L194-L195,L244-L247,L354-L357: Translate the new audit, notification, security, scanner, and dry-run values.
  • ui/src/locales/uk/sharedComponents.json#L3-L8,L30-L33: Translate column-picker and sorting labels.
  • ui/src/locales/vi/configView.json#L9-L26,L93-L93,L103-L107,L145-L147: Translate update-mode, sync, and error strings.
  • ui/src/locales/vi/containerComponents.json#L10-L12,L30-L32,L39-L39,L196-L197,L349-L354,L372-L420,L523-L524: Translate update workflow, status, insight, and policy strings.
  • ui/src/locales/vi/dashboardView.json#L6-L6: Translate resizeWidget.
  • ui/src/locales/vi/listViews.json#L57-L61,L106-L110,L129-L150,L194-L195,L244-L247,L354-L357: Translate the new list-view values.
  • ui/src/locales/vi/sharedComponents.json#L3-L8,L30-L33: Translate column-picker and sorting labels.
📍 Affects 8 files
  • ui/src/locales/uk/dashboardView.json#L6-L6 (this comment)
  • ui/src/locales/uk/listViews.json#L57-L61
  • ui/src/locales/uk/sharedComponents.json#L3-L8
  • ui/src/locales/vi/configView.json#L9-L26
  • ui/src/locales/vi/containerComponents.json#L10-L12
  • ui/src/locales/vi/dashboardView.json#L6-L6
  • ui/src/locales/vi/listViews.json#L57-L61
  • ui/src/locales/vi/sharedComponents.json#L3-L8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant