Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions web/scripts/i18n-en-overrides.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -918,4 +918,11 @@ export const ENGLISH_SOURCE_OVERRIDES = Object.freeze({
'Markdown 所见即所得编辑器': 'Markdown WYSIWYG editor',
'从添加项目、开始新对话到模型设置':
'From adding a project to starting a new session to model setup',
'打开文件夹': 'Open folder',
'已打开文件夹': 'Folder opened',
'复制ID': 'Copy ID',
'复制标题': 'Copy title',
'导出': 'Export',
'归档': 'Archive',
'重命名': 'Rename',
});
14 changes: 7 additions & 7 deletions web/src/components/DesktopContextMenu.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,16 @@ const MENU_ROW_HEIGHT = 30;
const MENU_PADDING = 8;

const ACTION_LABELS = {
[DESKTOP_CONTEXT_ACTIONS.OPEN_IN_EXPLORER]: '在资源管理器中打开',
[DESKTOP_CONTEXT_ACTIONS.OPEN_IN_EXPLORER]: '打开文件夹',
[DESKTOP_CONTEXT_ACTIONS.LOCATE_FILE]: '在资源管理器中显示',
[DESKTOP_CONTEXT_ACTIONS.PIN_SESSION]: '置顶',
[DESKTOP_CONTEXT_ACTIONS.UNPIN_SESSION]: '取消置顶',
[DESKTOP_CONTEXT_ACTIONS.OPEN_SESSION]: '打开会话',
[DESKTOP_CONTEXT_ACTIONS.RENAME_SESSION]: '重命名会话',
[DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_TITLE]: '复制会话标题',
[DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_ID]: '复制会话 ID',
[DESKTOP_CONTEXT_ACTIONS.EXPORT_SESSION]: '导出会话',
[DESKTOP_CONTEXT_ACTIONS.ARCHIVE_SESSION]: '归档会话',
[DESKTOP_CONTEXT_ACTIONS.RENAME_SESSION]: '重命名',
[DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_TITLE]: '复制标题',
[DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_ID]: '复制ID',
[DESKTOP_CONTEXT_ACTIONS.EXPORT_SESSION]: '导出',
[DESKTOP_CONTEXT_ACTIONS.ARCHIVE_SESSION]: '归档',
[DESKTOP_CONTEXT_ACTIONS.ACTIVATE_WORKSPACE]: '切换到项目',
[DESKTOP_CONTEXT_ACTIONS.EXPAND_WORKSPACE]: '展开项目',
[DESKTOP_CONTEXT_ACTIONS.COLLAPSE_WORKSPACE]: '折叠项目',
Expand Down Expand Up @@ -226,7 +226,7 @@ async function openTargetInExplorer(openTarget) {
toast({ kind: 'err', text: '打开失败:' + (result?.error || '') });
return;
}
toast({ kind: 'ok', text: '已在资源管理器中打开' });
toast({ kind: 'ok', text: '已打开文件夹' });
} catch (e) {
const detail = e?.body?.error || e?.message || '';
toast({ kind: 'err', text: '打开失败:' + detail });
Expand Down
26 changes: 12 additions & 14 deletions web/src/i18n/sourceCatalog.generated.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 4 additions & 3 deletions web/src/lib/desktopContextMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ export function buildDesktopContextMenuItems({

if (!editable) {
if (sessionTarget) {
addAction(items, DESKTOP_CONTEXT_ACTIONS.OPEN_SESSION, sessionTarget);
addAction(items, sessionTarget.pinned ? DESKTOP_CONTEXT_ACTIONS.UNPIN_SESSION : DESKTOP_CONTEXT_ACTIONS.PIN_SESSION, sessionTarget);
addAction(items, DESKTOP_CONTEXT_ACTIONS.RENAME_SESSION, sessionTarget);
addAction(items, DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_TITLE, sessionTarget, { enabled: !!sessionTarget.title });
addAction(items, DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_ID, sessionTarget);
Expand All @@ -273,7 +273,6 @@ export function buildDesktopContextMenuItems({
{ path: sessionTarget.sessionPath, kind: 'file' },
{ enabled: !!sessionTarget.sessionPath },
);
addAction(items, sessionTarget.pinned ? DESKTOP_CONTEXT_ACTIONS.UNPIN_SESSION : DESKTOP_CONTEXT_ACTIONS.PIN_SESSION, sessionTarget);
if (sessionTarget.canArchive) {
addAction(items, DESKTOP_CONTEXT_ACTIONS.ARCHIVE_SESSION, sessionTarget, {
group: GROUPS.DANGER,
Expand Down Expand Up @@ -429,7 +428,9 @@ export function buildDesktopContextMenuItems({
}
}

addAction(items, DESKTOP_CONTEXT_ACTIONS.SELECT_ALL, null, { group: GROUPS.GENERIC });
if (!sessionTarget && !sessionPinTarget) {
addAction(items, DESKTOP_CONTEXT_ACTIONS.SELECT_ALL, null, { group: GROUPS.GENERIC });
}
if (hasSelection) addAction(items, DESKTOP_CONTEXT_ACTIONS.COPY, null, { group: GROUPS.GENERIC });
if (editable) {
addAction(items, DESKTOP_CONTEXT_ACTIONS.PASTE, null, { group: GROUPS.GENERIC });
Expand Down
9 changes: 2 additions & 7 deletions web/src/lib/desktopContextMenu.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -213,15 +213,13 @@ test('未置顶会话目标显示会话动作', () => {
},
});
assert.deepEqual(ids(items), [
DESKTOP_CONTEXT_ACTIONS.OPEN_SESSION,
DESKTOP_CONTEXT_ACTIONS.PIN_SESSION,
DESKTOP_CONTEXT_ACTIONS.RENAME_SESSION,
DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_TITLE,
DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_ID,
DESKTOP_CONTEXT_ACTIONS.EXPORT_SESSION,
DESKTOP_CONTEXT_ACTIONS.OPEN_IN_EXPLORER,
DESKTOP_CONTEXT_ACTIONS.PIN_SESSION,
DESKTOP_CONTEXT_ACTIONS.ARCHIVE_SESSION,
DESKTOP_CONTEXT_ACTIONS.SELECT_ALL,
]);
assert.deepEqual(
items.find((item) => item.id === DESKTOP_CONTEXT_ACTIONS.OPEN_IN_EXPLORER).target,
Expand Down Expand Up @@ -273,7 +271,6 @@ test('descriptor metadata includes label keys, disabled states, and scoped confi
test('已置顶会话目标显示取消置顶菜单项', () => {
assert.deepEqual(ids(buildDesktopContextMenuItems({ sessionPinTarget: { pinned: true } })), [
DESKTOP_CONTEXT_ACTIONS.UNPIN_SESSION,
DESKTOP_CONTEXT_ACTIONS.SELECT_ALL,
]);
});

Expand Down Expand Up @@ -635,12 +632,10 @@ test('普通 Web 会话菜单过滤原生目录选择导出并保留 Web 会话
pinned: false,
},
})), [
DESKTOP_CONTEXT_ACTIONS.OPEN_SESSION,
DESKTOP_CONTEXT_ACTIONS.PIN_SESSION,
DESKTOP_CONTEXT_ACTIONS.RENAME_SESSION,
DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_TITLE,
DESKTOP_CONTEXT_ACTIONS.COPY_SESSION_ID,
DESKTOP_CONTEXT_ACTIONS.PIN_SESSION,
DESKTOP_CONTEXT_ACTIONS.SELECT_ALL,
]);
});

Expand Down
Loading