diff --git a/ui/desktop/src/components/Layout/NavigationPanel.tsx b/ui/desktop/src/components/Layout/NavigationPanel.tsx index cfa514d93..874b76617 100644 --- a/ui/desktop/src/components/Layout/NavigationPanel.tsx +++ b/ui/desktop/src/components/Layout/NavigationPanel.tsx @@ -15,6 +15,8 @@ import { AppEvents } from '../../constants/events'; import { InlineEditText } from '../common/InlineEditText'; import { SessionIndicators } from '../SessionIndicators'; import { acpRenameSession, type SessionListItem } from '../../acp/sessions'; +import { Tooltip, TooltipContent, TooltipTrigger } from '../ui/Tooltip'; +import { formatMessageTimestamp } from '../../utils/timeUtils'; import { cn } from '../../utils'; import type { ProjectGroup } from '../../utils/projectSessions'; import { defineMessages, useIntl } from '../../i18n'; @@ -39,6 +41,42 @@ const i18n = defineMessages({ id: 'navigationPanel.untitledSession', defaultMessage: 'Untitled session', }, + metaModel: { + id: 'navigationPanel.metaModel', + defaultMessage: 'Model', + }, + metaDirectory: { + id: 'navigationPanel.metaDirectory', + defaultMessage: 'Directory', + }, + metaStatus: { + id: 'navigationPanel.metaStatus', + defaultMessage: 'Status', + }, + metaCreated: { + id: 'navigationPanel.metaCreated', + defaultMessage: 'Created', + }, + metaUpdated: { + id: 'navigationPanel.metaUpdated', + defaultMessage: 'Updated', + }, + statusStreaming: { + id: 'navigationPanel.statusStreaming', + defaultMessage: 'Streaming', + }, + statusError: { + id: 'navigationPanel.statusError', + defaultMessage: 'Error', + }, + statusUnread: { + id: 'navigationPanel.statusUnread', + defaultMessage: 'Unread activity', + }, + statusIdle: { + id: 'navigationPanel.statusIdle', + defaultMessage: 'Idle', + }, }); const navItemClass = (active: boolean) => @@ -78,43 +116,106 @@ interface SessionRowProps { onRenamed: () => void; } +const formatTimestamp = (value?: string): string | null => { + if (!value) return null; + const parsed = Date.parse(value); + if (Number.isNaN(parsed)) return null; + return formatMessageTimestamp(parsed / 1000); +}; + +const MetaRow: React.FC<{ label: string; value: string }> = ({ label, value }) => ( +
+ {label} + {value} +
+); + +interface SessionTooltipContentProps { + session: SessionListItem; + statusLabel: string; +} + +const SessionTooltipContent: React.FC = ({ session, statusLabel }) => { + const intl = useIntl(); + const model = session.modelId + ? session.providerId + ? `${session.modelId} (${session.providerId})` + : session.modelId + : session.providerId; + const created = formatTimestamp(session.createdAt); + const updated = formatTimestamp(session.lastMessageAt ?? session.updatedAt); + + return ( +
+
+ {session.name || intl.formatMessage(i18n.untitledSession)} +
+
+ {model && } + {session.workingDir && ( + + )} + + {created && } + {updated && } +
+
+ ); +}; + const SessionRow: React.FC = ({ session, active, status, onClick, onRenamed }) => { const intl = useIntl(); const [isEditing, setIsEditing] = useState(false); + const [tooltipOpen, setTooltipOpen] = useState(false); const isStreaming = status?.streamState === 'streaming'; const hasError = status?.streamState === 'error'; const hasUnread = status?.hasUnreadActivity ?? false; + const statusLabel = isStreaming + ? intl.formatMessage(i18n.statusStreaming) + : hasError + ? intl.formatMessage(i18n.statusError) + : hasUnread + ? intl.formatMessage(i18n.statusUnread) + : intl.formatMessage(i18n.statusIdle); + return ( -
!isEditing && onClick()} - className={cn( - 'flex items-center gap-2 px-3 py-1.5 rounded-full cursor-pointer text-sm', - 'hover:bg-background-tertiary/60 transition-colors', - active && 'bg-background-tertiary' - )} - > - { - await acpRenameSession(session.id, newName); - window.dispatchEvent( - new CustomEvent(AppEvents.SESSION_RENAMED, { - detail: { sessionId: session.id, newName, userInitiated: true }, - }) - ); - onRenamed(); - }} - placeholder={intl.formatMessage(i18n.untitledSession)} - disabled={isStreaming} - singleClickEdit={false} - className="truncate text-text-primary flex-1 !px-0 !py-0 hover:bg-transparent" - editClassName="!text-sm" - onEditStart={() => setIsEditing(true)} - onEditEnd={() => setIsEditing(false)} - /> - -
+ + +
!isEditing && onClick()} + className={cn( + 'flex items-center gap-2 px-3 py-1.5 rounded-full cursor-pointer text-sm', + 'hover:bg-background-tertiary/60 transition-colors', + active && 'bg-background-tertiary' + )} + > + { + await acpRenameSession(session.id, newName); + window.dispatchEvent( + new CustomEvent(AppEvents.SESSION_RENAMED, { + detail: { sessionId: session.id, newName, userInitiated: true }, + }) + ); + onRenamed(); + }} + placeholder={intl.formatMessage(i18n.untitledSession)} + disabled={isStreaming} + singleClickEdit={false} + className="truncate text-text-primary flex-1 !px-0 !py-0 hover:bg-transparent" + editClassName="!text-sm" + onEditStart={() => setIsEditing(true)} + onEditEnd={() => setIsEditing(false)} + /> + +
+
+ + + +
); }; diff --git a/ui/desktop/src/i18n/messages/de.json b/ui/desktop/src/i18n/messages/de.json index 99f67d65c..a8ed2a452 100644 --- a/ui/desktop/src/i18n/messages/de.json +++ b/ui/desktop/src/i18n/messages/de.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Chats" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Erstellt" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Verzeichnis" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Modell" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Status" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Aktualisiert" + }, "navigationPanel.noChats": { "defaultMessage": "Keine aktuellen Chats" }, + "navigationPanel.statusError": { + "defaultMessage": "Fehler" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Inaktiv" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Streaming" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Ungelesene Aktivität" + }, "navigationPanel.untitledSession": { "defaultMessage": "Unbenannte Sitzung" }, diff --git a/ui/desktop/src/i18n/messages/en.json b/ui/desktop/src/i18n/messages/en.json index 42ea7d121..c78fa9008 100644 --- a/ui/desktop/src/i18n/messages/en.json +++ b/ui/desktop/src/i18n/messages/en.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Chats" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Created" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Directory" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Model" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Status" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Updated" + }, "navigationPanel.noChats": { "defaultMessage": "No recent chats" }, + "navigationPanel.statusError": { + "defaultMessage": "Error" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Idle" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Streaming" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Unread activity" + }, "navigationPanel.untitledSession": { "defaultMessage": "Untitled session" }, diff --git a/ui/desktop/src/i18n/messages/es.json b/ui/desktop/src/i18n/messages/es.json index e2a5b1690..a85078a4b 100644 --- a/ui/desktop/src/i18n/messages/es.json +++ b/ui/desktop/src/i18n/messages/es.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Chats" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Creado" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Directorio" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Modelo" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Estado" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Actualizado" + }, "navigationPanel.noChats": { "defaultMessage": "No hay chats recientes" }, + "navigationPanel.statusError": { + "defaultMessage": "Error" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Inactivo" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Transmitiendo" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Actividad sin leer" + }, "navigationPanel.untitledSession": { "defaultMessage": "Sesión sin título" }, diff --git a/ui/desktop/src/i18n/messages/fr.json b/ui/desktop/src/i18n/messages/fr.json index 66b8608ab..351c15a6b 100644 --- a/ui/desktop/src/i18n/messages/fr.json +++ b/ui/desktop/src/i18n/messages/fr.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Discussions" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Créé" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Répertoire" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Modèle" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Statut" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Mis à jour" + }, "navigationPanel.noChats": { "defaultMessage": "Aucune discussion récente" }, + "navigationPanel.statusError": { + "defaultMessage": "Erreur" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Inactif" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Diffusion en continu" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Activité non lue" + }, "navigationPanel.untitledSession": { "defaultMessage": "Session sans titre" }, diff --git a/ui/desktop/src/i18n/messages/hi.json b/ui/desktop/src/i18n/messages/hi.json index a61388f33..ce4a177cf 100644 --- a/ui/desktop/src/i18n/messages/hi.json +++ b/ui/desktop/src/i18n/messages/hi.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "चैट" }, + "navigationPanel.metaCreated": { + "defaultMessage": "बनाया गया" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "निर्देशिका" + }, + "navigationPanel.metaModel": { + "defaultMessage": "मॉडल" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "स्थिति" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "अपडेट किया गया" + }, "navigationPanel.noChats": { "defaultMessage": "कोई हालिया चैट नहीं" }, + "navigationPanel.statusError": { + "defaultMessage": "त्रुटि" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "निष्क्रिय" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "स्ट्रीमिंग" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "अपठित गतिविधि" + }, "navigationPanel.untitledSession": { "defaultMessage": "शीर्षकहीन सत्र" }, diff --git a/ui/desktop/src/i18n/messages/id.json b/ui/desktop/src/i18n/messages/id.json index 8a662d2e0..b8b8ac33f 100644 --- a/ui/desktop/src/i18n/messages/id.json +++ b/ui/desktop/src/i18n/messages/id.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Obrolan" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Dibuat" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Direktori" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Model" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Status" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Diperbarui" + }, "navigationPanel.noChats": { "defaultMessage": "Tidak ada obrolan terbaru" }, + "navigationPanel.statusError": { + "defaultMessage": "Kesalahan" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Menganggur" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Streaming" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Aktivitas belum dibaca" + }, "navigationPanel.untitledSession": { "defaultMessage": "Sesi tanpa judul" }, diff --git a/ui/desktop/src/i18n/messages/it.json b/ui/desktop/src/i18n/messages/it.json index bd5293a7f..c252b1721 100644 --- a/ui/desktop/src/i18n/messages/it.json +++ b/ui/desktop/src/i18n/messages/it.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Chat" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Creato" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Directory" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Modello" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Stato" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Aggiornato" + }, "navigationPanel.noChats": { "defaultMessage": "Nessuna chat recente" }, + "navigationPanel.statusError": { + "defaultMessage": "Errore" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Inattivo" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "In streaming" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Attività non letta" + }, "navigationPanel.untitledSession": { "defaultMessage": "Sessione senza titolo" }, diff --git a/ui/desktop/src/i18n/messages/ja.json b/ui/desktop/src/i18n/messages/ja.json index 4dd9b296b..67bfabbe9 100644 --- a/ui/desktop/src/i18n/messages/ja.json +++ b/ui/desktop/src/i18n/messages/ja.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "チャット" }, + "navigationPanel.metaCreated": { + "defaultMessage": "作成" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "ディレクトリ" + }, + "navigationPanel.metaModel": { + "defaultMessage": "モデル" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "ステータス" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "更新" + }, "navigationPanel.noChats": { "defaultMessage": "最近のチャットはありません" }, + "navigationPanel.statusError": { + "defaultMessage": "エラー" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "アイドル" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "ストリーミング" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "未読のアクティビティ" + }, "navigationPanel.untitledSession": { "defaultMessage": "無題のセッション" }, diff --git a/ui/desktop/src/i18n/messages/ko.json b/ui/desktop/src/i18n/messages/ko.json index d878aeb06..1b723a324 100644 --- a/ui/desktop/src/i18n/messages/ko.json +++ b/ui/desktop/src/i18n/messages/ko.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "채팅" }, + "navigationPanel.metaCreated": { + "defaultMessage": "생성됨" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "디렉터리" + }, + "navigationPanel.metaModel": { + "defaultMessage": "모델" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "상태" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "업데이트됨" + }, "navigationPanel.noChats": { "defaultMessage": "최근 채팅 없음" }, + "navigationPanel.statusError": { + "defaultMessage": "오류" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "유휴" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "스트리밍" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "읽지 않은 활동" + }, "navigationPanel.untitledSession": { "defaultMessage": "제목 없는 세션" }, diff --git a/ui/desktop/src/i18n/messages/ms.json b/ui/desktop/src/i18n/messages/ms.json index 9cf12c158..368a16f0d 100644 --- a/ui/desktop/src/i18n/messages/ms.json +++ b/ui/desktop/src/i18n/messages/ms.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Sembang" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Dicipta" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Direktori" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Model" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Status" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Dikemas kini" + }, "navigationPanel.noChats": { "defaultMessage": "Tiada sembang terkini" }, + "navigationPanel.statusError": { + "defaultMessage": "Ralat" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Terbiar" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Penstriman" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Aktiviti belum dibaca" + }, "navigationPanel.untitledSession": { "defaultMessage": "Sesi tanpa tajuk" }, diff --git a/ui/desktop/src/i18n/messages/pt.json b/ui/desktop/src/i18n/messages/pt.json index 4ce7f6ff4..5f5a176c0 100644 --- a/ui/desktop/src/i18n/messages/pt.json +++ b/ui/desktop/src/i18n/messages/pt.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Conversas" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Criado" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Diretório" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Modelo" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Status" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Atualizado" + }, "navigationPanel.noChats": { "defaultMessage": "Sem conversas recentes" }, + "navigationPanel.statusError": { + "defaultMessage": "Erro" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Inativo" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Transmitindo" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Atividade não lida" + }, "navigationPanel.untitledSession": { "defaultMessage": "Sessão sem título" }, diff --git a/ui/desktop/src/i18n/messages/ru.json b/ui/desktop/src/i18n/messages/ru.json index 990e00372..22aca4c62 100644 --- a/ui/desktop/src/i18n/messages/ru.json +++ b/ui/desktop/src/i18n/messages/ru.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Чаты" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Создано" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Каталог" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Модель" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Статус" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Обновлено" + }, "navigationPanel.noChats": { "defaultMessage": "Нет недавних чатов" }, + "navigationPanel.statusError": { + "defaultMessage": "Ошибка" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Ожидание" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Потоковая передача" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Непрочитанная активность" + }, "navigationPanel.untitledSession": { "defaultMessage": "Безымянный сеанс" }, diff --git a/ui/desktop/src/i18n/messages/tr.json b/ui/desktop/src/i18n/messages/tr.json index 7cd8e06d9..357077426 100644 --- a/ui/desktop/src/i18n/messages/tr.json +++ b/ui/desktop/src/i18n/messages/tr.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Sohbetler" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Oluşturuldu" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Dizin" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Model" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Durum" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Güncellendi" + }, "navigationPanel.noChats": { "defaultMessage": "Son sohbet yok" }, + "navigationPanel.statusError": { + "defaultMessage": "Hata" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Boşta" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Akış" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Okunmamış etkinlik" + }, "navigationPanel.untitledSession": { "defaultMessage": "Başlıksız oturum" }, diff --git a/ui/desktop/src/i18n/messages/vi.json b/ui/desktop/src/i18n/messages/vi.json index 8aa4f7543..81b8f9490 100644 --- a/ui/desktop/src/i18n/messages/vi.json +++ b/ui/desktop/src/i18n/messages/vi.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "Cuộc trò chuyện" }, + "navigationPanel.metaCreated": { + "defaultMessage": "Đã tạo" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "Thư mục" + }, + "navigationPanel.metaModel": { + "defaultMessage": "Mô hình" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "Trạng thái" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "Đã cập nhật" + }, "navigationPanel.noChats": { "defaultMessage": "Không có cuộc trò chuyện gần đây" }, + "navigationPanel.statusError": { + "defaultMessage": "Lỗi" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "Nhàn rỗi" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "Đang truyền" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "Hoạt động chưa đọc" + }, "navigationPanel.untitledSession": { "defaultMessage": "Phiên chưa đặt tên" }, diff --git a/ui/desktop/src/i18n/messages/zh-CN.json b/ui/desktop/src/i18n/messages/zh-CN.json index 65801bf5d..4c6129b50 100644 --- a/ui/desktop/src/i18n/messages/zh-CN.json +++ b/ui/desktop/src/i18n/messages/zh-CN.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "聊天" }, + "navigationPanel.metaCreated": { + "defaultMessage": "创建时间" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "目录" + }, + "navigationPanel.metaModel": { + "defaultMessage": "模型" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "状态" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "更新时间" + }, "navigationPanel.noChats": { "defaultMessage": "没有最近的聊天" }, + "navigationPanel.statusError": { + "defaultMessage": "错误" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "空闲" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "流式传输" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "未读活动" + }, "navigationPanel.untitledSession": { "defaultMessage": "未命名会话" }, diff --git a/ui/desktop/src/i18n/messages/zh-TW.json b/ui/desktop/src/i18n/messages/zh-TW.json index 24e276f42..eb64d246b 100644 --- a/ui/desktop/src/i18n/messages/zh-TW.json +++ b/ui/desktop/src/i18n/messages/zh-TW.json @@ -2360,9 +2360,36 @@ "navigationPanel.chats": { "defaultMessage": "交談" }, + "navigationPanel.metaCreated": { + "defaultMessage": "建立時間" + }, + "navigationPanel.metaDirectory": { + "defaultMessage": "目錄" + }, + "navigationPanel.metaModel": { + "defaultMessage": "模型" + }, + "navigationPanel.metaStatus": { + "defaultMessage": "狀態" + }, + "navigationPanel.metaUpdated": { + "defaultMessage": "更新時間" + }, "navigationPanel.noChats": { "defaultMessage": "沒有最近的交談" }, + "navigationPanel.statusError": { + "defaultMessage": "錯誤" + }, + "navigationPanel.statusIdle": { + "defaultMessage": "閒置" + }, + "navigationPanel.statusStreaming": { + "defaultMessage": "串流" + }, + "navigationPanel.statusUnread": { + "defaultMessage": "未讀活動" + }, "navigationPanel.untitledSession": { "defaultMessage": "未命名工作階段" },