From 9da6ea65db2276568fbd81b1c30f4107b0d619c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E5=A4=A9=E5=9B=B0?= <2570024918@qq.com> Date: Sun, 16 Aug 2026 23:48:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(windows):=20=E5=AE=8C=E5=96=84=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E7=95=8C=E9=9D=A2=E4=B8=8E=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补齐 Git、编辑器、搜索、通知等中文文案(含 AI 生成提交说明),优化页脚状态栏与双击 Shift 全局搜索,并修复 Windows 任务栏图标显示。 Co-authored-by: Cursor --- windows/tauri/package.json | 2 +- windows/tauri/src-tauri/Cargo.lock | 246 ++++- windows/tauri/src-tauri/icons/icon.ico | Bin 270622 -> 66450 bytes windows/tauri/src-tauri/src/host.rs | 37 +- windows/tauri/src-tauri/src/main.rs | 3 + .../command-palette/constants/git-actions.tsx | 3 +- .../components/diagnostics-pane.tsx | 131 +-- .../editor/components/code-editor.tsx | 1 + .../editor/components/toolbar/breadcrumb.tsx | 22 +- .../toolbar/editor-status-actions.tsx | 73 +- .../toolbar/file-path-breadcrumb.tsx | 11 +- .../components/toolbar/path-breadcrumb.tsx | 17 +- .../editor/context-menu/context-menu.tsx | 3 + .../editor-context-menu-items.tsx | 54 +- .../hooks/use-file-explorer-context-menu.tsx | 87 +- .../components/diff/git-diff-editor-stack.tsx | 48 +- .../git/components/diff/git-diff-header.tsx | 10 +- .../components/diff/git-diff-hunk-header.tsx | 8 +- .../git/components/git-actions-menu.tsx | 30 +- .../git/components/git-branch-manager.tsx | 143 +-- .../git/components/git-commit-history.tsx | 32 +- .../git/components/git-commit-panel.tsx | 24 +- .../src/features/git/components/git-view.tsx | 80 +- .../components/log/git-commit-file-tree.tsx | 4 +- .../components/log/git-commit-inspector.tsx | 22 +- .../git/components/log/git-commit-table.tsx | 48 +- .../git/components/log/git-graph-row.test.ts | 13 + .../git/components/log/git-graph-row.tsx | 12 +- .../git/components/log/git-log-title-bar.tsx | 25 +- .../components/log/git-log-tool-window.tsx | 28 +- .../git/components/log/git-reference-tree.tsx | 25 +- .../git/components/stash/git-stash-modal.tsx | 6 +- .../components/status/git-status-panel.tsx | 38 +- .../components/global-search-state.tsx | 26 +- .../components/global-search-toolbar.tsx | 29 +- .../keymaps/commands/command-registry.ts | 6 + .../defaults/default-keymaps.git-log.test.ts | 13 +- .../src/features/keymaps/hooks/use-keymaps.ts | 52 ++ .../utils/double-shift-recognizer.test.ts | 40 + .../keymaps/utils/double-shift-recognizer.ts | 76 ++ .../footer/footer-editor-status.tsx | 123 +++ .../footer/footer-file-path-item.tsx | 37 + .../components/footer/footer-status-chip.tsx | 36 + .../layout/components/footer/footer.tsx | 156 +--- .../components/sidebar/main-sidebar.tsx | 73 +- .../sidebar/sidebar-pane-selector.tsx | 96 +- .../features/layout/config/item-order.test.ts | 34 + .../src/features/layout/config/item-order.ts | 18 +- .../layout/utils/footer-status.test.ts | 20 + .../features/layout/utils/footer-status.ts | 35 + .../components/notifications-command.tsx | 54 +- .../components/notifications-trigger.tsx | 6 +- .../quick-open/components/empty-state.tsx | 16 +- .../components/file-count-badge.tsx | 6 +- .../quick-open/components/quick-open.tsx | 22 +- .../src/features/tabs/components/tab-bar.tsx | 12 +- .../tabs/components/tab-context-menu.tsx | 30 +- .../window/components/new-project-content.tsx | 94 +- .../window/components/project-picker.tsx | 34 +- windows/tauri/src/i18n/locale.test.ts | 74 +- windows/tauri/src/i18n/locale.ts | 869 ++++++++++++++++++ windows/tauri/src/ui/icons.tsx | 1 + windows/tauri/src/ui/sidebar.tsx | 10 +- 63 files changed, 2646 insertions(+), 738 deletions(-) create mode 100644 windows/tauri/src/features/git/components/log/git-graph-row.test.ts create mode 100644 windows/tauri/src/features/keymaps/utils/double-shift-recognizer.test.ts create mode 100644 windows/tauri/src/features/keymaps/utils/double-shift-recognizer.ts create mode 100644 windows/tauri/src/features/layout/components/footer/footer-editor-status.tsx create mode 100644 windows/tauri/src/features/layout/components/footer/footer-file-path-item.tsx create mode 100644 windows/tauri/src/features/layout/components/footer/footer-status-chip.tsx create mode 100644 windows/tauri/src/features/layout/config/item-order.test.ts create mode 100644 windows/tauri/src/features/layout/utils/footer-status.test.ts create mode 100644 windows/tauri/src/features/layout/utils/footer-status.ts diff --git a/windows/tauri/package.json b/windows/tauri/package.json index dceed09f3..93ac9b31f 100644 --- a/windows/tauri/package.json +++ b/windows/tauri/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "scripts": { - "dev": "bunx vp dev", + "dev": "bun ./node_modules/vite-plus/bin/vp dev", "build": "bunx vp build", "preview": "bunx vp preview", "tauri": "tauri", diff --git a/windows/tauri/src-tauri/Cargo.lock b/windows/tauri/src-tauri/Cargo.lock index 268a1486f..8fc75becd 100644 --- a/windows/tauri/src-tauri/Cargo.lock +++ b/windows/tauri/src-tauri/Cargo.lock @@ -267,6 +267,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + [[package]] name = "bit-set" version = "0.8.0" @@ -530,7 +536,7 @@ checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" dependencies = [ "cfg-if", "cpufeatures 0.3.0", - "rand_core", + "rand_core 0.10.1", ] [[package]] @@ -591,6 +597,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "const-random" version = "0.1.18" @@ -880,6 +892,17 @@ dependencies = [ "thiserror 2.0.20", ] +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" version = "0.5.8" @@ -928,6 +951,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", + "const-oid", "crypto-common", ] @@ -1383,6 +1407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -1614,7 +1639,7 @@ dependencies = [ "js-sys", "libc", "r-efi 6.0.0", - "rand_core", + "rand_core 0.10.1", "wasm-bindgen", ] @@ -2452,6 +2477,9 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] [[package]] name = "libappindicator" @@ -2502,6 +2530,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + [[package]] name = "libredox" version = "0.1.19" @@ -2528,14 +2562,21 @@ name = "lithe-core" version = "0.1.0" dependencies = [ "ammonia", + "base64 0.22.1", "comrak", "quick-xml 0.37.5", + "rand 0.8.7", "regex", + "reqwest 0.12.28", + "rsa", "serde", "serde_json", "serde_yaml_ng", + "sha1", "sha2", "toml 1.1.4+spec-1.1.0", + "url", + "zip 2.4.2", ] [[package]] @@ -2828,12 +2869,47 @@ dependencies = [ "bitflags 2.13.1", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" +dependencies = [ + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.7", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" +[[package]] +name = "num-integer" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2841,6 +2917,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -3217,6 +3294,15 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.2" @@ -3304,6 +3390,27 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.34" @@ -3414,6 +3521,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + [[package]] name = "precomputed-hash" version = "0.1.1" @@ -3557,7 +3673,7 @@ dependencies = [ "bytes", "getrandom 0.4.3", "lru-slab", - "rand", + "rand 0.10.2", "rand_pcg", "ring", "rustc-hash", @@ -3605,6 +3721,17 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" +[[package]] +name = "rand" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +dependencies = [ + "libc", + "rand_chacha", + "rand_core 0.6.4", +] + [[package]] name = "rand" version = "0.10.2" @@ -3613,7 +3740,26 @@ checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", "getrandom 0.4.3", - "rand_core", + "rand_core 0.10.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", ] [[package]] @@ -3628,7 +3774,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" dependencies = [ - "rand_core", + "rand_core 0.10.1", ] [[package]] @@ -3728,7 +3874,9 @@ dependencies = [ "cookie", "cookie_store", "encoding_rs", + "futures-channel", "futures-core", + "futures-util", "h2", "http", "http-body", @@ -3837,6 +3985,26 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rsa" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core 0.6.4", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rust-ini" version = "0.21.3" @@ -4283,6 +4451,17 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "sha1" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a978451301f4db1d02937a4ab3ccce137717b81826e79b7d49ffe3244a13c3b8" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest", +] + [[package]] name = "sha2" version = "0.10.9" @@ -4358,6 +4537,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + [[package]] name = "simd-adler32" version = "0.3.10" @@ -4456,6 +4645,22 @@ dependencies = [ "system-deps", ] +[[package]] +name = "spin" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -5037,7 +5242,7 @@ dependencies = [ "tokio", "url", "windows-sys 0.60.2", - "zip", + "zip 4.6.1", ] [[package]] @@ -6926,6 +7131,23 @@ dependencies = [ "syn 3.0.3", ] +[[package]] +name = "zip" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.14.0", + "memchr", + "thiserror 2.0.20", + "zopfli", +] + [[package]] name = "zip" version = "4.6.1" @@ -6944,6 +7166,18 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + [[package]] name = "zune-core" version = "0.5.3" diff --git a/windows/tauri/src-tauri/icons/icon.ico b/windows/tauri/src-tauri/icons/icon.ico index 26418f0dd7ff5a5c57c3da4180c2fae091859eb6..a76d1c206416f4a289b6a2ba30dc5800008e2518 100644 GIT binary patch literal 66450 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 M07*qoM6N<$g0KCs8UO$Q literal 270622 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 diff --git a/windows/tauri/src-tauri/src/host.rs b/windows/tauri/src-tauri/src/host.rs index 486f776b5..bb1a64f56 100644 --- a/windows/tauri/src-tauri/src/host.rs +++ b/windows/tauri/src-tauri/src/host.rs @@ -9,6 +9,16 @@ use tauri_plugin_opener::OpenerExt; static WINDOW_ID: AtomicU64 = AtomicU64::new(1); +// Windows 11 taskbar downscales a 256-only ICO into an empty pill. Use the 32px +// asset after window creation so frameless windows keep a readable app icon. +const WINDOW_TASKBAR_ICON: tauri::image::Image<'_> = tauri::include_image!("./icons/32x32.png"); + +pub fn apply_window_taskbar_icon(window: &WebviewWindow) { + if let Err(error) = window.set_icon(WINDOW_TASKBAR_ICON.clone()) { + eprintln!("[host] failed to set window icon: {error}"); + } +} + #[derive(Debug, Serialize)] pub struct FontInfo { name: String, @@ -273,13 +283,16 @@ pub fn create_app_window(app: AppHandle, request: Option) -> Result) -> Result= 6); + let count = u16::from_le_bytes(data[4..6].try_into().unwrap()) as usize; + let mut widths = Vec::new(); + let mut offset = 6usize; + for _ in 0..count { + let width = match data[offset] { + 0 => 256, + value => u32::from(value), + }; + widths.push(width); + offset += 16; + } + assert!(widths.contains(&16), "{widths:?}"); + assert!(widths.contains(&32), "{widths:?}"); + assert!(widths.contains(&256), "{widths:?}"); + } } #[tauri::command] diff --git a/windows/tauri/src-tauri/src/main.rs b/windows/tauri/src-tauri/src/main.rs index d2dc1531f..893a8fefa 100644 --- a/windows/tauri/src-tauri/src/main.rs +++ b/windows/tauri/src-tauri/src/main.rs @@ -48,6 +48,9 @@ fn main() { )); app.manage(host::FileClipboard::default()); app.manage(run::RunProcessManager::default()); + if let Some(window) = app.get_webview_window("main") { + host::apply_window_taskbar_icon(&window); + } Ok(()) }) .invoke_handler(tauri::generate_handler![ diff --git a/windows/tauri/src/features/command-palette/constants/git-actions.tsx b/windows/tauri/src/features/command-palette/constants/git-actions.tsx index af519e92c..500b3e79f 100644 --- a/windows/tauri/src/features/command-palette/constants/git-actions.tsx +++ b/windows/tauri/src/features/command-palette/constants/git-actions.tsx @@ -5,6 +5,7 @@ import { FolderOpenIcon as FolderOpen, GitBranchIcon as GitBranch, GitCommitIcon as GitCommit, + GitGraphIcon as GitGraph, HardDrivesIcon as Server, NodesIcon as Nodes, TagIcon as Tag, @@ -163,7 +164,7 @@ export const createGitActions = (params: GitActionsParams): Action[] => { id: "git-open-log", label: "Git: Open Log", description: "Open the full Git Log tool window", - icon: , + icon: , category: "Git", action: () => { setBottomPaneActiveTab("gitLog"); diff --git a/windows/tauri/src/features/diagnostics/components/diagnostics-pane.tsx b/windows/tauri/src/features/diagnostics/components/diagnostics-pane.tsx index f744ca379..5260b13c2 100644 --- a/windows/tauri/src/features/diagnostics/components/diagnostics-pane.tsx +++ b/windows/tauri/src/features/diagnostics/components/diagnostics-pane.tsx @@ -17,6 +17,7 @@ import { XIcon as X, } from "@/ui/icons"; import { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useTranslation } from "@/i18n/locale-provider"; import { LspClient } from "@/features/editor/lsp/lsp-client"; import { useBufferStore } from "@/features/editor/stores/buffer.store"; import { @@ -84,16 +85,16 @@ const DEFAULT_PREFERENCES: PanePreferences = { fileNavigatorViewMode: "flat", }; -const GROUP_OPTIONS: Array<{ value: GroupBy; label: string }> = [ - { value: "file", label: "File" }, - { value: "severity", label: "Severity" }, - { value: "none", label: "None" }, +const GROUP_OPTIONS: Array<{ value: GroupBy; labelKey: string }> = [ + { value: "file", labelKey: "diagnostics.groupByFile" }, + { value: "severity", labelKey: "diagnostics.groupBySeverity" }, + { value: "none", labelKey: "diagnostics.groupByNone" }, ]; -const SORT_OPTIONS: Array<{ value: SortBy; label: string }> = [ - { value: "severity", label: "Severity" }, - { value: "file", label: "File" }, - { value: "position", label: "Position" }, +const SORT_OPTIONS: Array<{ value: SortBy; labelKey: string }> = [ + { value: "severity", labelKey: "diagnostics.sortBySeverity" }, + { value: "file", labelKey: "diagnostics.sortByFile" }, + { value: "position", labelKey: "diagnostics.sortByPosition" }, ]; const SEVERITY_ORDER: Record = { @@ -102,10 +103,10 @@ const SEVERITY_ORDER: Record = { info: 2, }; -const SEVERITY_LABEL: Record = { - error: "Errors", - warning: "Warnings", - info: "Info", +const SEVERITY_LABEL_KEY: Record = { + error: "diagnostics.errors", + warning: "diagnostics.warnings", + info: "diagnostics.info", }; const SEVERITY_TEXT_CLASS: Record = { @@ -216,6 +217,7 @@ const DiagnosticsPane = ({ onFullScreen, isFullScreen = false, }: DiagnosticsPaneProps) => { + const { t } = useTranslation(); const { showToast } = useToast(); const lspClient = useMemo(() => LspClient.getInstance(), []); const widthMode = useTerminalStore((state) => state.widthMode); @@ -371,7 +373,7 @@ const DiagnosticsPane = ({ return [ { id: "all", - label: "All Diagnostics", + label: t("diagnostics.all"), items: filteredDiagnostics, }, ]; @@ -385,7 +387,7 @@ const DiagnosticsPane = ({ ); return { id: `severity-${severity}`, - label: SEVERITY_LABEL[severity as Diagnostic["severity"]], + label: t(SEVERITY_LABEL_KEY[severity as Diagnostic["severity"]]), items, severity: severity as Diagnostic["severity"], }; @@ -407,7 +409,7 @@ const DiagnosticsPane = ({ label: filePath, items, })); - }, [filteredDiagnostics, preferences.groupBy]); + }, [filteredDiagnostics, preferences.groupBy, t]); const totalBySeverity = useMemo(() => { return diagnostics.reduce( @@ -565,18 +567,18 @@ const DiagnosticsPane = ({ const copyDiagnosticMessage = useCallback( async (diagnostic: Diagnostic) => { await copyToClipboard(diagnostic.message); - showToast({ message: "Diagnostic message copied", type: "success" }); + showToast({ message: t("diagnostics.messageCopied"), type: "success" }); }, - [showToast], + [showToast, t], ); const copyDiagnosticLocation = useCallback( async (diagnostic: Diagnostic) => { const text = `${diagnostic.filePath}:${diagnostic.line + 1}:${diagnostic.column + 1}`; await copyToClipboard(text); - showToast({ message: "Diagnostic location copied", type: "success" }); + showToast({ message: t("diagnostics.locationCopied"), type: "success" }); }, - [showToast], + [showToast, t], ); const copyDiagnosticDetails = useCallback( @@ -592,9 +594,9 @@ const DiagnosticsPane = ({ .join(" | "); await copyToClipboard(details); - showToast({ message: "Diagnostic details copied", type: "success" }); + showToast({ message: t("diagnostics.detailsCopied"), type: "success" }); }, - [showToast], + [showToast, t], ); const diagnosticContextMenuItems = useMemo(() => { @@ -610,7 +612,7 @@ const DiagnosticsPane = ({ if (isLoading) { items.push({ id: "loading-actions", - label: "Loading quick fixes...", + label: t("diagnostics.loadingFixes"), icon: , onClick: () => {}, disabled: true, @@ -633,7 +635,7 @@ const DiagnosticsPane = ({ } else { items.push({ id: "no-actions", - label: "No quick fixes available", + label: t("diagnostics.noFixes"), icon: , onClick: () => {}, disabled: true, @@ -645,12 +647,12 @@ const DiagnosticsPane = ({ items.push( { id: "go-to-problem", - label: "Go to Problem", + label: t("diagnostics.goToProblem"), onClick: () => onDiagnosticClick?.(diagnostic), }, { id: "copy-message", - label: "Copy Message", + label: t("diagnostics.copyMessage"), icon: , onClick: () => { void copyDiagnosticMessage(diagnostic); @@ -658,7 +660,7 @@ const DiagnosticsPane = ({ }, { id: "copy-location", - label: "Copy Location", + label: t("diagnostics.copyLocation"), icon: , onClick: () => { void copyDiagnosticLocation(diagnostic); @@ -666,7 +668,7 @@ const DiagnosticsPane = ({ }, { id: "copy-details", - label: "Copy Full Details", + label: t("diagnostics.copyDetails"), icon: , onClick: () => { void copyDiagnosticDetails(diagnostic); @@ -679,14 +681,14 @@ const DiagnosticsPane = ({ if (sourceFilter?.toLowerCase() === source.toLowerCase()) { items.push({ id: "clear-source-filter", - label: "Clear Source Filter", + label: t("diagnostics.clearSourceFilterSimple"), icon: , onClick: () => setSourceFilter(null), }); } else { items.push({ id: "filter-by-source", - label: `Filter by Source: ${source}`, + label: t("diagnostics.filterBySource", { source }), icon: , onClick: () => setSourceFilter(source), }); @@ -697,7 +699,9 @@ const DiagnosticsPane = ({ items.push({ id: "toggle-wrap", - label: preferences.wrapMessages ? "Disable Message Wrap" : "Enable Message Wrap", + label: preferences.wrapMessages + ? t("diagnostics.disableWrap") + : t("diagnostics.enableWrap"), onClick: () => togglePreference("wrapMessages"), }); @@ -714,6 +718,7 @@ const DiagnosticsPane = ({ preferences.wrapMessages, sourceFilter, togglePreference, + t, ]); const hasNonDefaultPreferences = @@ -742,7 +747,10 @@ const DiagnosticsPane = ({ const hasSearch = Boolean(searchQuery.trim()); const visibleProblemCount = filteredDiagnostics.length; const hasDiagnosticFiles = diagnosticFileItems.length > 0; - const problemSummary = `${visibleProblemCount} problem${visibleProblemCount === 1 ? "" : "s"}`; + const problemSummary = + visibleProblemCount === 1 + ? t("diagnostics.problemCountOne", { count: visibleProblemCount }) + : t("diagnostics.problemCount", { count: visibleProblemCount }); const problemSummaryTone = visibleBySeverity.error > 0 ? "text-destructive" @@ -760,7 +768,7 @@ const DiagnosticsPane = ({ items.push( ...GROUP_OPTIONS.map((option) => ({ id: `group-${option.value}`, - label: `Group by: ${option.label}`, + label: t(option.labelKey), icon: preferences.groupBy === option.value ? : undefined, onClick: () => { setPreferences((prev) => ({ @@ -776,7 +784,7 @@ const DiagnosticsPane = ({ items.push( ...SORT_OPTIONS.map((option) => ({ id: `sort-${option.value}`, - label: `Sort by: ${option.label}`, + label: t(option.labelKey), icon: preferences.sortBy === option.value ? : undefined, onClick: () => { setPreferences((prev) => ({ @@ -792,7 +800,11 @@ const DiagnosticsPane = ({ for (const severity of ["error", "warning", "info"] as Diagnostic["severity"][]) { items.push({ id: `severity-${severity}`, - label: `${SEVERITY_LABEL[severity]} (${visibleBySeverity[severity]}/${totalBySeverity[severity]})`, + label: t("diagnostics.severityCount", { + label: t(SEVERITY_LABEL_KEY[severity]), + visible: visibleBySeverity[severity], + total: totalBySeverity[severity], + }), icon: severityFilter[severity] ? : undefined, onClick: () => toggleSeverity(severity), }); @@ -801,7 +813,7 @@ const DiagnosticsPane = ({ if (activeFilePath) { items.push({ id: "only-current-file", - label: "Only Current File", + label: t("diagnostics.onlyCurrentFile"), icon: preferences.onlyCurrentFile ? : undefined, onClick: () => togglePreference("onlyCurrentFile"), }); @@ -810,7 +822,7 @@ const DiagnosticsPane = ({ if (sourceFilter) { items.push({ id: "clear-source-filter", - label: `Clear Source Filter (${sourceFilter})`, + label: t("diagnostics.clearSourceFilter", { source: sourceFilter }), onClick: () => setSourceFilter(null), }); } @@ -819,7 +831,7 @@ const DiagnosticsPane = ({ items.push({ id: "sep-reset", label: "", separator: true, onClick: () => {} }); items.push({ id: "reset-filters", - label: "Reset All Filters", + label: t("diagnostics.resetAllFilters"), onClick: resetFilters, }); } @@ -839,14 +851,15 @@ const DiagnosticsPane = ({ toggleSeverity, totalBySeverity, visibleBySeverity, + t, ]); const headerContextMenuItems = useMemo(() => { if (!headerContextMenu.data) return []; const widthModes: { value: TerminalWidthMode; label: string; icon: ReactNode }[] = [ - { value: "full", label: "Full Width", icon: }, - { value: "editor", label: "Editor Width", icon: }, + { value: "full", label: t("diagnostics.fullWidth"), icon: }, + { value: "editor", label: t("diagnostics.editorWidth"), icon: }, ]; const items: MenuItem[] = widthModes.map((mode) => ({ @@ -862,7 +875,7 @@ const DiagnosticsPane = ({ { id: "sep-fullscreen", label: "", separator: true, onClick: () => {} }, { id: "toggle-fullscreen", - label: isFullScreen ? "Exit Full Screen" : "Full Screen", + label: isFullScreen ? t("diagnostics.exitFullScreen") : t("diagnostics.fullScreen"), icon: isFullScreen ? : , onClick: onFullScreen, }, @@ -870,7 +883,7 @@ const DiagnosticsPane = ({ } return items; - }, [headerContextMenu.data, widthMode, setWidthMode, onFullScreen, isFullScreen]); + }, [headerContextMenu.data, widthMode, setWidthMode, onFullScreen, isFullScreen, t]); if (!isVisible) return null; @@ -894,8 +907,12 @@ const DiagnosticsPane = ({ className={cn( isFileNavigatorVisible && "border-border/70 bg-accent text-foreground", )} - tooltip={isFileNavigatorVisible ? "Hide files" : "Show files"} - aria-label={isFileNavigatorVisible ? "Hide files" : "Show files"} + tooltip={ + isFileNavigatorVisible ? t("diagnostics.hideFiles") : t("diagnostics.showFiles") + } + aria-label={ + isFileNavigatorVisible ? t("diagnostics.hideFiles") : t("diagnostics.showFiles") + } > @@ -914,7 +931,7 @@ const DiagnosticsPane = ({ className={cn( (isSearchVisible || hasSearch) && "border-border/70 bg-accent text-foreground", )} - tooltip="Search problems" + tooltip={t("diagnostics.search")} > @@ -925,7 +942,7 @@ const DiagnosticsPane = ({ filterContextMenu.open(event, "filters"); }} className={cn("relative", hasFilterSettings && "text-primary")} - tooltip="Filter problems" + tooltip={t("diagnostics.filter")} > {activeFilterCount > 0 && ( @@ -943,16 +960,18 @@ const DiagnosticsPane = ({ {isFullScreen ? : } )} {!isEmbedded && ( - + )} @@ -979,7 +998,7 @@ const DiagnosticsPane = ({ } } }} - placeholder="Search problems" + placeholder={t("diagnostics.search")} inputRef={searchInputRef} extraActions={ {activeFilterCount > 0 && ( @@ -1014,7 +1033,7 @@ const DiagnosticsPane = ({ items={diagnosticFileItems} selectedKey={selectedFileNavigatorKey} onSelect={selectDiagnosticFile} - ariaLabel="Diagnostic files" + ariaLabel={t("diagnostics.filesAria")} viewMode={preferences.fileNavigatorViewMode} onViewModeChange={(fileNavigatorViewMode) => setPreferences((prev) => ({ @@ -1027,11 +1046,15 @@ const DiagnosticsPane = ({ {diagnostics.length === 0 ? ( - + ) : filteredDiagnostics.length === 0 ? ( ) : (
diff --git a/windows/tauri/src/features/editor/components/code-editor.tsx b/windows/tauri/src/features/editor/components/code-editor.tsx index 3a4545c88..1cd9c7557 100644 --- a/windows/tauri/src/features/editor/components/code-editor.tsx +++ b/windows/tauri/src/features/editor/components/code-editor.tsx @@ -514,6 +514,7 @@ const CodeEditor = ({ editorViewKey={editorViewKey} bufferId={activeBufferId ?? undefined} filePathOverride={breadcrumbProps?.filePathOverride ?? filePath} + showFilePath={breadcrumbProps?.showFilePath ?? false} /> )} diff --git a/windows/tauri/src/features/editor/components/toolbar/breadcrumb.tsx b/windows/tauri/src/features/editor/components/toolbar/breadcrumb.tsx index 5e76df993..8e44f2cb7 100644 --- a/windows/tauri/src/features/editor/components/toolbar/breadcrumb.tsx +++ b/windows/tauri/src/features/editor/components/toolbar/breadcrumb.tsx @@ -11,6 +11,7 @@ import { useExtensionActions } from "@/extensions/ui/hooks/use-extension-actions import { ExtensionToolbarAction } from "@/extensions/ui/components/extension-toolbar-action"; import { isMarkdownPreviewableFile } from "@/features/editor/markdown/previewable"; import { useSettingsStore } from "@/features/settings/stores/settings.store"; +import { useTranslation } from "@/i18n/locale-provider"; import { Button, type ButtonProps } from "@/ui/button"; import { Dropdown, type MenuItem } from "@/ui/dropdown"; import { cn } from "@/utils/cn"; @@ -26,6 +27,7 @@ export interface BreadcrumbProps { showDefaultActions?: boolean; interactive?: boolean; showPath?: boolean; + showFilePath?: boolean; } type BreadcrumbActionButtonProps = Omit; @@ -50,7 +52,9 @@ export default function Breadcrumb({ showDefaultActions = true, interactive = true, showPath = true, + showFilePath = true, }: BreadcrumbProps = {}) { + const { t } = useTranslation(); const resolvedBufferId = useBufferStore((state) => bufferId ?? state.activeBufferId); const activeBuffer = useBufferStore( useShallow((state) => { @@ -149,19 +153,19 @@ export default function Breadcrumb({ ? [ { id: "preview", - label: "Preview", + label: t("editor.preview"), onClick: handlePreviewClick, }, ] : []), { id: "inline-edit", - label: "AI inline edit", + label: t("editor.aiInlineEdit"), onClick: handleInlineEditClick, }, { id: "find", - label: "Find in file", + label: t("editor.findInFile"), onClick: onSearchClick, }, ]; @@ -177,7 +181,7 @@ export default function Breadcrumb({ ref={actionsButtonRef} onClick={() => setIsActionsMenuOpen((open) => !open)} active={isActionsMenuOpen} - tooltip="Editor actions" + tooltip={t("editor.actions")} tooltipSide="bottom" > @@ -202,10 +206,12 @@ export default function Breadcrumb({
{showPath && showBreadcrumbPath ? ( <> - + {showFilePath ? ( + + ) : null} [number]; -function CursorPositionChip({ editorViewKey }: { editorViewKey?: string | null }) { +export function CursorPositionChip({ editorViewKey }: { editorViewKey?: string | null }) { const activeEditorViewKey = useEditorStateStore.use.activeEditorViewKey(); const cursorPosition = useEditorStateStore.use.cursorPosition(); const [isEditing, setIsEditing] = useState(false); @@ -157,7 +158,8 @@ function CursorPositionChip({ editorViewKey }: { editorViewKey?: string | null } ); } -export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusActionsProps = {}) { +export function EditorStatusActions({ bufferId }: EditorStatusActionsProps = {}) { + const { t } = useTranslation(); const rootFolderPath = useFileSystemStore((state) => state.rootFolderPath); const resolvedBufferId = useBufferStore((state) => bufferId ?? state.activeBufferId); const breadcrumbsEnabled = useSettingsStore((state) => state.settings.coreFeatures.breadcrumbs); @@ -190,25 +192,25 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct return { icon: , color: "text-success", - title: "Language Servers Active", + title: t("lsp.active"), }; case "connecting": return { - icon: , + icon: , color: "text-warning", - title: "Connecting to Language Server...", + title: t("lsp.connecting"), }; case "error": return { icon: , color: "text-destructive", - title: "Language server issue", + title: t("lsp.issue"), }; default: return { icon: , color: "text-subtle-foreground opacity-50", - title: "No active language servers", + title: t("lsp.noActive"), }; } }; @@ -216,7 +218,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct const config = getStatusConfig(lspStatus.status); const activeServers = lspStatus.supportedLanguages || []; const hasActiveServers = lspStatus.status === "connected" && activeServers.length > 0; - const projectName = rootFolderPath ? getFilenameFromPath(rootFolderPath) : "No Project"; + const projectName = rootFolderPath ? getFilenameFromPath(rootFolderPath) : t("lsp.noProject"); const activeBuffer = useBufferStore( useShallow((state) => { const buffer = getBufferById(state.buffers, resolvedBufferId); @@ -384,7 +386,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct const displayOptions = [ { id: "breadcrumbs", - label: "Breadcrumbs", + label: t("settings.advanced.feature.breadcrumbs.name"), checked: breadcrumbsEnabled, shortcut: null, onToggle: () => { @@ -397,14 +399,14 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "minimap", - label: "Minimap", + label: t("editor.minimap"), checked: showMinimap, shortcut: minimapShortcut, onToggle: () => updateSetting("showMinimap", !showMinimap), }, { id: "line-numbers", - label: "Line Numbers", + label: t("settings.editor.lineNumbers"), checked: lineNumbers, shortcut: null, onToggle: () => updateSetting("lineNumbers", !lineNumbers), @@ -412,7 +414,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "relative-line-numbers", - label: "Relative Line Numbers", + label: t("settings.editor.relativeLineNumbers"), checked: vimRelativeLineNumbers, shortcut: null, onToggle: () => updateSetting("vimRelativeLineNumbers", !vimRelativeLineNumbers), @@ -420,7 +422,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "word-wrap", - label: "Word Wrap", + label: t("settings.editor.wordWrap"), checked: wordWrap, shortcut: null, onToggle: () => updateSetting("wordWrap", !wordWrap), @@ -428,7 +430,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "parameter-hints", - label: "Parameter Hints", + label: t("settings.editor.parameterHints"), checked: parameterHints, shortcut: null, onToggle: () => updateSetting("parameterHints", !parameterHints), @@ -436,7 +438,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "auto-completion", - label: "Auto Completion", + label: t("settings.editor.autoCompletion"), checked: autoCompletion, shortcut: null, onToggle: () => updateSetting("autoCompletion", !autoCompletion), @@ -444,7 +446,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "inlay-hints", - label: "Inlay Hints", + label: t("settings.editor.inlayHints"), checked: inlayHints, shortcut: null, onToggle: () => updateSetting("inlayHints", !inlayHints), @@ -452,7 +454,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "code-lens", - label: "Code Lens", + label: t("settings.editor.codeLens"), checked: codeLens, shortcut: null, onToggle: () => updateSetting("codeLens", !codeLens), @@ -460,7 +462,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "semantic-tokens", - label: "Semantic Tokens", + label: t("settings.editor.semanticTokens"), checked: semanticTokens, shortcut: null, onToggle: () => updateSetting("semanticTokens", !semanticTokens), @@ -468,7 +470,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "vim-mode", - label: "Vim Mode", + label: t("settings.keyboard.vimMode"), checked: vimMode, shortcut: null, onToggle: () => updateSetting("vimMode", !vimMode), @@ -476,7 +478,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct }, { id: "inline-git-blame", - label: "Inline Git Blame", + label: t("editor.inlineGitBlame"), checked: enableInlineGitBlame, shortcut: null, onToggle: () => updateSetting("enableInlineGitBlame", !enableInlineGitBlame), @@ -486,8 +488,6 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct return ( <> - - {activeBuffer?.type === "editor" && (
{lang.displayName} ))} - No languages found + {t("editor.noLanguages")} @@ -554,7 +554,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct config.color, isLspOpen && "bg-accent text-foreground", )} - aria-label="Language server status" + aria-label={t("lsp.status")} tooltip={config.title} tooltipSide="bottom" > @@ -584,7 +584,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct size="xs" className={cn(editorMenuActionButtonClass, "flex-1")} > - {bulkLspAction === "restart" ? "Restarting..." : "Restart all"} + {bulkLspAction === "restart" ? t("lsp.restarting") : t("lsp.restartAll")}
)} @@ -617,7 +617,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct size="xs" className={editorMenuActionButtonClass} > - {isBusy ? "..." : "Restart"} + {isBusy ? "..." : t("lsp.restart")}
@@ -660,7 +660,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct ) : lspStatus.status === "connecting" ? ( - + ) : lspStatus.status === "error" ? ( @@ -672,19 +672,16 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct - Language server issue + {t("lsp.issue")} - - Check notifications for the latest error. Reinstall the affected language tools - from Extensions if the server binary is missing or failed to launch. - + {t("lsp.issueHint")} ) : ( - No active language servers + {t("lsp.noActive")} )} @@ -703,7 +700,7 @@ export function EditorStatusActions({ bufferId, editorViewKey }: EditorStatusAct "text-subtle-foreground", isViewMenuOpen && "border-border/60 bg-accent/80 text-foreground", )} - tooltip="Editor preferences" + tooltip={t("editor.preferences")} tooltipSide="bottom" > diff --git a/windows/tauri/src/features/editor/components/toolbar/file-path-breadcrumb.tsx b/windows/tauri/src/features/editor/components/toolbar/file-path-breadcrumb.tsx index 6e7b6ed00..84eac6cc5 100644 --- a/windows/tauri/src/features/editor/components/toolbar/file-path-breadcrumb.tsx +++ b/windows/tauri/src/features/editor/components/toolbar/file-path-breadcrumb.tsx @@ -23,12 +23,14 @@ interface DirectoryEntry { interface FilePathBreadcrumbProps { filePath: string; interactive?: boolean; + menuSide?: "top" | "bottom"; className?: string; } export function FilePathBreadcrumb({ filePath, interactive = true, + menuSide = "bottom", className, }: FilePathBreadcrumbProps) { const rootFolderPath = useFileSystemStore((state) => state.rootFolderPath); @@ -162,7 +164,7 @@ export function FilePathBreadcrumb({ setDropdown({ segmentIndex, x: rect.left, - y: rect.bottom + 2, + y: menuSide === "top" ? rect.top : rect.bottom + 2, items, currentPath: dirPath, navigationStack: [], @@ -187,6 +189,13 @@ export function FilePathBreadcrumb({ } : undefined } + lastSegmentLeading={ + + } className={className} /> diff --git a/windows/tauri/src/features/editor/components/toolbar/path-breadcrumb.tsx b/windows/tauri/src/features/editor/components/toolbar/path-breadcrumb.tsx index 2e5d5d89e..85fcf794e 100644 --- a/windows/tauri/src/features/editor/components/toolbar/path-breadcrumb.tsx +++ b/windows/tauri/src/features/editor/components/toolbar/path-breadcrumb.tsx @@ -1,4 +1,4 @@ -import { Fragment, type MouseEvent } from "react"; +import { Fragment, type MouseEvent, type ReactNode } from "react"; import { Button } from "@/ui/button"; import { Breadcrumb, @@ -15,6 +15,7 @@ interface PathBreadcrumbProps { interactive?: boolean; onSegmentClick?: (index: number, event: MouseEvent) => void; setSegmentRef?: (index: number, element: HTMLButtonElement | null) => void; + lastSegmentLeading?: ReactNode; className?: string; } @@ -23,6 +24,7 @@ export function PathBreadcrumb({ interactive = false, onSegmentClick, setSegmentRef, + lastSegmentLeading, className, }: PathBreadcrumbProps) { if (segments.length === 0) return null; @@ -52,16 +54,25 @@ export function PathBreadcrumb({ /> } className={cn( - "min-w-0 whitespace-nowrap", + "min-w-0 items-center gap-1 whitespace-nowrap", isLast ? "font-medium text-foreground hover:text-foreground" : "text-subtle-foreground hover:text-foreground", )} > + {isLast && lastSegmentLeading ? ( + {lastSegmentLeading} + ) : null} {segment} ) : isLast ? ( - + + {lastSegmentLeading ? ( + {lastSegmentLeading} + ) : null} {segment} ) : ( diff --git a/windows/tauri/src/features/editor/context-menu/context-menu.tsx b/windows/tauri/src/features/editor/context-menu/context-menu.tsx index 5448ed9a3..2e9a21ad3 100644 --- a/windows/tauri/src/features/editor/context-menu/context-menu.tsx +++ b/windows/tauri/src/features/editor/context-menu/context-menu.tsx @@ -1,5 +1,6 @@ import { EDITOR_CONSTANTS } from "@/features/editor/config/constants"; import { useEditorStateStore } from "@/features/editor/stores/state.store"; +import { useTranslation } from "@/i18n/locale-provider"; import { Dropdown } from "@/ui/dropdown"; import { IS_MAC } from "@/utils/platform"; import { @@ -14,6 +15,7 @@ interface EditorContextMenuProps extends EditorContextMenuHandlers { } const EditorContextMenu = ({ isOpen, position, onClose, ...handlers }: EditorContextMenuProps) => { + const { t } = useTranslation(); const hasSelection = (() => { if (!isOpen) return false; const selection = useEditorStateStore.getState().selection; @@ -28,6 +30,7 @@ const EditorContextMenu = ({ isOpen, position, onClose, ...handlers }: EditorCon hasSelection, modifierKey, altKey, + t, ...handlers, }); diff --git a/windows/tauri/src/features/editor/context-menu/editor-context-menu-items.tsx b/windows/tauri/src/features/editor/context-menu/editor-context-menu-items.tsx index 8ad20a56b..bb45e9a09 100644 --- a/windows/tauri/src/features/editor/context-menu/editor-context-menu-items.tsx +++ b/windows/tauri/src/features/editor/context-menu/editor-context-menu-items.tsx @@ -53,6 +53,7 @@ export interface EditorContextMenuItemOptions extends EditorContextMenuHandlers hasSelection: boolean; modifierKey: string; altKey: string; + t: (key: string) => string; } const noop = () => {}; @@ -69,6 +70,7 @@ export function buildEditorContextMenuItems({ hasSelection, modifierKey, altKey, + t, onCopy, onCut, onPaste, @@ -99,7 +101,7 @@ export function buildEditorContextMenuItems({ return [ { id: "copy", - label: "Copy", + label: t("files.copy"), icon: , keybinding: , disabled: isDisabled(onCopy, !hasSelection), @@ -107,7 +109,7 @@ export function buildEditorContextMenuItems({ }, { id: "cut", - label: "Cut", + label: t("files.cut"), icon: , keybinding: , disabled: isDisabled(onCut, !hasSelection), @@ -115,7 +117,7 @@ export function buildEditorContextMenuItems({ }, { id: "paste", - label: "Paste", + label: t("files.paste"), icon: , keybinding: , disabled: isDisabled(onPaste), @@ -123,7 +125,7 @@ export function buildEditorContextMenuItems({ }, { id: "delete", - label: "Delete", + label: t("files.delete"), icon: , keybinding: , disabled: isDisabled(onDelete, !hasSelection), @@ -132,7 +134,7 @@ export function buildEditorContextMenuItems({ separator("sep-1"), { id: "select-all", - label: "Select All", + label: t("editor.selectAll"), icon: , keybinding: , disabled: isDisabled(onSelectAll), @@ -140,14 +142,14 @@ export function buildEditorContextMenuItems({ }, { id: "duplicate", - label: "Duplicate Line", + label: t("editor.duplicateLine"), icon: , disabled: isDisabled(onDuplicate), onClick: onDuplicate ?? noop, }, { id: "select-next-occurrence", - label: "Add Selection to Next Match", + label: t("editor.addSelectionToNextMatch"), icon: , keybinding: , disabled: isDisabled(onSelectNextOccurrence), @@ -155,7 +157,7 @@ export function buildEditorContextMenuItems({ }, { id: "select-all-occurrences", - label: "Select All Occurrences", + label: t("editor.selectAllOccurrences"), icon: , keybinding: , disabled: isDisabled(onSelectAllOccurrences), @@ -164,7 +166,7 @@ export function buildEditorContextMenuItems({ separator("sep-2"), { id: "toggle-comment", - label: "Toggle Comment", + label: t("editor.toggleComment"), icon: , keybinding: , disabled: isDisabled(onToggleComment), @@ -172,7 +174,7 @@ export function buildEditorContextMenuItems({ }, { id: "indent", - label: "Indent", + label: t("editor.indent"), icon: , keybinding: , disabled: isDisabled(onIndent), @@ -180,7 +182,7 @@ export function buildEditorContextMenuItems({ }, { id: "outdent", - label: "Outdent", + label: t("editor.outdent"), icon: , keybinding: , disabled: isDisabled(onOutdent), @@ -188,7 +190,7 @@ export function buildEditorContextMenuItems({ }, { id: "format", - label: "Format Document", + label: t("editor.formatDocument"), icon: , keybinding: , disabled: isDisabled(onFormat), @@ -196,7 +198,7 @@ export function buildEditorContextMenuItems({ }, { id: "format-selection", - label: "Format Selection", + label: t("editor.formatSelection"), icon: , keybinding: , disabled: isDisabled(onFormatSelection, !hasSelection), @@ -205,7 +207,7 @@ export function buildEditorContextMenuItems({ separator("sep-3"), { id: "move-up", - label: "Move Line Up", + label: t("editor.moveLineUp"), icon: , keybinding: , disabled: isDisabled(onMoveLineUp), @@ -213,7 +215,7 @@ export function buildEditorContextMenuItems({ }, { id: "move-down", - label: "Move Line Down", + label: t("editor.moveLineDown"), icon: , keybinding: , disabled: isDisabled(onMoveLineDown), @@ -221,7 +223,7 @@ export function buildEditorContextMenuItems({ }, { id: "toggle-case", - label: "Toggle Case", + label: t("editor.toggleCase"), icon: , disabled: isDisabled(onToggleCase, !hasSelection), onClick: onToggleCase ?? noop, @@ -229,7 +231,7 @@ export function buildEditorContextMenuItems({ separator("sep-4"), { id: "go-to-definition", - label: "Go to Definition", + label: t("editor.goToDefinition"), icon: , keybinding: , disabled: isDisabled(onGoToDefinition), @@ -237,7 +239,7 @@ export function buildEditorContextMenuItems({ }, { id: "find-references", - label: "Find All References", + label: t("editor.findAllReferences"), icon: , keybinding: , disabled: isDisabled(onFindReferences), @@ -245,14 +247,14 @@ export function buildEditorContextMenuItems({ }, { id: "go-to-type-definition", - label: "Go to Type Definition", + label: t("editor.goToTypeDefinition"), icon: , disabled: isDisabled(onGoToTypeDefinition), onClick: onGoToTypeDefinition ?? noop, }, { id: "rename-symbol", - label: "Rename Symbol", + label: t("editor.renameSymbol"), icon: , keybinding: , disabled: isDisabled(onRenameSymbol), @@ -260,7 +262,7 @@ export function buildEditorContextMenuItems({ }, { id: "quick-fix", - label: "Quick Fix...", + label: t("editor.quickFix"), icon: , keybinding: , disabled: isDisabled(onQuickFix), @@ -268,7 +270,7 @@ export function buildEditorContextMenuItems({ }, { id: "show-hover", - label: "Show Hover", + label: t("editor.showHover"), icon: , keybinding: , disabled: isDisabled(onShowHover), @@ -276,7 +278,7 @@ export function buildEditorContextMenuItems({ }, { id: "trigger-suggest", - label: "Trigger Suggest", + label: t("editor.triggerSuggest"), icon: , keybinding: , disabled: isDisabled(onTriggerSuggest), @@ -285,7 +287,7 @@ export function buildEditorContextMenuItems({ separator("sep-5"), { id: "find", - label: "Find", + label: t("editor.find"), icon: , keybinding: , disabled: isDisabled(onFind), @@ -293,7 +295,7 @@ export function buildEditorContextMenuItems({ }, { id: "go-to-line", - label: "Go to Line", + label: t("editor.goToLine"), icon: , keybinding: , disabled: isDisabled(onGoToLine), @@ -301,7 +303,7 @@ export function buildEditorContextMenuItems({ }, { id: "bookmark", - label: "Toggle Bookmark", + label: t("editor.toggleBookmark"), icon: , keybinding: , disabled: isDisabled(onToggleBookmark), diff --git a/windows/tauri/src/features/file-explorer/hooks/use-file-explorer-context-menu.tsx b/windows/tauri/src/features/file-explorer/hooks/use-file-explorer-context-menu.tsx index 31ce5e2ba..89ca8b82f 100644 --- a/windows/tauri/src/features/file-explorer/hooks/use-file-explorer-context-menu.tsx +++ b/windows/tauri/src/features/file-explorer/hooks/use-file-explorer-context-menu.tsx @@ -38,6 +38,7 @@ import { Button } from "@/ui/button"; import { Dropdown, type MenuItem } from "@/ui/dropdown"; import Dialog from "@/ui/dialog"; import { toast } from "sonner"; +import { useTranslation } from "@/i18n/locale-provider"; import { getBaseName, getDirName, getRelativePath, joinPath } from "@/utils/path-helpers"; interface UseFileExplorerContextMenuOptions { @@ -77,9 +78,9 @@ interface PropertiesDialogState { const menuIconSpacer =