fix(memhub): harden settings state recovery
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
89d29c9c41
commit
17441d368c
15 files changed
+174
-30
No files matched your search
@@ -424,7 +424,7 @@ export function MemoryModeSettings({
|
||||
</p>
|
||||
) : null}
|
||||
{error && !pendingMode ? (
|
||||
<div className="r6-mode-recovery">
|
||||
<div className="r6-state-recovery">
|
||||
<p className="r6-settings-error" role="alert">
|
||||
{text(error)}
|
||||
</p>
|
||||
|
||||
@@ -199,7 +199,7 @@ it("uses one sidebar hierarchy and explains when a saved model is inactive in li
|
||||
await user.click(screen.getByRole("button", { name: "模型配置" }));
|
||||
expect(await screen.findByText("当前是基础记忆(lite)")).toBeTruthy();
|
||||
expect(
|
||||
screen.getByText(/开启 pro 或 ultra 后,模型将生效并开始整理新对话/),
|
||||
screen.getByText(/是否开始整理取决于.*“用模型沉淀记忆”.*开关/),
|
||||
).toBeTruthy();
|
||||
expect(screen.queryByRole("button", { name: "刷新模型状态" })).toBeNull();
|
||||
});
|
||||
@@ -233,6 +233,18 @@ it("carries a missing-model explanation into model configuration and moves focus
|
||||
await waitFor(() => expect(document.activeElement).toBe(heading));
|
||||
});
|
||||
|
||||
it("offers a text recovery action when the model overview cannot be read", async () => {
|
||||
vi.mocked(getModelProfiles).mockRejectedValueOnce(new Error("offline"));
|
||||
const user = userEvent.setup();
|
||||
render(<R6Settings onDiagnostics={vi.fn()} />);
|
||||
await user.click(screen.getByRole("button", { name: "模型配置" }));
|
||||
|
||||
expect(await screen.findByText("模型状态未能读取,请重试。")).toBeTruthy();
|
||||
await user.click(screen.getByRole("button", { name: "重新读取" }));
|
||||
|
||||
expect(await screen.findByText("当前模型")).toBeTruthy();
|
||||
});
|
||||
|
||||
it("stops model sedimentation on one switch flip without touching the model config", async () => {
|
||||
const user = userEvent.setup();
|
||||
vi.mocked(setSedimentation).mockResolvedValue({
|
||||
|
||||
@@ -393,8 +393,8 @@ export function R6Settings({
|
||||
profiles === null
|
||||
? "正在读取模型…"
|
||||
: modelError
|
||||
? "状态暂不可读"
|
||||
: "尚未配置",
|
||||
? "模型状态暂不可读"
|
||||
: "尚未配置模型",
|
||||
)}
|
||||
</strong>
|
||||
{currentModel && (
|
||||
@@ -446,13 +446,18 @@ export function R6Settings({
|
||||
</div>
|
||||
</div>
|
||||
{modelError && (
|
||||
<p role="alert" className="r6-settings-error">
|
||||
{text(
|
||||
profiles === null
|
||||
? "模型状态未能读取,请重试。"
|
||||
: "模型状态刷新未成功,仍显示上次确认的模型状态;请重试。",
|
||||
)}
|
||||
</p>
|
||||
<div className="r6-state-recovery">
|
||||
<p role="alert" className="r6-settings-error">
|
||||
{text(
|
||||
profiles === null
|
||||
? "模型状态未能读取,请重试。"
|
||||
: "模型状态刷新未成功,仍显示上次确认的模型状态;请重试。",
|
||||
)}
|
||||
</p>
|
||||
<R6Button onClick={() => setModelVersion((value) => value + 1)}>
|
||||
{t("startupRetry")}
|
||||
</R6Button>
|
||||
</div>
|
||||
)}
|
||||
{configurationRefusal && (
|
||||
<p role="alert" className="r6-settings-error">
|
||||
|
||||
@@ -380,14 +380,14 @@
|
||||
outline: 2px solid var(--r6-focus);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
.r6-mode-recovery {
|
||||
.r6-state-recovery {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
margin-top: 14px;
|
||||
}
|
||||
.r6-mode-recovery .r6-settings-error {
|
||||
.r6-state-recovery .r6-settings-error {
|
||||
margin: 0;
|
||||
}
|
||||
.r6-mode-confirm-effects {
|
||||
@@ -635,19 +635,19 @@
|
||||
.r6-settings .r6-model-mode-status {
|
||||
margin-top: 18px;
|
||||
padding: 12px 14px;
|
||||
border-left: 3px solid #7892a6;
|
||||
background: #f1f5f8;
|
||||
border-radius: 8px;
|
||||
background: var(--r6-field-fill);
|
||||
}
|
||||
.r6-settings .r6-model-mode-status strong {
|
||||
display: block;
|
||||
color: #304757;
|
||||
color: var(--r6-text);
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
line-height: 22px;
|
||||
}
|
||||
.r6-settings .r6-model-mode-status p {
|
||||
margin: 2px 0 0;
|
||||
color: #5e6e7a;
|
||||
color: var(--r6-muted);
|
||||
font-size: 13px;
|
||||
line-height: 22px;
|
||||
}
|
||||
@@ -697,7 +697,7 @@
|
||||
}
|
||||
.r6-settings .r6-model-lane small {
|
||||
margin-top: 1px;
|
||||
color: #71808b;
|
||||
color: var(--r6-muted);
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
}
|
||||
@@ -1086,7 +1086,7 @@
|
||||
.r6-evolve-settings input[type="time"] {
|
||||
width: min(220px, 100%);
|
||||
}
|
||||
.r6-mode-recovery {
|
||||
.r6-state-recovery {
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@@ -800,6 +800,19 @@ const baseEnglishMessages = {
|
||||
设置分组: "Settings sections",
|
||||
记忆模型: "Memory model",
|
||||
当前模型: "Current model",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Manage the models used for memory processing and search separately.",
|
||||
记忆整理: "Memory processing",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Turn conversations into memories you can use over the long term.",
|
||||
记忆搜索: "Memory search",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"Find the memories most relevant to your question when you need them.",
|
||||
"本地内置(推荐)": "Built-in locally (recommended)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Customizable after memory processing is configured",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Processed locally, no extra setup required",
|
||||
"正在读取模型…": "Loading model…",
|
||||
模型状态暂不可读: "Model status is unavailable",
|
||||
尚未配置模型: "No model configured",
|
||||
|
||||
@@ -134,7 +134,7 @@ const modeChineseMessages = {
|
||||
"当前是深度记忆(ultra)": "当前是深度记忆(ultra)",
|
||||
"正在读取记忆模式…": "正在读取记忆模式…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。",
|
||||
"模型配置已保留,目前不会用于整理新对话。切换到 pro 或 ultra 后,是否开始整理取决于单独的“用模型沉淀记忆”(沉淀)开关。",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -298,7 +298,7 @@ export const modeEnglishMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Current mode: Deep memory (ultra)",
|
||||
"正在读取记忆模式…": "Reading memory mode…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"The model configuration is kept but is not currently creating memories. Enable pro or ultra to activate it for new conversations.",
|
||||
"The model configuration is retained and is not currently used to organize new conversations. After switching to pro or ultra, whether it starts organizing them depends on the separate “Create memories with a model” switch.",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"Checking memory creation status. The model configuration and existing memories are unaffected.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -458,7 +458,7 @@ export const modeSpanishMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Modo actual: memoria profunda (ultra)",
|
||||
"正在读取记忆模式…": "Leyendo el modo de memoria…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"La configuración del modelo se conserva, pero ahora no crea memorias. Activa pro o ultra para usarla con conversaciones nuevas.",
|
||||
"La configuración del modelo se conserva y actualmente no se usa para organizar conversaciones nuevas. Tras cambiar a pro o ultra, que empiece a organizarlas dependerá del interruptor independiente «Generar memorias con el modelo».",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"Comprobando la creación de memorias. La configuración y las memorias existentes no se ven afectadas.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -608,7 +608,7 @@ export const modeTraditionalChineseMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "目前是深度記憶(ultra)",
|
||||
"正在读取记忆模式…": "正在讀取記憶模式…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"模型設定已保留,但目前不會用於建立記憶。開啟 pro 或 ultra 後,模型將生效並開始整理新對話。",
|
||||
"模型設定已保留,目前不會用於整理新對話。切換到 pro 或 ultra 後,是否開始整理取決於獨立的「用模型建立記憶」(沉澱)開關。",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"正在確認模型建立記憶的狀態,模型設定與現有記憶不會受到影響。",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -723,7 +723,7 @@ export const modeJapaneseMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "現在は高度な記憶(ultra)です",
|
||||
"正在读取记忆模式…": "記憶モードを読み込み中…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"モデル設定は保持されていますが、現在は記憶の作成に使用されません。pro または ultra を有効にすると、新しい会話の整理に使用されます。",
|
||||
"モデル設定は保持されていますが、現在は新しい会話の整理には使用されません。pro または ultra に切り替えた後、整理を開始するかどうかは、独立した「モデルで記憶を作成」スイッチによって決まります。",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"モデルによる記憶作成の状態を確認中です。モデル設定と既存の記憶には影響しません。",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -884,7 +884,7 @@ export const modeGermanMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Aktueller Modus: Tiefe Erinnerung (ultra)",
|
||||
"正在读取记忆模式…": "Erinnerungsmodus wird gelesen…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"Die Modellkonfiguration bleibt erhalten, erstellt derzeit aber keine Erinnerungen. Aktivieren Sie pro oder ultra, um neue Unterhaltungen zu verarbeiten.",
|
||||
"Die Modellkonfiguration bleibt erhalten und wird derzeit nicht zum Ordnen neuer Unterhaltungen verwendet. Ob sie nach dem Wechsel zu pro oder ultra damit beginnt, hängt vom separaten Schalter „Erinnerungen mit Modell erstellen“ ab.",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"Der Status der Erinnerungserstellung wird geprüft. Modellkonfiguration und vorhandene Erinnerungen bleiben unverändert.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -1045,7 +1045,7 @@ export const modePortugueseMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Modo atual: memória profunda (ultra)",
|
||||
"正在读取记忆模式…": "A ler o modo de memória…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"A configuração do modelo é mantida, mas não está a criar memórias. Ative pro ou ultra para processar novas conversas.",
|
||||
"A configuração do modelo é mantida e não é atualmente usada para organizar novas conversas. Após mudar para pro ou ultra, o início dessa organização depende do interruptor separado «Criar memórias com um modelo».",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"A verificar o estado da criação de memórias. A configuração do modelo e as memórias existentes não são afetadas.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -1206,7 +1206,7 @@ export const modeFrenchMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Mode actuel : mémoire approfondie (ultra)",
|
||||
"正在读取记忆模式…": "Lecture du mode de mémoire…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"La configuration du modèle est conservée, mais ne crée actuellement aucune mémoire. Activez pro ou ultra pour traiter les nouvelles conversations.",
|
||||
"La configuration du modèle est conservée et n’est actuellement pas utilisée pour organiser les nouvelles conversations. Après le passage à pro ou ultra, leur organisation dépend de l’interrupteur distinct « Créer des mémoires avec un modèle ».",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"Vérification de l’état de création des mémoires. La configuration du modèle et les mémoires existantes ne sont pas affectées.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -1363,7 +1363,7 @@ export const modeKoreanMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "현재 모드: 심층 메모리(ultra)",
|
||||
"正在读取记忆模式…": "메모리 모드 읽는 중…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"모델 구성은 유지되지만 현재 메모리 생성에는 사용되지 않습니다. pro 또는 ultra를 켜면 새 대화 정리에 사용됩니다.",
|
||||
"모델 구성은 유지되며 현재 새 대화를 정리하는 데 사용되지 않습니다. pro 또는 ultra로 전환한 후 정리를 시작할지는 별도의 ‘모델로 기억 생성’ 스위치에 따라 결정됩니다.",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"모델의 메모리 생성 상태를 확인 중입니다. 모델 구성과 기존 메모리는 영향을 받지 않습니다.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -1523,7 +1523,7 @@ export const modeRussianMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Текущий режим: глубокая память (ultra)",
|
||||
"正在读取记忆模式…": "Чтение режима памяти…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"Конфигурация модели сохранена, но сейчас не используется для создания воспоминаний. Включите pro или ultra, чтобы обрабатывать новые диалоги.",
|
||||
"Конфигурация модели сохранена и сейчас не используется для упорядочивания новых диалогов. После переключения на pro или ultra начало обработки зависит от отдельного переключателя «Создавать записи памяти с помощью модели».",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"Проверяется состояние создания воспоминаний. Конфигурация модели и существующие воспоминания не изменятся.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
@@ -1682,7 +1682,7 @@ export const modeIndonesianMessages: ModeMessages = {
|
||||
"当前是深度记忆(ultra)": "Mode saat ini: memori mendalam (ultra)",
|
||||
"正在读取记忆模式…": "Membaca mode memori…",
|
||||
"模型配置已保留,但当前不会用于沉淀记忆。开启 pro 或 ultra 后,模型将生效并开始整理新对话。":
|
||||
"Konfigurasi model tetap disimpan, tetapi saat ini tidak membuat memori. Aktifkan pro atau ultra untuk memproses percakapan baru.",
|
||||
"Konfigurasi model tetap disimpan dan saat ini tidak digunakan untuk menata percakapan baru. Setelah beralih ke pro atau ultra, apakah penataan dimulai bergantung pada sakelar terpisah “Buat memori dengan model”.",
|
||||
"正在确认模型沉淀状态,模型配置和已有记忆不会受影响。":
|
||||
"Memeriksa status pembuatan memori. Konfigurasi model dan memori yang ada tidak terpengaruh.",
|
||||
"当前模式支持模型沉淀,但模型整理已暂停;重新开启后会继续处理保留的任务。":
|
||||
|
||||
@@ -174,6 +174,19 @@ export const settingsSpanishMessages = {
|
||||
设置分组: "Secciones de configuración",
|
||||
记忆模型: "Modelo de memorias",
|
||||
当前模型: "Modelo actual",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Gestiona por separado los modelos usados para organizar y buscar recuerdos.",
|
||||
记忆整理: "Organización de recuerdos",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Convierte las conversaciones en recuerdos útiles a largo plazo.",
|
||||
记忆搜索: "Búsqueda de recuerdos",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"Encuentra los recuerdos más relevantes para tu pregunta cuando los necesitas.",
|
||||
"本地内置(推荐)": "Integrado localmente (recomendado)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Personalizable tras configurar la organización de recuerdos",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Procesamiento local, sin configuración adicional",
|
||||
"正在读取模型…": "Leyendo el modelo…",
|
||||
模型状态暂不可读: "Estado del modelo no disponible",
|
||||
尚未配置模型: "No hay un modelo configurado",
|
||||
|
||||
@@ -986,6 +986,19 @@ export const germanMessages: Record<MessageKey, string> = {
|
||||
设置分组: "Einstellungsbereiche",
|
||||
记忆模型: "Erinnerungsmodell",
|
||||
当前模型: "Aktuelles Modell",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Verwalten Sie die Modelle für die Aufbereitung und Suche von Erinnerungen getrennt.",
|
||||
记忆整理: "Erinnerungen aufbereiten",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Verarbeitet Unterhaltungen zu langfristig nutzbaren Erinnerungen.",
|
||||
记忆搜索: "Erinnerungen durchsuchen",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"Findet bei Bedarf die Erinnerungen, die für Ihre Frage am relevantesten sind.",
|
||||
"本地内置(推荐)": "Lokal integriert (empfohlen)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Nach Einrichtung der Erinnerungsaufbereitung anpassbar",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Lokale Verarbeitung, keine zusätzliche Einrichtung erforderlich",
|
||||
"正在读取模型…": "Modell wird geladen…",
|
||||
模型状态暂不可读: "Modellstatus nicht verfügbar",
|
||||
尚未配置模型: "Kein Modell eingerichtet",
|
||||
|
||||
@@ -998,6 +998,19 @@ export const frenchMessages: Record<MessageKey, string> = {
|
||||
设置分组: "Sections des paramètres",
|
||||
记忆模型: "Modèle de mémoire",
|
||||
当前模型: "Modèle actuel",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Gérez séparément les modèles utilisés pour organiser et rechercher les mémoires.",
|
||||
记忆整理: "Organisation des mémoires",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Transforme les conversations en mémoires utiles à long terme.",
|
||||
记忆搜索: "Recherche de mémoires",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"Trouve, au besoin, les mémoires les plus pertinentes pour votre question.",
|
||||
"本地内置(推荐)": "Intégré en local (recommandé)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Personnalisable après la configuration de l’organisation des mémoires",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Traitement local, sans configuration supplémentaire",
|
||||
"正在读取模型…": "Chargement du modèle…",
|
||||
模型状态暂不可读: "L’état du modèle est indisponible",
|
||||
尚未配置模型: "Aucun modèle configuré",
|
||||
|
||||
@@ -969,6 +969,19 @@ export const indonesianMessages: Record<MessageKey, string> = {
|
||||
设置分组: "Bagian pengaturan",
|
||||
记忆模型: "Model memori",
|
||||
当前模型: "Model saat ini",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Kelola secara terpisah model yang digunakan untuk mengolah dan mencari memori.",
|
||||
记忆整理: "Pengolahan memori",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Mengubah percakapan menjadi memori yang dapat digunakan dalam jangka panjang.",
|
||||
记忆搜索: "Pencarian memori",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"Menemukan memori yang paling relevan dengan pertanyaan Anda saat diperlukan.",
|
||||
"本地内置(推荐)": "Bawaan lokal (disarankan)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Dapat disesuaikan setelah pengolahan memori dikonfigurasi",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Diproses secara lokal, tanpa konfigurasi tambahan",
|
||||
"正在读取模型…": "Memuat model…",
|
||||
模型状态暂不可读: "Status model tidak tersedia",
|
||||
尚未配置模型: "Belum ada model yang dikonfigurasi",
|
||||
|
||||
@@ -966,6 +966,19 @@ export const japaneseMessages: Record<MessageKey, string> = {
|
||||
设置分组: "設定のセクション",
|
||||
记忆模型: "記憶モデル",
|
||||
当前模型: "現在のモデル",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"記憶の整理と検索に使うモデルを個別に管理します。",
|
||||
记忆整理: "記憶の整理",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"会話を理解し、長期的に活用できる記憶として整理します。",
|
||||
记忆搜索: "記憶の検索",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"必要なときに、質問に最も関連する記憶を見つけます。",
|
||||
"本地内置(推荐)": "ローカル内蔵(推奨)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · 記憶の整理を設定後にカスタマイズ可能",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · このデバイスで処理、追加設定不要",
|
||||
"正在读取模型…": "モデルを読み込み中…",
|
||||
模型状态暂不可读: "モデルの状態を取得できません",
|
||||
尚未配置模型: "モデル未設定",
|
||||
|
||||
@@ -944,6 +944,19 @@ export const koreanMessages: Record<MessageKey, string> = {
|
||||
设置分组: "설정 섹션",
|
||||
记忆模型: "기억 모델",
|
||||
当前模型: "현재 모델",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"기억 정리와 검색에 사용할 모델을 각각 관리합니다.",
|
||||
记忆整理: "기억 정리",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"대화를 이해하고 장기간 활용할 수 있는 기억으로 정리합니다.",
|
||||
记忆搜索: "기억 검색",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"필요할 때 질문과 가장 관련성 높은 기억을 찾습니다.",
|
||||
"本地内置(推荐)": "로컬 내장(권장)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · 기억 정리 구성 후 사용자 지정 가능",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · 로컬 처리, 추가 구성 필요 없음",
|
||||
"正在读取模型…": "모델을 불러오는 중…",
|
||||
模型状态暂不可读: "모델 상태를 확인할 수 없습니다",
|
||||
尚未配置模型: "구성된 모델이 없습니다",
|
||||
|
||||
@@ -990,6 +990,19 @@ export const portugueseMessages: Record<MessageKey, string> = {
|
||||
设置分组: "Seções das configurações",
|
||||
记忆模型: "Modelo de memória",
|
||||
当前模型: "Modelo atual",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Gerencie separadamente os modelos usados para organizar e pesquisar memórias.",
|
||||
记忆整理: "Organização de memórias",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Transforma conversas em memórias úteis a longo prazo.",
|
||||
记忆搜索: "Pesquisa de memórias",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"Encontra, quando necessário, as memórias mais relevantes para sua pergunta.",
|
||||
"本地内置(推荐)": "Integrado localmente (recomendado)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Personalizável após configurar a organização de memórias",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Processamento local, sem configuração adicional",
|
||||
"正在读取模型…": "Carregando modelo…",
|
||||
模型状态暂不可读: "O status do modelo não está disponível",
|
||||
尚未配置模型: "Nenhum modelo configurado",
|
||||
|
||||
@@ -974,6 +974,19 @@ export const russianMessages: Record<MessageKey, string> = {
|
||||
设置分组: "Разделы настроек",
|
||||
记忆模型: "Модель памяти",
|
||||
当前模型: "Текущая модель",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"Отдельно управляйте моделями для обработки и поиска записей памяти.",
|
||||
记忆整理: "Обработка памяти",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"Преобразует диалоги в записи памяти для долгосрочного использования.",
|
||||
记忆搜索: "Поиск по памяти",
|
||||
"在需要时找到与你的问题最相关的记忆。":
|
||||
"При необходимости находит записи памяти, наиболее релевантные вашему вопросу.",
|
||||
"本地内置(推荐)": "Встроенная локальная модель (рекомендуется)",
|
||||
"Embedding · 配置记忆整理后可自定义":
|
||||
"Embedding · Настраивается после конфигурации обработки памяти",
|
||||
"Embedding · 本机处理,无需额外配置":
|
||||
"Embedding · Локальная обработка, дополнительная настройка не требуется",
|
||||
"正在读取模型…": "Загрузка модели…",
|
||||
模型状态暂不可读: "Статус модели недоступен",
|
||||
尚未配置模型: "Модель не настроена",
|
||||
|
||||
@@ -877,6 +877,16 @@ export const traditionalChineseMessages: Record<MessageKey, string> = {
|
||||
设置分组: "設定分組",
|
||||
记忆模型: "記憶模型",
|
||||
当前模型: "目前模型",
|
||||
"分别管理记忆整理与搜索所使用的模型。":
|
||||
"分別管理記憶整理與搜尋所使用的模型。",
|
||||
记忆整理: "記憶整理",
|
||||
"把会话理解并整理成可长期使用的记忆。":
|
||||
"將對話理解並整理成可長期使用的記憶。",
|
||||
记忆搜索: "記憶搜尋",
|
||||
"在需要时找到与你的问题最相关的记忆。": "需要時找出與你的問題最相關的記憶。",
|
||||
"本地内置(推荐)": "本機內建(建議)",
|
||||
"Embedding · 配置记忆整理后可自定义": "Embedding · 設定記憶整理後可自訂",
|
||||
"Embedding · 本机处理,无需额外配置": "Embedding · 本機處理,無需額外設定",
|
||||
"正在读取模型…": "正在讀取模型…",
|
||||
模型状态暂不可读: "模型狀態暫不可讀",
|
||||
尚未配置模型: "尚未設定模型",
|
||||
|
||||
Reference in new issue
Block a user