feat(ui): expose desktop session actions in header
Add a dedicated desktop header menu for the active session while keeping recent-session switching available when the sidebar is closed. Match inline rename behavior with the sidebar and expose rename, copy ID, share, export, archive, and delete actions with localized feedback. Automatically copy newly created share links, keep share/unshare state synchronized across live and global stores, and normalize stale upstream unshare responses so the UI immediately reflects successful unsharing. Require Markdown exports to load every available message page before formatting the conversation. Abort incomplete root exports, retain explicit child-session skip warnings, and guard complete-history pagination against failures and cursor cycles.
This commit is contained in:
@@ -475,6 +475,10 @@ export const dict = {
|
||||
'sessions.sidebar.project.actions.closeProject': 'Close project',
|
||||
'sessions.sidebar.project.actions.newDraftSession': 'New draft session',
|
||||
'sessions.sidebar.session.menu.rename': 'Rename',
|
||||
'sessions.sidebar.session.menu.copyId': 'Copy session ID',
|
||||
'sessions.sidebar.session.copyId.success': 'Session ID copied',
|
||||
'sessions.sidebar.session.copyId.error': 'Failed to copy session ID',
|
||||
'header.sessionActions.openAria': 'Open session actions',
|
||||
'sessions.sidebar.session.rename.save': 'Save session name',
|
||||
'sessions.sidebar.session.rename.cancel': 'Cancel renaming session',
|
||||
'sessions.sidebar.session.menu.unpin': 'Unpin session',
|
||||
@@ -497,6 +501,7 @@ export const dict = {
|
||||
'sessions.sidebar.session.menu.label': 'Session menu',
|
||||
'sessions.sidebar.session.untitled': 'Untitled Session',
|
||||
'sessions.sidebar.session.export.nothingToExport': 'Nothing to export',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': 'Failed to load the complete session history',
|
||||
'sessions.sidebar.session.export.success': 'Session exported',
|
||||
'sessions.sidebar.session.export.failedRevealPath': 'Failed to reveal path',
|
||||
'sessions.sidebar.session.export.untitledSubagent': 'Untitled Sub-agent',
|
||||
@@ -552,7 +557,7 @@ export const dict = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'This action permanently removes {count} sessions from {dateLabel}.',
|
||||
'sessions.sidebar.dialogs.sessionList.more': '+{count} more',
|
||||
'sessions.sidebar.session.share.successTitle': 'Session shared',
|
||||
'sessions.sidebar.session.share.successDescription': 'You can copy the link from the menu.',
|
||||
'sessions.sidebar.session.share.successDescription': 'Share link copied to clipboard.',
|
||||
'sessions.sidebar.session.share.error': 'Unable to share session',
|
||||
'sessions.sidebar.session.share.copyUrlError': 'Failed to copy URL',
|
||||
'sessions.sidebar.session.unshare.success': 'Session unshared',
|
||||
|
||||
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.project.actions.edit": "Editar",
|
||||
"sessions.sidebar.project.actions.newDraftSession": "Nueva sesión de borrador",
|
||||
"sessions.sidebar.session.menu.rename": "Cambiar nombre",
|
||||
"sessions.sidebar.session.menu.copyId": "Copiar ID de sesión",
|
||||
"sessions.sidebar.session.copyId.success": "ID de sesión copiado",
|
||||
"sessions.sidebar.session.copyId.error": "No se pudo copiar el ID de sesión",
|
||||
"header.sessionActions.openAria": "Abrir acciones de sesión",
|
||||
"sessions.sidebar.session.rename.save": "Guardar nombre de sesión",
|
||||
"sessions.sidebar.session.rename.cancel": "Cancelar cambio de nombre de sesión",
|
||||
"sessions.sidebar.session.menu.unpin": "Desanclar sesión",
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.session.menu.label": "Menú de sesión",
|
||||
"sessions.sidebar.session.untitled": "Sesión sin título",
|
||||
"sessions.sidebar.session.export.nothingToExport": "No hay nada para exportar",
|
||||
"sessions.sidebar.session.export.failedLoadHistory": "No se pudo cargar el historial completo de la sesión",
|
||||
"sessions.sidebar.session.export.success": "Sesión exportada",
|
||||
"sessions.sidebar.session.export.failedRevealPath": "No se pudo mostrar la ruta",
|
||||
"sessions.sidebar.session.export.untitledSubagent": "Subagente sin título",
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Esta acción elimina permanentemente {count} sesiones de {dateLabel}.",
|
||||
"sessions.sidebar.dialogs.sessionList.more": "+{count} más",
|
||||
"sessions.sidebar.session.share.successTitle": "Sesión compartida",
|
||||
"sessions.sidebar.session.share.successDescription": "Puedes copiar el enlace desde el menú.",
|
||||
"sessions.sidebar.session.share.successDescription": "El enlace para compartir se copió al portapapeles.",
|
||||
"sessions.sidebar.session.share.error": "No se puede compartir la sesión",
|
||||
"sessions.sidebar.session.share.copyUrlError": "No se pudo copiar la URL",
|
||||
"sessions.sidebar.session.unshare.success": "Sesión dejó de compartirse",
|
||||
|
||||
@@ -317,6 +317,10 @@ export const dict = {
|
||||
'sessions.sidebar.project.actions.edit': 'Modifier',
|
||||
'sessions.sidebar.project.actions.newDraftSession': 'Nouveau brouillon de session',
|
||||
'sessions.sidebar.session.menu.rename': 'Rebaptiser',
|
||||
'sessions.sidebar.session.menu.copyId': 'Copier l’ID de session',
|
||||
'sessions.sidebar.session.copyId.success': 'ID de session copié',
|
||||
'sessions.sidebar.session.copyId.error': 'Impossible de copier l’ID de session',
|
||||
'header.sessionActions.openAria': 'Ouvrir les actions de session',
|
||||
'sessions.sidebar.session.rename.save': 'Enregistrer le nom de la session',
|
||||
'sessions.sidebar.session.rename.cancel': 'Annuler la session de changement de nom',
|
||||
'sessions.sidebar.session.menu.unpin': 'Désépingler la session',
|
||||
@@ -339,6 +343,7 @@ export const dict = {
|
||||
'sessions.sidebar.session.menu.label': 'Menu des sessions',
|
||||
'sessions.sidebar.session.untitled': 'Session sans titre',
|
||||
'sessions.sidebar.session.export.nothingToExport': 'Rien à exporter',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': 'Impossible de charger l’historique complet de la session',
|
||||
'sessions.sidebar.session.export.success': 'Session exportée',
|
||||
'sessions.sidebar.session.export.failedRevealPath': 'Impossible de révéler le chemin',
|
||||
'sessions.sidebar.session.export.untitledSubagent': 'Sous-agent sans titre',
|
||||
@@ -394,7 +399,7 @@ export const dict = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'Cette action supprime définitivement les sessions {count} de {dateLabel}.',
|
||||
'sessions.sidebar.dialogs.sessionList.more': '+{count} plus',
|
||||
'sessions.sidebar.session.share.successTitle': 'Session partagée',
|
||||
'sessions.sidebar.session.share.successDescription': 'Vous pouvez copier le lien depuis le menu.',
|
||||
'sessions.sidebar.session.share.successDescription': 'Le lien de partage a été copié dans le presse-papiers.',
|
||||
'sessions.sidebar.session.share.error': 'Impossible de partager la session',
|
||||
'sessions.sidebar.session.share.copyUrlError': 'Échec de la copie de URL',
|
||||
'sessions.sidebar.session.unshare.success': 'Session non partagée',
|
||||
|
||||
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.project.actions.edit': '編集',
|
||||
'sessions.sidebar.project.actions.newDraftSession': '新しい下書きセッション',
|
||||
'sessions.sidebar.session.menu.rename': '名前の変更',
|
||||
'sessions.sidebar.session.menu.copyId': 'セッションIDをコピー',
|
||||
'sessions.sidebar.session.copyId.success': 'セッションIDをコピーしました',
|
||||
'sessions.sidebar.session.copyId.error': 'セッションIDをコピーできませんでした',
|
||||
'header.sessionActions.openAria': 'セッション操作を開く',
|
||||
'sessions.sidebar.session.rename.save': 'セッション名を保存',
|
||||
'sessions.sidebar.session.rename.cancel': 'セッション名の変更をキャンセル',
|
||||
'sessions.sidebar.session.menu.unpin': 'セッションのピン留めを解除',
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.session.menu.label': 'セッションメニュー',
|
||||
'sessions.sidebar.session.untitled': '無題のセッション',
|
||||
'sessions.sidebar.session.export.nothingToExport': 'エクスポートするものがありません',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': 'セッション履歴全体を読み込めませんでした',
|
||||
'sessions.sidebar.session.export.success': 'セッションをエクスポートしました',
|
||||
'sessions.sidebar.session.export.failedRevealPath': 'パスの表示に失敗しました',
|
||||
'sessions.sidebar.session.export.untitledSubagent': '無題のサブエージェント',
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'この操作は{dateLabel}の{count}セッションを完全に削除します。',
|
||||
'sessions.sidebar.dialogs.sessionList.more': 'さらに{count}件',
|
||||
'sessions.sidebar.session.share.successTitle': 'セッションを共有しました',
|
||||
'sessions.sidebar.session.share.successDescription': 'メニューからリンクをコピーできます。',
|
||||
'sessions.sidebar.session.share.successDescription': '共有リンクをクリップボードにコピーしました。',
|
||||
'sessions.sidebar.session.share.error': 'セッションを共有できません',
|
||||
'sessions.sidebar.session.share.copyUrlError': 'URLのコピーに失敗しました',
|
||||
'sessions.sidebar.session.unshare.success': 'セッションの共有を解除しました',
|
||||
|
||||
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.project.actions.edit': '편집',
|
||||
'sessions.sidebar.project.actions.newDraftSession': '새 드래프트 세션',
|
||||
'sessions.sidebar.session.menu.rename': '이름 변경',
|
||||
'sessions.sidebar.session.menu.copyId': '세션 ID 복사',
|
||||
'sessions.sidebar.session.copyId.success': '세션 ID가 복사되었습니다',
|
||||
'sessions.sidebar.session.copyId.error': '세션 ID를 복사하지 못했습니다',
|
||||
'header.sessionActions.openAria': '세션 작업 열기',
|
||||
'sessions.sidebar.session.rename.save': '세션 이름 저장',
|
||||
'sessions.sidebar.session.rename.cancel': '세션 이름 변경 취소',
|
||||
'sessions.sidebar.session.menu.unpin': '세션 고정 해제',
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.session.menu.label': '세션 메뉴',
|
||||
'sessions.sidebar.session.untitled': '제목 없는 세션',
|
||||
'sessions.sidebar.session.export.nothingToExport': '내보낼 내용 없음',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': '전체 세션 기록을 불러오지 못했습니다',
|
||||
'sessions.sidebar.session.export.success': '세션 내보냄',
|
||||
'sessions.sidebar.session.export.failedRevealPath': '경로 표시 실패',
|
||||
'sessions.sidebar.session.export.untitledSubagent': '제목 없는 서브 에이전트',
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '이 작업은 {dateLabel}의 세션 {count}개를 영구 삭제합니다.',
|
||||
'sessions.sidebar.dialogs.sessionList.more': '+{count}개 더 보기',
|
||||
'sessions.sidebar.session.share.successTitle': '세션 공유됨',
|
||||
'sessions.sidebar.session.share.successDescription': '메뉴에서 링크를 복사할 수 있습니다.',
|
||||
'sessions.sidebar.session.share.successDescription': '공유 링크가 클립보드에 복사되었습니다.',
|
||||
'sessions.sidebar.session.share.error': '세션을 공유할 수 없음',
|
||||
'sessions.sidebar.session.share.copyUrlError': 'URL 복사 실패',
|
||||
'sessions.sidebar.session.unshare.success': '세션 공유 해제됨',
|
||||
|
||||
@@ -279,6 +279,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.project.actions.edit': 'Edytuj',
|
||||
'sessions.sidebar.project.actions.newDraftSession': 'Nowa sesja robocza',
|
||||
'sessions.sidebar.session.menu.rename': 'Zmień nazwę',
|
||||
'sessions.sidebar.session.menu.copyId': 'Kopiuj ID sesji',
|
||||
'sessions.sidebar.session.copyId.success': 'Skopiowano ID sesji',
|
||||
'sessions.sidebar.session.copyId.error': 'Nie udało się skopiować ID sesji',
|
||||
'header.sessionActions.openAria': 'Otwórz działania sesji',
|
||||
'sessions.sidebar.session.rename.save': 'Zapisz nazwę sesji',
|
||||
'sessions.sidebar.session.rename.cancel': 'Anuluj zmianę nazwy sesji',
|
||||
'sessions.sidebar.session.menu.unpin': 'Odepnij sesję',
|
||||
@@ -301,6 +305,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.session.menu.label': 'Menu sesji',
|
||||
'sessions.sidebar.session.untitled': 'Nienazwana Sesja',
|
||||
'sessions.sidebar.session.export.nothingToExport': 'Brak danych do eksportu',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': 'Nie udało się wczytać pełnej historii sesji',
|
||||
'sessions.sidebar.session.export.success': 'Sesja wyeksportowana',
|
||||
'sessions.sidebar.session.export.failedRevealPath': 'Nie udało się ujawnić ścieżki',
|
||||
'sessions.sidebar.session.export.untitledSubagent': 'Nienazwane Pod-agent',
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'Ta akcja trwale usuwa {count} sesji z {dateLabel}.',
|
||||
'sessions.sidebar.dialogs.sessionList.more': '+{count} więcej',
|
||||
'sessions.sidebar.session.share.successTitle': 'Sesja udostępniona',
|
||||
'sessions.sidebar.session.share.successDescription': 'Możesz skopiować link z menu.',
|
||||
'sessions.sidebar.session.share.successDescription': 'Link udostępniania skopiowano do schowka.',
|
||||
'sessions.sidebar.session.share.error': 'Nie można udostępnić sesji',
|
||||
'sessions.sidebar.session.share.copyUrlError': 'Nie udało się skopiować URL',
|
||||
'sessions.sidebar.session.unshare.success': 'Cofnięto udostępnienie sesji',
|
||||
|
||||
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.project.actions.edit": "Editar",
|
||||
"sessions.sidebar.project.actions.newDraftSession": "Nova sessão de rascunho",
|
||||
"sessions.sidebar.session.menu.rename": "Renomear",
|
||||
"sessions.sidebar.session.menu.copyId": "Copiar ID da sessão",
|
||||
"sessions.sidebar.session.copyId.success": "ID da sessão copiado",
|
||||
"sessions.sidebar.session.copyId.error": "Não foi possível copiar o ID da sessão",
|
||||
"header.sessionActions.openAria": "Abrir ações da sessão",
|
||||
"sessions.sidebar.session.rename.save": "Salvar nome da sessão",
|
||||
"sessions.sidebar.session.rename.cancel": "Cancelar renomeação da sessão",
|
||||
"sessions.sidebar.session.menu.unpin": "Desfixar sessão",
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.session.menu.label": "Menu da sessão",
|
||||
"sessions.sidebar.session.untitled": "Sessão sem título",
|
||||
"sessions.sidebar.session.export.nothingToExport": "Não há nada para exportar",
|
||||
"sessions.sidebar.session.export.failedLoadHistory": "Não foi possível carregar o histórico completo da sessão",
|
||||
"sessions.sidebar.session.export.success": "Sessão exportada",
|
||||
"sessions.sidebar.session.export.failedRevealPath": "Não foi possível mostrar o caminho",
|
||||
"sessions.sidebar.session.export.untitledSubagent": "Subagente sem título",
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Esta ação remove permanentemente {count} sessões de {dateLabel}.",
|
||||
"sessions.sidebar.dialogs.sessionList.more": "+{count} mais",
|
||||
"sessions.sidebar.session.share.successTitle": "Sessão compartida",
|
||||
"sessions.sidebar.session.share.successDescription": "Você pode copiar o link pelo menu.",
|
||||
"sessions.sidebar.session.share.successDescription": "O link de compartilhamento foi copiado para a área de transferência.",
|
||||
"sessions.sidebar.session.share.error": "Não é possível compartilhar a sessão",
|
||||
"sessions.sidebar.session.share.copyUrlError": "Não foi possível copiar a URL",
|
||||
"sessions.sidebar.session.unshare.success": "Sessão dejó de compartilharse",
|
||||
|
||||
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.project.actions.edit": "Редагувати",
|
||||
"sessions.sidebar.project.actions.newDraftSession": "Нова чернетка сесії",
|
||||
"sessions.sidebar.session.menu.rename": "Перейменувати",
|
||||
"sessions.sidebar.session.menu.copyId": "Копіювати ID сесії",
|
||||
"sessions.sidebar.session.copyId.success": "ID сесії скопійовано",
|
||||
"sessions.sidebar.session.copyId.error": "Не вдалося скопіювати ID сесії",
|
||||
"header.sessionActions.openAria": "Відкрити дії із сесією",
|
||||
"sessions.sidebar.session.rename.save": "Зберегти назву сесії",
|
||||
"sessions.sidebar.session.rename.cancel": "Скасувати перейменування сесії",
|
||||
"sessions.sidebar.session.menu.unpin": "Відкріпити сесія",
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.session.menu.label": "Меню сесії",
|
||||
"sessions.sidebar.session.untitled": "Сесія без назви",
|
||||
"sessions.sidebar.session.export.nothingToExport": "Нічого для експорту",
|
||||
"sessions.sidebar.session.export.failedLoadHistory": "Не вдалося завантажити повну історію сесії",
|
||||
"sessions.sidebar.session.export.success": "Сесія експортовано",
|
||||
"sessions.sidebar.session.export.failedRevealPath": "Не вдалося відкрити шлях",
|
||||
"sessions.sidebar.session.export.untitledSubagent": "Під-агент без назви",
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Ця дія назавжди видаляє сесії {count} з {dateLabel}.",
|
||||
"sessions.sidebar.dialogs.sessionList.more": "+{count} більше",
|
||||
"sessions.sidebar.session.share.successTitle": "Сесією поділилися",
|
||||
"sessions.sidebar.session.share.successDescription": "Ви можете скопіювати посилання з меню.",
|
||||
"sessions.sidebar.session.share.successDescription": "Посилання для поширення скопійовано в буфер обміну.",
|
||||
"sessions.sidebar.session.share.error": "Не вдалося поділитися сесією",
|
||||
"sessions.sidebar.session.share.copyUrlError": "Не вдалося скопіювати URL",
|
||||
"sessions.sidebar.session.unshare.success": "Спільний доступ до сесій закрито",
|
||||
|
||||
@@ -476,6 +476,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.project.actions.edit': '编辑',
|
||||
'sessions.sidebar.project.actions.newDraftSession': '新建草稿会话',
|
||||
'sessions.sidebar.session.menu.rename': '重命名',
|
||||
'sessions.sidebar.session.menu.copyId': '复制会话 ID',
|
||||
'sessions.sidebar.session.copyId.success': '会话 ID 已复制',
|
||||
'sessions.sidebar.session.copyId.error': '无法复制会话 ID',
|
||||
'header.sessionActions.openAria': '打开会话操作',
|
||||
'sessions.sidebar.session.rename.save': '保存会话名称',
|
||||
'sessions.sidebar.session.rename.cancel': '取消重命名会话',
|
||||
'sessions.sidebar.session.menu.unpin': '取消置顶会话',
|
||||
@@ -498,6 +502,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.session.menu.label': '会话菜单',
|
||||
'sessions.sidebar.session.untitled': '未命名会话',
|
||||
'sessions.sidebar.session.export.nothingToExport': '没有可导出的内容',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': '无法加载完整的会话历史记录',
|
||||
'sessions.sidebar.session.export.success': '会话已导出',
|
||||
'sessions.sidebar.session.export.failedRevealPath': '显示路径失败',
|
||||
'sessions.sidebar.session.export.untitledSubagent': '未命名子智能体',
|
||||
@@ -553,7 +558,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '此操作将永久删除来自 {dateLabel} 的 {count} 个会话。',
|
||||
'sessions.sidebar.dialogs.sessionList.more': '+{count} 更多',
|
||||
'sessions.sidebar.session.share.successTitle': '会话已分享',
|
||||
'sessions.sidebar.session.share.successDescription': '你可以在菜单中复制链接。',
|
||||
'sessions.sidebar.session.share.successDescription': '分享链接已复制到剪贴板。',
|
||||
'sessions.sidebar.session.share.error': '无法分享会话',
|
||||
'sessions.sidebar.session.share.copyUrlError': '复制 URL 失败',
|
||||
'sessions.sidebar.session.unshare.success': '会话已取消分享',
|
||||
|
||||
@@ -489,6 +489,10 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.project.actions.edit': '編輯',
|
||||
'sessions.sidebar.project.actions.newDraftSession': '新增草稿會話',
|
||||
'sessions.sidebar.session.menu.rename': '重新命名',
|
||||
'sessions.sidebar.session.menu.copyId': '複製工作階段 ID',
|
||||
'sessions.sidebar.session.copyId.success': '已複製工作階段 ID',
|
||||
'sessions.sidebar.session.copyId.error': '無法複製工作階段 ID',
|
||||
'header.sessionActions.openAria': '開啟工作階段操作',
|
||||
'sessions.sidebar.session.rename.save': '儲存會話名稱',
|
||||
'sessions.sidebar.session.rename.cancel': '取消重新命名會話',
|
||||
'sessions.sidebar.session.menu.unpin': '取消釘選會話',
|
||||
@@ -511,6 +515,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.session.menu.label': '會話選單',
|
||||
'sessions.sidebar.session.untitled': '未命名會話',
|
||||
'sessions.sidebar.session.export.nothingToExport': '沒有可匯出的內容',
|
||||
'sessions.sidebar.session.export.failedLoadHistory': '無法載入完整的工作階段記錄',
|
||||
'sessions.sidebar.session.export.success': '會話已匯出',
|
||||
'sessions.sidebar.session.export.failedRevealPath': '顯示路徑失敗',
|
||||
'sessions.sidebar.session.export.untitledSubagent': '未命名子 Agent',
|
||||
@@ -566,7 +571,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '此操作將永久刪除來自 {dateLabel} 的 {count} 個會話。',
|
||||
'sessions.sidebar.dialogs.sessionList.more': '+{count} 更多',
|
||||
'sessions.sidebar.session.share.successTitle': '會話已分享',
|
||||
'sessions.sidebar.session.share.successDescription': '你可以在選單中複製連結。',
|
||||
'sessions.sidebar.session.share.successDescription': '分享連結已複製到剪貼簿。',
|
||||
'sessions.sidebar.session.share.error': '無法分享會話',
|
||||
'sessions.sidebar.session.share.copyUrlError': '複製 URL 失敗',
|
||||
'sessions.sidebar.session.unshare.success': '會話已取消分享',
|
||||
|
||||
Reference in New Issue
Block a user