[codex] fix MCP management lifecycle (#1144)
* feat(mcp): add MCP server management UI - Server CRUD: add/edit/remove with YAML/JSON Monaco editor - raw_config passthrough: zero field loss on edit/toggle - tool_details embedding: single-request card data (1+N → 1) - Auto-retry exponential backoff (2s→32s, max 5 retries) - Route safety guards (hasRoute) for dynamic sidebar - i18n: 9 languages (de/en/es/fr/ja/ko/pt/zh/zh-TW) - 19 unit tests + 8 UX browser tests - 35 files, +2933 lines * fix mcp management lifecycle --------- Co-authored-by: Crafter-feng <succeed_happu@163.com>
This commit is contained in:
@@ -105,6 +105,60 @@ export default {
|
||||
expired: 'Abgelaufen',
|
||||
},
|
||||
|
||||
// MCP-Verwaltung
|
||||
mcp: {
|
||||
title: 'MCP-Server',
|
||||
loadFailed: 'MCP-Server konnten nicht geladen werden',
|
||||
reloadAll: 'Alle neu laden',
|
||||
refresh: 'Aktualisieren',
|
||||
total: 'Gesamt',
|
||||
connected: 'Verbunden',
|
||||
disconnected: 'Getrennt',
|
||||
tools: 'werkzeuge',
|
||||
tool: 'Werkzeuge',
|
||||
searchPlaceholder: 'Server suchen...',
|
||||
addServer: '+ Server hinzufuegen',
|
||||
zeroTools: '0 Werkzeuge',
|
||||
loading: 'Wird geladen...',
|
||||
empty: 'Keine MCP-Server konfiguriert',
|
||||
reloaded: '{server} neu geladen',
|
||||
reloadedAll: 'Alle MCP-Server neu geladen',
|
||||
reloadFailed: 'Neuladen fehlgeschlagen',
|
||||
serverAdded: 'Server "{name}" hinzugefuegt',
|
||||
addFailed: 'Server konnte nicht hinzugefuegt werden',
|
||||
serverUpdated: 'Server "{name}" aktualisiert',
|
||||
updateFailed: 'Server konnte nicht aktualisiert werden',
|
||||
saveFailed: 'Speichern fehlgeschlagen',
|
||||
serverRemoved: '"{name}" entfernt',
|
||||
enabled: "Aktiviert: {name}",
|
||||
disabled: "Deaktiviert: {name}",
|
||||
connectedStatus: 'Verbunden',
|
||||
disconnectedStatus: 'Getrennt',
|
||||
disabledStatus: 'Deaktiviert',
|
||||
toolList: 'Werkzeugliste',
|
||||
count: ' ',
|
||||
more: 'mehr',
|
||||
removeFailed: 'Server konnte nicht entfernt werden',
|
||||
testOk: 'Test OK — {count} Werkzeuge verfuegbar',
|
||||
testEmpty: 'Test lieferte keine Werkzeuge',
|
||||
testFailed: 'Test fehlgeschlagen',
|
||||
edit: 'Bearbeiten',
|
||||
test: 'Testen',
|
||||
reload: 'Neu laden',
|
||||
remove: 'Entfernen',
|
||||
confirmRemove: 'Server "{name}" entfernen?',
|
||||
cancel: 'Abbrechen',
|
||||
add: 'Hinzufuegen',
|
||||
save: 'Speichern',
|
||||
addTitle: 'MCP-Server hinzufuegen',
|
||||
editTitle: 'MCP-Server bearbeiten',
|
||||
invalidJson: 'Ungültiges JSON',
|
||||
invalidYaml: 'Ungültiges YAML-Format',
|
||||
invalidConfig: 'Ungültige Konfiguration',
|
||||
invalidServerConfig: 'Ungültige Serverkonfiguration',
|
||||
missingCommandOrUrl: 'Muss command oder url enthalten',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
sidebar: {
|
||||
chat: 'Chat',
|
||||
@@ -115,6 +169,7 @@ export default {
|
||||
models: 'Modelle',
|
||||
profiles: 'Profile',
|
||||
plugins: 'Plugins',
|
||||
mcp: 'MCP',
|
||||
skills: 'Fahigkeiten',
|
||||
memory: 'Gedachtnis',
|
||||
logs: 'Protokolle',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: 'Kontextkomprimierung im Leerlauf ausführen',
|
||||
steer: 'Steuertext an den aktiven Bridge-Lauf senden',
|
||||
destroy: 'Bridge-Agent für diese Sitzung freigeben',
|
||||
reloadMcp: 'MCP-Server neu laden',
|
||||
},
|
||||
attachFiles: 'Dateien anhangen',
|
||||
showToolCalls: 'Tool-Aufrufe anzeigen',
|
||||
|
||||
@@ -105,6 +105,60 @@ export default {
|
||||
stop: 'Stop',
|
||||
},
|
||||
|
||||
// MCP Management
|
||||
mcp: {
|
||||
title: 'MCP Servers',
|
||||
loadFailed: 'Failed to load MCP servers',
|
||||
reloadAll: 'Reload All',
|
||||
refresh: 'Refresh',
|
||||
total: 'Total',
|
||||
connected: 'Connected',
|
||||
disconnected: 'Disconnected',
|
||||
tools: 'tools',
|
||||
tool: 'Tools',
|
||||
searchPlaceholder: 'Search servers...',
|
||||
addServer: '+ Add Server',
|
||||
zeroTools: '0 tools',
|
||||
loading: 'Loading...',
|
||||
empty: 'No MCP servers configured',
|
||||
reloaded: 'Reloaded {server}',
|
||||
reloadedAll: 'All MCP servers reloaded',
|
||||
reloadFailed: 'Reload failed',
|
||||
serverAdded: 'Server "{name}" added',
|
||||
addFailed: 'Failed to add server',
|
||||
serverUpdated: 'Server "{name}" updated',
|
||||
updateFailed: 'Failed to update server',
|
||||
saveFailed: 'Save failed',
|
||||
serverRemoved: 'Removed "{name}"',
|
||||
enabled: "Enabled {name}",
|
||||
disabled: "Disabled {name}",
|
||||
connectedStatus: 'Connected',
|
||||
disconnectedStatus: 'Disconnected',
|
||||
disabledStatus: 'Disabled',
|
||||
toolList: 'Tool List',
|
||||
count: ' ',
|
||||
more: 'more',
|
||||
removeFailed: 'Failed to remove server',
|
||||
testOk: 'Test OK — {count} tools available',
|
||||
testEmpty: 'Test returned no tools',
|
||||
testFailed: 'Test failed',
|
||||
edit: 'Edit',
|
||||
test: 'Test',
|
||||
reload: 'Reload',
|
||||
remove: 'Remove',
|
||||
confirmRemove: 'Remove server "{name}"?',
|
||||
cancel: 'Cancel',
|
||||
add: 'Add',
|
||||
save: 'Save',
|
||||
addTitle: 'Add MCP Server',
|
||||
editTitle: 'Edit MCP Server',
|
||||
invalidJson: 'Invalid JSON format',
|
||||
invalidYaml: 'Invalid YAML format',
|
||||
invalidConfig: 'Invalid configuration',
|
||||
invalidServerConfig: 'Invalid server configuration',
|
||||
missingCommandOrUrl: 'Must have command or url',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
sidebar: {
|
||||
chat: 'Chat',
|
||||
@@ -117,6 +171,7 @@ export default {
|
||||
profiles: 'Profiles',
|
||||
skills: 'Skills',
|
||||
plugins: 'Plugins',
|
||||
mcp: 'MCP',
|
||||
memory: 'Memory',
|
||||
logs: 'Logs',
|
||||
usage: 'Usage',
|
||||
@@ -236,6 +291,7 @@ export default {
|
||||
compress: 'Run context compression while idle',
|
||||
steer: 'Send steering text to the active bridge run',
|
||||
destroy: 'Release the bridge agent for this session',
|
||||
reloadMcp: 'Reload MCP servers',
|
||||
},
|
||||
attachFiles: 'Attach files',
|
||||
autoPlaySpeech: 'Auto-play voice',
|
||||
|
||||
@@ -105,6 +105,60 @@ export default {
|
||||
expired: 'Expirado',
|
||||
},
|
||||
|
||||
// Gestion de MCP
|
||||
mcp: {
|
||||
title: 'Servidores MCP',
|
||||
loadFailed: 'Error al cargar servidores MCP',
|
||||
reloadAll: 'Recargar todos',
|
||||
refresh: 'Actualizar',
|
||||
total: 'Total',
|
||||
connected: 'Conectado',
|
||||
disconnected: 'Desconectado',
|
||||
tools: 'herramientas',
|
||||
tool: 'Herramientas',
|
||||
searchPlaceholder: 'Buscar servidores...',
|
||||
addServer: '+ Agregar servidor',
|
||||
zeroTools: '0 herramientas',
|
||||
loading: 'Cargando...',
|
||||
empty: 'No hay servidores MCP configurados',
|
||||
reloaded: '{server} recargado',
|
||||
reloadedAll: 'Todos los servidores MCP recargados',
|
||||
reloadFailed: 'Error al recargar',
|
||||
serverAdded: 'Servidor "{name}" agregado',
|
||||
addFailed: 'Error al agregar servidor',
|
||||
serverUpdated: 'Servidor "{name}" actualizado',
|
||||
updateFailed: 'Error al actualizar servidor',
|
||||
saveFailed: 'Error al guardar',
|
||||
serverRemoved: '"{name}" eliminado',
|
||||
enabled: "Habilitado: {name}",
|
||||
disabled: "Deshabilitado: {name}",
|
||||
connectedStatus: 'Conectado',
|
||||
disconnectedStatus: 'Desconectado',
|
||||
disabledStatus: 'Deshabilitado',
|
||||
toolList: 'Lista de herramientas',
|
||||
count: ' ',
|
||||
more: 'más',
|
||||
removeFailed: 'Error al eliminar servidor',
|
||||
testOk: 'Prueba OK — {count} herramientas disponibles',
|
||||
testEmpty: 'La prueba no devolvio herramientas',
|
||||
testFailed: 'Error en la prueba',
|
||||
edit: 'Editar',
|
||||
test: 'Probar',
|
||||
reload: 'Recargar',
|
||||
remove: 'Eliminar',
|
||||
confirmRemove: '¿Eliminar servidor "{name}"?',
|
||||
cancel: 'Cancelar',
|
||||
add: 'Agregar',
|
||||
save: 'Guardar',
|
||||
addTitle: 'Agregar servidor MCP',
|
||||
editTitle: 'Editar servidor MCP',
|
||||
invalidJson: 'JSON inválido',
|
||||
invalidYaml: 'Formato YAML no válido',
|
||||
invalidConfig: 'Configuración no válida',
|
||||
invalidServerConfig: 'Configuración del servidor no válida',
|
||||
missingCommandOrUrl: 'Debe incluir command o url',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
sidebar: {
|
||||
chat: 'Chat',
|
||||
@@ -115,6 +169,7 @@ export default {
|
||||
models: 'Modelos',
|
||||
profiles: 'Perfiles',
|
||||
plugins: 'Plugins',
|
||||
mcp: 'MCP',
|
||||
skills: 'Habilidades',
|
||||
memory: 'Memoria',
|
||||
logs: 'Registros',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: 'Ejecutar compresión de contexto cuando esté inactiva',
|
||||
steer: 'Enviar texto de guía a la ejecución activa de Bridge',
|
||||
destroy: 'Liberar el agente Bridge de esta sesión',
|
||||
reloadMcp: 'Recargar servidores MCP',
|
||||
},
|
||||
attachFiles: 'Adjuntar archivos',
|
||||
showToolCalls: 'Mostrar llamadas de herramientas',
|
||||
|
||||
@@ -105,6 +105,60 @@ export default {
|
||||
expired: 'Expiré',
|
||||
},
|
||||
|
||||
// Gestion de MCP
|
||||
mcp: {
|
||||
title: 'Serveurs MCP',
|
||||
loadFailed: 'Echec du chargement des serveurs MCP',
|
||||
reloadAll: 'Tout recharger',
|
||||
refresh: 'Rafraichir',
|
||||
total: 'Total',
|
||||
connected: 'Connecte',
|
||||
disconnected: 'Deconnecte',
|
||||
tools: 'outils',
|
||||
tool: 'Outils',
|
||||
searchPlaceholder: 'Rechercher des serveurs...',
|
||||
addServer: '+ Ajouter un serveur',
|
||||
zeroTools: '0 outils',
|
||||
loading: 'Chargement...',
|
||||
empty: 'Aucun serveur MCP configure',
|
||||
reloaded: '{server} recharge',
|
||||
reloadedAll: 'Tous les serveurs MCP recharges',
|
||||
reloadFailed: 'Echec du rechargement',
|
||||
serverAdded: 'Serveur "{name}" ajoute',
|
||||
addFailed: 'Echec de l ajout du serveur',
|
||||
serverUpdated: 'Serveur "{name}" mis a jour',
|
||||
updateFailed: 'Echec de la mise a jour du serveur',
|
||||
saveFailed: 'Echec de la sauvegarde',
|
||||
serverRemoved: '"{name}" supprime',
|
||||
enabled: "Activé : {name}",
|
||||
disabled: "Désactivé : {name}",
|
||||
connectedStatus: 'Connecté',
|
||||
disconnectedStatus: 'Déconnecté',
|
||||
disabledStatus: 'Désactivé',
|
||||
toolList: 'Liste des outils',
|
||||
count: ' ',
|
||||
more: 'de plus',
|
||||
removeFailed: 'Echec de la suppression du serveur',
|
||||
testOk: 'Test OK — {count} outils disponibles',
|
||||
testEmpty: 'Le test n a retourne aucun outil',
|
||||
testFailed: 'Echec du test',
|
||||
edit: 'Modifier',
|
||||
test: 'Tester',
|
||||
reload: 'Recharger',
|
||||
remove: 'Supprimer',
|
||||
confirmRemove: 'Supprimer le serveur "{name}" ?',
|
||||
cancel: 'Annuler',
|
||||
add: 'Ajouter',
|
||||
save: 'Enregistrer',
|
||||
addTitle: 'Ajouter un serveur MCP',
|
||||
editTitle: 'Modifier le serveur MCP',
|
||||
invalidJson: 'JSON invalide',
|
||||
invalidYaml: 'Format YAML invalide',
|
||||
invalidConfig: 'Configuration invalide',
|
||||
invalidServerConfig: 'Configuration du serveur invalide',
|
||||
missingCommandOrUrl: 'Doit contenir command ou url',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
sidebar: {
|
||||
chat: 'Discussion',
|
||||
@@ -115,6 +169,7 @@ export default {
|
||||
models: 'Modeles',
|
||||
profiles: 'Profils',
|
||||
plugins: 'Plugins',
|
||||
mcp: 'MCP',
|
||||
skills: 'Competences',
|
||||
memory: 'Memoire',
|
||||
logs: 'Journaux',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: 'Lancer la compression du contexte au repos',
|
||||
steer: 'Envoyer un guidage à l’exécution Bridge active',
|
||||
destroy: 'Libérer l’agent Bridge de cette session',
|
||||
reloadMcp: 'Recharger les serveurs MCP',
|
||||
},
|
||||
attachFiles: 'Joindre des fichiers',
|
||||
showToolCalls: 'Afficher les appels d’outils',
|
||||
|
||||
@@ -106,6 +106,60 @@ export default {
|
||||
},
|
||||
|
||||
// サイドバー
|
||||
// MCP 管理
|
||||
mcp: {
|
||||
title: 'MCP サーバー',
|
||||
loadFailed: 'MCP サーバーの読み込みに失敗しました',
|
||||
reloadAll: 'すべて再読み込み',
|
||||
refresh: '更新',
|
||||
total: '合計',
|
||||
connected: '接続済み',
|
||||
disconnected: '未接続',
|
||||
tools: 'ツール',
|
||||
tool: 'ツール',
|
||||
searchPlaceholder: 'サーバーを検索...',
|
||||
addServer: '+ サーバーを追加',
|
||||
zeroTools: '0 個のツール',
|
||||
loading: '読み込み中...',
|
||||
empty: 'MCP サーバーが設定されていません',
|
||||
reloaded: '{server} を再読み込みしました',
|
||||
reloadedAll: 'すべての MCP サーバーを再読み込みしました',
|
||||
reloadFailed: '再読み込みに失敗しました',
|
||||
serverAdded: 'サーバー "{name}" を追加しました',
|
||||
addFailed: 'サーバーの追加に失敗しました',
|
||||
serverUpdated: 'サーバー "{name}" を更新しました',
|
||||
updateFailed: 'サーバーの更新に失敗しました',
|
||||
saveFailed: '保存に失敗しました',
|
||||
serverRemoved: '"{name}" を削除しました',
|
||||
enabled: "有効化: {name}",
|
||||
disabled: "無効化: {name}",
|
||||
connectedStatus: '接続済み',
|
||||
disconnectedStatus: '未接続',
|
||||
disabledStatus: '無効',
|
||||
toolList: 'ツール一覧',
|
||||
count: ' ',
|
||||
more: '件',
|
||||
removeFailed: 'サーバーの削除に失敗しました',
|
||||
testOk: 'テスト成功 — {count} 個のツールが利用可能',
|
||||
testEmpty: 'テスト結果にツールがありません',
|
||||
testFailed: 'テストに失敗しました',
|
||||
edit: '編集',
|
||||
test: 'テスト',
|
||||
reload: '再読み込み',
|
||||
remove: '削除',
|
||||
confirmRemove: 'サーバー "{name}" を削除しますか?',
|
||||
cancel: 'キャンセル',
|
||||
add: '追加',
|
||||
save: '保存',
|
||||
addTitle: 'MCP サーバーを追加',
|
||||
editTitle: 'MCP サーバーを編集',
|
||||
invalidJson: 'JSON形式エラー',
|
||||
invalidYaml: 'YAML 形式が無効です',
|
||||
invalidConfig: '設定形式が無効です',
|
||||
invalidServerConfig: 'サーバー設定が無効です',
|
||||
missingCommandOrUrl: 'command または url が必要です',
|
||||
},
|
||||
|
||||
sidebar: {
|
||||
chat: 'チャット',
|
||||
search: '検索',
|
||||
@@ -115,6 +169,7 @@ export default {
|
||||
models: 'モデル',
|
||||
profiles: 'プロファイル',
|
||||
plugins: 'プラグイン',
|
||||
mcp: 'MCP',
|
||||
skills: 'スキル',
|
||||
memory: 'メモリ',
|
||||
logs: 'ログ',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: 'アイドル時にコンテキスト圧縮を実行',
|
||||
steer: '実行中の Bridge に誘導テキストを送信',
|
||||
destroy: 'このセッションの Bridge Agent を解放',
|
||||
reloadMcp: 'MCP サーバーを再読み込み',
|
||||
},
|
||||
attachFiles: 'ファイルを添付',
|
||||
showToolCalls: 'ツール呼び出しを表示',
|
||||
|
||||
@@ -106,6 +106,60 @@ export default {
|
||||
},
|
||||
|
||||
// 사이드바
|
||||
// MCP 관리
|
||||
mcp: {
|
||||
title: 'MCP 서버',
|
||||
loadFailed: 'MCP 서버를 불러오지 못했습니다',
|
||||
reloadAll: '모두 다시 로드',
|
||||
refresh: '새로고침',
|
||||
total: '합계',
|
||||
connected: '연결됨',
|
||||
disconnected: '연결 끊김',
|
||||
tools: '도구',
|
||||
tool: '도구',
|
||||
searchPlaceholder: '서버 검색...',
|
||||
addServer: '+ 서버 추가',
|
||||
zeroTools: '0개 도구',
|
||||
loading: '로딩...',
|
||||
empty: 'MCP 서버가 설정되지 않았습니다',
|
||||
reloaded: '{server} 다시 로드됨',
|
||||
reloadedAll: '모든 MCP 서버가 다시 로드되었습니다',
|
||||
reloadFailed: '다시 로드 실패',
|
||||
serverAdded: '서버 "{name}" 추가됨',
|
||||
addFailed: '서버 추가 실패',
|
||||
serverUpdated: '서버 "{name}" 업데이트됨',
|
||||
updateFailed: '서버 업데이트 실패',
|
||||
saveFailed: '저장 실패',
|
||||
serverRemoved: '"{name}" 제거됨',
|
||||
enabled: "{name} 활성화됨",
|
||||
disabled: "{name} 비활성화됨",
|
||||
connectedStatus: '연결됨',
|
||||
disconnectedStatus: '연결 끊김',
|
||||
disabledStatus: '비활성화됨',
|
||||
toolList: '도구 목록',
|
||||
count: ' ',
|
||||
more: '개 더보기',
|
||||
removeFailed: '서버 제거 실패',
|
||||
testOk: '테스트 성공 — {count}개 도구 사용 가능',
|
||||
testEmpty: '테스트에서 도구가 반환되지 않았습니다',
|
||||
testFailed: '테스트 실패',
|
||||
edit: '편집',
|
||||
test: '테스트',
|
||||
reload: '다시 로드',
|
||||
remove: '제거',
|
||||
confirmRemove: '서버 "{name}"을(를) 제거하시겠습니까?',
|
||||
cancel: '취소',
|
||||
add: '추가',
|
||||
save: '저장',
|
||||
addTitle: 'MCP 서버 추가',
|
||||
editTitle: 'MCP 서버 편집',
|
||||
invalidJson: 'JSON 형식 오류',
|
||||
invalidYaml: 'YAML 형식이 올바르지 않습니다',
|
||||
invalidConfig: '올바르지 않은 설정',
|
||||
invalidServerConfig: '서버 설정이 올바르지 않습니다',
|
||||
missingCommandOrUrl: 'command 또는 url이 필요합니다',
|
||||
},
|
||||
|
||||
sidebar: {
|
||||
chat: '채팅',
|
||||
search: '검색',
|
||||
@@ -115,6 +169,7 @@ export default {
|
||||
models: '모델',
|
||||
profiles: '프로필',
|
||||
plugins: '플러그인',
|
||||
mcp: 'MCP',
|
||||
skills: '스킬',
|
||||
memory: '메모리',
|
||||
logs: '로그',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: '유휴 상태에서 컨텍스트 압축 실행',
|
||||
steer: '활성 Bridge 실행에 지시 텍스트 보내기',
|
||||
destroy: '이 세션의 Bridge Agent 해제',
|
||||
reloadMcp: 'MCP 서버 다시 로드',
|
||||
},
|
||||
attachFiles: '파일 첨부',
|
||||
showToolCalls: '도구 호출 표시',
|
||||
|
||||
@@ -105,6 +105,60 @@ export default {
|
||||
expired: 'Expirado',
|
||||
},
|
||||
|
||||
// Gestao de MCP
|
||||
mcp: {
|
||||
title: 'Servidores MCP',
|
||||
loadFailed: 'Falha ao carregar servidores MCP',
|
||||
reloadAll: 'Recarregar todos',
|
||||
refresh: 'Atualizar',
|
||||
total: 'Total',
|
||||
connected: 'Conectado',
|
||||
disconnected: 'Desconectado',
|
||||
tools: 'ferramentas',
|
||||
tool: 'Ferramentas',
|
||||
searchPlaceholder: 'Pesquisar servidores...',
|
||||
addServer: '+ Adicionar servidor',
|
||||
zeroTools: '0 ferramentas',
|
||||
loading: 'Carregando...',
|
||||
empty: 'Nenhum servidor MCP configurado',
|
||||
reloaded: '{server} recarregado',
|
||||
reloadedAll: 'Todos os servidores MCP recarregados',
|
||||
reloadFailed: 'Falha ao recarregar',
|
||||
serverAdded: 'Servidor "{name}" adicionado',
|
||||
addFailed: 'Falha ao adicionar servidor',
|
||||
serverUpdated: 'Servidor "{name}" atualizado',
|
||||
updateFailed: 'Falha ao atualizar servidor',
|
||||
saveFailed: 'Falha ao salvar',
|
||||
serverRemoved: '"{name}" removido',
|
||||
enabled: "Habilitado: {name}",
|
||||
disabled: "Desabilitado: {name}",
|
||||
connectedStatus: 'Conectado',
|
||||
disconnectedStatus: 'Desconectado',
|
||||
disabledStatus: 'Desativado',
|
||||
toolList: 'Lista de ferramentas',
|
||||
count: ' ',
|
||||
more: 'mais',
|
||||
removeFailed: 'Falha ao remover servidor',
|
||||
testOk: 'Teste OK — {count} ferramentas disponiveis',
|
||||
testEmpty: 'O teste nao retornou ferramentas',
|
||||
testFailed: 'Falha no teste',
|
||||
edit: 'Editar',
|
||||
test: 'Testar',
|
||||
reload: 'Recarregar',
|
||||
remove: 'Remover',
|
||||
confirmRemove: 'Remover servidor "{name}"?',
|
||||
cancel: 'Cancelar',
|
||||
add: 'Adicionar',
|
||||
save: 'Salvar',
|
||||
addTitle: 'Adicionar servidor MCP',
|
||||
editTitle: 'Editar servidor MCP',
|
||||
invalidJson: 'JSON inválido',
|
||||
invalidYaml: 'Formato YAML inválido',
|
||||
invalidConfig: 'Configuração inválida',
|
||||
invalidServerConfig: 'Configuração do servidor inválida',
|
||||
missingCommandOrUrl: 'Deve conter command ou url',
|
||||
},
|
||||
|
||||
// Sidebar
|
||||
sidebar: {
|
||||
chat: 'Chat',
|
||||
@@ -115,6 +169,7 @@ export default {
|
||||
models: 'Modelos',
|
||||
profiles: 'Perfis',
|
||||
plugins: 'Plugins',
|
||||
mcp: 'MCP',
|
||||
skills: 'Habilidades',
|
||||
memory: 'Memoria',
|
||||
logs: 'Logs',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: 'Executar compressão de contexto quando ocioso',
|
||||
steer: 'Enviar texto de orientação para a execução ativa do Bridge',
|
||||
destroy: 'Liberar o Bridge Agent desta sessão',
|
||||
reloadMcp: 'Recarregar servidores MCP',
|
||||
},
|
||||
attachFiles: 'Anexar arquivos',
|
||||
showToolCalls: 'Mostrar chamadas de ferramentas',
|
||||
|
||||
@@ -106,6 +106,60 @@ export default {
|
||||
},
|
||||
|
||||
// 側邊欄
|
||||
// MCP 管理
|
||||
mcp: {
|
||||
title: 'MCP 伺服器',
|
||||
loadFailed: '載入 MCP 伺服器失敗',
|
||||
reloadAll: '全部重載',
|
||||
refresh: '重新整理',
|
||||
total: '總計',
|
||||
connected: '已連線',
|
||||
disconnected: '未連線',
|
||||
tools: '工具',
|
||||
tool: '工具',
|
||||
searchPlaceholder: '搜尋伺服器...',
|
||||
addServer: '+ 新增伺服器',
|
||||
zeroTools: '0 個工具',
|
||||
loading: '載入中...',
|
||||
empty: '暫無 MCP 伺服器設定',
|
||||
reloaded: '已重載 {server}',
|
||||
reloadedAll: '所有 MCP 伺服器已重載',
|
||||
reloadFailed: '重載失敗',
|
||||
serverAdded: '伺服器 "{name}" 已新增',
|
||||
addFailed: '新增伺服器失敗',
|
||||
serverUpdated: '伺服器 "{name}" 已更新',
|
||||
updateFailed: '更新伺服器失敗',
|
||||
saveFailed: '儲存失敗',
|
||||
serverRemoved: '已移除 "{name}"',
|
||||
enabled: "已啟用 {name}",
|
||||
disabled: "已禁用 {name}",
|
||||
connectedStatus: '已連線',
|
||||
disconnectedStatus: '未連線',
|
||||
disabledStatus: '已停用',
|
||||
toolList: '工具列表',
|
||||
count: '個',
|
||||
more: '更多',
|
||||
removeFailed: '移除伺服器失敗',
|
||||
testOk: '測試成功 — {count} 個工具可用',
|
||||
testEmpty: '測試未回傳工具',
|
||||
testFailed: '測試失敗',
|
||||
edit: '編輯',
|
||||
test: '測試',
|
||||
reload: '重載',
|
||||
remove: '移除',
|
||||
confirmRemove: '確認刪除伺服器 "{name}"?',
|
||||
cancel: '取消',
|
||||
add: '新增',
|
||||
save: '儲存',
|
||||
addTitle: '新增 MCP 伺服器',
|
||||
editTitle: '編輯 MCP 伺服器',
|
||||
invalidJson: 'JSON 格式錯誤',
|
||||
invalidYaml: 'YAML 格式錯誤',
|
||||
invalidConfig: '配置格式錯誤',
|
||||
invalidServerConfig: '伺服器配置無效',
|
||||
missingCommandOrUrl: '必須包含 command 或 url',
|
||||
},
|
||||
|
||||
sidebar: {
|
||||
chat: '對話',
|
||||
search: '搜尋',
|
||||
@@ -116,6 +170,7 @@ export default {
|
||||
models: '模型',
|
||||
profiles: '使用者',
|
||||
plugins: '插件',
|
||||
mcp: 'MCP',
|
||||
skills: '技能',
|
||||
memory: '記憶',
|
||||
logs: '日誌',
|
||||
@@ -235,6 +290,7 @@ export default {
|
||||
compress: '空閒時觸發上下文壓縮',
|
||||
steer: '向目前 Bridge 執行傳送引導文字',
|
||||
destroy: '釋放目前會話的 Bridge Agent',
|
||||
reloadMcp: '重載 MCP 伺服器',
|
||||
},
|
||||
attachFiles: '新增附件',
|
||||
autoPlaySpeech: '自動播放語音',
|
||||
|
||||
@@ -106,6 +106,60 @@ export default {
|
||||
},
|
||||
|
||||
// 侧边栏
|
||||
// MCP 管理
|
||||
mcp: {
|
||||
title: 'MCP 服务器',
|
||||
loadFailed: '加载 MCP 服务器失败',
|
||||
reloadAll: '全部重载',
|
||||
refresh: '刷新',
|
||||
total: '总计',
|
||||
connected: '已连接',
|
||||
disconnected: '未连接',
|
||||
tools: '工具',
|
||||
tool: '工具',
|
||||
searchPlaceholder: '搜索服务器...',
|
||||
addServer: '+ 添加服务器',
|
||||
zeroTools: '0 个工具',
|
||||
loading: '加载中...',
|
||||
empty: '暂无 MCP 服务器配置',
|
||||
reloaded: '已重载 {server}',
|
||||
reloadedAll: '所有 MCP 服务器已重载',
|
||||
reloadFailed: '重载失败',
|
||||
serverAdded: '服务器 "{name}" 已添加',
|
||||
addFailed: '添加服务器失败',
|
||||
serverUpdated: '服务器 "{name}" 已更新',
|
||||
updateFailed: '更新服务器失败',
|
||||
saveFailed: '保存失败',
|
||||
serverRemoved: '已移除 "{name}"',
|
||||
enabled: "已启用 {name}",
|
||||
disabled: "已禁用 {name}",
|
||||
connectedStatus: '已连接',
|
||||
disconnectedStatus: '未连接',
|
||||
disabledStatus: '已禁用',
|
||||
toolList: '工具列表',
|
||||
count: '个',
|
||||
more: '更多',
|
||||
removeFailed: '移除服务器失败',
|
||||
testOk: '测试成功 — {count} 个工具可用',
|
||||
testEmpty: '测试未返回工具',
|
||||
testFailed: '测试失败',
|
||||
edit: '编辑',
|
||||
test: '测试',
|
||||
reload: '重载',
|
||||
remove: '移除',
|
||||
confirmRemove: '确认删除服务器 "{name}"?',
|
||||
cancel: '取消',
|
||||
add: '添加',
|
||||
save: '保存',
|
||||
addTitle: '添加 MCP 服务器',
|
||||
editTitle: '编辑 MCP 服务器',
|
||||
invalidJson: 'JSON 格式错误',
|
||||
invalidYaml: 'YAML 格式错误',
|
||||
invalidConfig: '配置格式错误',
|
||||
invalidServerConfig: '服务器配置无效',
|
||||
missingCommandOrUrl: '必须包含 command 或 url',
|
||||
},
|
||||
|
||||
sidebar: {
|
||||
chat: '对话',
|
||||
search: '搜索',
|
||||
@@ -116,6 +170,7 @@ export default {
|
||||
models: '模型',
|
||||
profiles: '用户',
|
||||
plugins: '插件',
|
||||
mcp: 'MCP',
|
||||
skills: '技能',
|
||||
memory: '记忆',
|
||||
logs: '日志',
|
||||
@@ -236,6 +291,7 @@ export default {
|
||||
compress: '空闲时触发上下文压缩',
|
||||
steer: '向当前 Bridge 运行发送引导文本',
|
||||
destroy: '释放当前会话的 Bridge Agent',
|
||||
reloadMcp: '重载 MCP 服务器',
|
||||
},
|
||||
attachFiles: '添加附件',
|
||||
autoPlaySpeech: '自动播放语音',
|
||||
|
||||
@@ -37,7 +37,7 @@ const rawMessages: Record<string, LocaleMessages> = { en, zh, 'zh-TW': zhTW, ja,
|
||||
|
||||
export const messages: Record<string, LocaleMessages> = {}
|
||||
for (const [locale, msg] of Object.entries(rawMessages)) {
|
||||
messages[locale] = locale === 'en' ? msg : mergeMessagesWithFallback(en, msg)
|
||||
messages[locale] = locale === 'en' ? msg : mergeMessagesWithFallback({ ...en }, { ...msg })
|
||||
}
|
||||
|
||||
export { en }
|
||||
|
||||
Reference in New Issue
Block a user