From cb37dd55cad268a14ca2e32c7aba88fa6d7c0052 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Fri, 8 May 2026 15:17:07 +0200 Subject: [PATCH] i18n(frontend): translate every remaining English string on the index page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes the index page's i18n coverage. Combined with the page-chrome commit, every label users see on the dashboard is now sourced from the TOML translation files. Per file: - IndexPage.vue: loading-spinner tip (initial + dynamic). - BackupModal.vue: modal title, both list-item titles + descriptions ("Back up" / "Restore"), in-flight busy tips ("Importing database…" / "Restarting panel…"). - PanelUpdateModal.vue: modal title, update-available alert, current/latest version row labels, "Up to date" tag + label, primary action button. Modal.confirm now uses the translated panelUpdateDialog / panelUpdateDialogDesc with #version# substitution; success toast uses panelUpdateStartedPopover. - LogModal.vue: title slot ("Logs"). The Debug/Info/Notice/Warning/ Error log-level options stay literal — they're xray's wire values, not user-facing labels (matches the existing settings-page choice). - XrayLogModal.vue: title + Filter label. Direct/Blocked/Proxy stay literal for the same reason. - VersionModal.vue: modal title + xray-switch alert + per-file tooltip + "Update all" button + custom-geo collapse header. The Modal.confirm flows for switchXrayVersion + updateGeofile use translated dialog/desc with #version# / #filename# substitution. - CpuHistoryModal.vue: title slot. - CustomGeoSection.vue: routing-hint alert, Add / Update-all buttons, every column title (computed for live locale), copy/edit/download/ delete tooltips, copy toast, delete-confirm modal, empty-state text. - CustomGeoFormModal.vue: add/edit titles, OK/cancel labels, Type/ Alias/URL field labels, alias placeholder, all three validation toasts. Total: ~50 strings localised across 8 index-page files. The Hello / Welcome login headline cycle and a handful of literal xray wire values (Direct/Blocked/Proxy/log levels) are intentionally kept hardcoded. Co-Authored-By: Claude Opus 4.7 --- frontend/src/pages/index/BackupModal.vue | 17 ++++--- frontend/src/pages/index/CpuHistoryModal.vue | 5 +- .../src/pages/index/CustomGeoFormModal.vue | 25 +++++----- frontend/src/pages/index/CustomGeoSection.vue | 46 ++++++++++--------- frontend/src/pages/index/IndexPage.vue | 4 +- frontend/src/pages/index/LogModal.vue | 5 +- frontend/src/pages/index/PanelUpdateModal.vue | 34 +++++++------- frontend/src/pages/index/VersionModal.vue | 35 +++++++------- frontend/src/pages/index/XrayLogModal.vue | 7 ++- 9 files changed, 101 insertions(+), 77 deletions(-) diff --git a/frontend/src/pages/index/BackupModal.vue b/frontend/src/pages/index/BackupModal.vue index 45892035..862e58df 100644 --- a/frontend/src/pages/index/BackupModal.vue +++ b/frontend/src/pages/index/BackupModal.vue @@ -1,7 +1,10 @@