feat(chat): work-status panel, and MCP auth and settings fixes (#2776)
Adds a work-status panel beside the transcript. Context fill, model and cost, todos, running subagents and the permission requests blocking them, branch and working-tree state, MCP servers, pinned messages and context sources were scattered across the header, the composer and the context panel — a blocked subagent was reported nowhere at all. The panel reads them from live channels rather than persisted history, and becomes an overlay where the chat is too narrow to seat a column. It is on by default, including for existing installs. Because it now carries these readouts, the desktop header and composer drop the ones it duplicates: todo and changed-files chips, usage and MCP tabs. VS Code and mobile keep theirs — neither hosts the panel. Fixes MCP authorization, which was broken from the panel, invalidated by a directory switch through a redirect URI that encoded the working directory, and left the desktop app in the background because browsers will not follow a custom-protocol link without a user gesture. The settings page no longer asks the user to understand the MCP spec before adding a server: one field takes the command or the link, with the kind inferred and a visible override, and client-registration fields appear only when a server actually asks for its own credentials. Also: skills load from the panel instead of only when the composer's slash autocomplete opens; the header button names the current instance rather than falling through to the word "Instance" for relay hosts. Three new optional UI settings keys, all migrated. No change to stored MCP server configuration.
This commit is contained in:
@@ -1392,8 +1392,6 @@ export const dict = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': 'Instanz öffnen, Nutzung und MCP (aktuell: {current})',
|
||||
'header.services.open': 'Dienste öffnen, Nutzung und MCP',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': 'Aktuelle Instanz: {current} ({toggle}; nächster Tab {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': 'Dienste ({toggle}; nächster Tab {nextTab})',
|
||||
'header.services.title': 'Dienste',
|
||||
'header.services.viewAria': 'Dienste anzeigen',
|
||||
'header.services.closeAria': 'Dienste schließen',
|
||||
@@ -1410,7 +1408,6 @@ export const dict = {
|
||||
'header.services.used': 'Verwendet',
|
||||
'header.services.remaining': 'Verbleibend',
|
||||
'header.services.modelFamily.other': 'Andere',
|
||||
'header.services.shutdownDev': 'OpenChamber stoppen',
|
||||
'header.actions.openPlanAria': 'Plan öffnen',
|
||||
'header.actions.toggleChangesPanel': 'Änderungspanel',
|
||||
'header.actions.toggleChangesPanelAria': 'Änderungspanel umschalten',
|
||||
@@ -2940,4 +2937,93 @@ export const dict = {
|
||||
'onboarding.localSetup.actions.checkAndContinue': 'Installation abgeschlossen, prüfen und fortfahren',
|
||||
'onboarding.localSetup.status.autoContinue': 'Wir fahren automatisch fort, sobald die Installation erkannt wurde.',
|
||||
'updateDialog.changelog.title': 'Neuigkeiten',
|
||||
'chat.workStatus.ariaLabel': 'Arbeitsstatus',
|
||||
'chat.workStatus.context.label': 'Kontext',
|
||||
'chat.workStatus.git.changedFileSingle': '{count} Datei geändert',
|
||||
'chat.workStatus.git.changedFilePlural': '{count} Dateien geändert',
|
||||
'chat.workStatus.pr.untitled': 'Pull Request ohne Titel',
|
||||
'chat.workStatus.pr.draft': 'Entwurf',
|
||||
'chat.workStatus.pr.checks': 'Prüfungen',
|
||||
'chat.workStatus.pr.checksFailed': '{count} fehlgeschlagen',
|
||||
'chat.workStatus.pr.checksPending': '{count} laufen',
|
||||
'chat.workStatus.pr.checksPassed': '{count} bestanden',
|
||||
'chat.workStatus.attention.merge': 'Merge läuft',
|
||||
'chat.workStatus.attention.rebase': 'Rebase läuft',
|
||||
'chat.workStatus.attention.cherryPick': 'Cherry-Pick läuft',
|
||||
'chat.workStatus.attention.revert': 'Revert läuft',
|
||||
'chat.workStatus.attention.bisect': 'Bisect läuft',
|
||||
'chat.workStatus.subagent.done': 'Fertig',
|
||||
'chat.workStatus.subagent.untitled': 'Subagent',
|
||||
'chat.workStatus.mcp.toggle': '{name} umschalten',
|
||||
'chat.workStatus.mcp.needsAuth': 'Anmelden',
|
||||
'chat.workStatus.mcp.failed': 'Fehlgeschlagen',
|
||||
'chat.workStatus.pinned.unavailable': 'Angeheftete Nachricht',
|
||||
'chat.workStatus.section.session': 'Sitzung',
|
||||
'chat.workStatus.section.repository': 'Repository',
|
||||
'chat.workStatus.section.subagents': 'Subagenten',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Angeheftete Nachrichten',
|
||||
'chat.workStatus.section.tasks': 'Aufgaben',
|
||||
'chat.workStatus.subagent.working': 'arbeitet',
|
||||
'chat.workStatus.subagent.needsPermission': 'braucht Berechtigung',
|
||||
'chat.workStatus.subagent.askedQuestion': 'hat gefragt',
|
||||
'chat.workStatus.section.contextBreakdown': 'Kontextquellen',
|
||||
'chat.workStatus.breakdown.skills': 'Skills',
|
||||
'chat.workStatus.breakdown.mcp': 'MCP-Server',
|
||||
'chat.workStatus.action.openChanges': 'Änderungen öffnen',
|
||||
'chat.workStatus.action.openGit': 'Git-Panel öffnen',
|
||||
'chat.workStatus.action.openPr': 'Pull Request öffnen',
|
||||
'chat.workStatus.action.openSubagent': '{name} öffnen',
|
||||
'chat.workStatus.section.usage': 'Nutzung',
|
||||
'chat.workStatus.goal.open': 'Ziel verwalten',
|
||||
'chat.workStatus.goal.pause': 'Pausieren',
|
||||
'chat.workStatus.goal.resume': 'Fortsetzen',
|
||||
'chat.workStatus.goal.updateFailed': 'Ziel konnte nicht aktualisiert werden',
|
||||
'chat.workStatus.pinned.unpin': 'Nachricht lösen',
|
||||
'chat.workStatus.pinned.reveal': 'Zur Nachricht',
|
||||
'chat.workStatus.pinned.unpinFailed': 'Nachricht konnte nicht gelöst werden',
|
||||
'chat.workStatus.action.openContext': 'Kontextpanel öffnen',
|
||||
'chat.workStatus.section.linkedIssues': 'Verknüpft',
|
||||
'chat.workStatus.linkedIssues.open': '#{number} auf GitHub öffnen',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Verknüpfung entfernen',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'Verknüpfung konnte nicht entfernt werden',
|
||||
'chat.workStatus.linkedIssues.link': 'Mit Sitzung verknüpfen',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'Verknüpfen fehlgeschlagen',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} Issue',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} Issues',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PRs',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} Skill',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} Skills',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Abschnitte wählen',
|
||||
'chat.workStatus.sections.dialogTitle': 'Panel-Abschnitte',
|
||||
'chat.workStatus.sections.dialogDescription': 'Wähle, was das Arbeitsstatus-Panel zeigt. Ausgeblendete Abschnitte behalten ihre Daten und werden nur nicht angezeigt.',
|
||||
'header.workStatusPanel.toggleAria': 'Arbeitsstatus-Panel umschalten',
|
||||
'header.workStatusPanel.hide': 'Arbeitsstatus ausblenden',
|
||||
'header.workStatusPanel.show': 'Arbeitsstatus anzeigen',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'Autorisierungsseite konnte nicht geöffnet werden',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Autorisierung fehlgeschlagen',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'Autorisierungsseite konnte nicht geöffnet werden',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Autorisierung fehlgeschlagen',
|
||||
'header.services.tooltip.currentInstance': 'Aktuelle Instanz: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Arbeitsstatus über dem Chat anzeigen',
|
||||
'settings.mcp.page.connection.title': 'Wie erreichbar',
|
||||
'settings.mcp.page.connection.description': 'Füge den Startbefehl ein oder den Link zu einem gehosteten Server.',
|
||||
'settings.mcp.page.registration.title': 'Dieser Server braucht eine eigene App',
|
||||
'settings.mcp.page.registration.description': 'Er vergibt Zugangsdaten nicht automatisch. Lege in den Einstellungen des Dienstes eine App an, füge ihre Daten hier ein und melde dich an.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Gib dem Dienst diese Adresse',
|
||||
'settings.mcp.page.registration.clientId': 'App-ID',
|
||||
'settings.mcp.page.registration.clientSecret': 'App-Secret',
|
||||
'settings.mcp.page.registration.afterSaving': 'Speichern, dann auf Autorisieren drücken.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Adresse kopiert',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'Kopieren in die Zwischenablage fehlgeschlagen',
|
||||
'settings.mcp.page.scope.everywhere': 'In allen Projekten verfügbar',
|
||||
'settings.mcp.page.scope.thisProject': 'Nur in diesem Projekt',
|
||||
'settings.mcp.page.env.description': 'Werte, die der Server braucht, etwa einen API-Schlüssel.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Befehl',
|
||||
'settings.mcp.page.connection.kindLink': 'Link',
|
||||
'settings.mcp.page.connection.hintCommand': 'Läuft auf diesem Rechner. Fügen Sie einen ganzen Befehl ein — er wird in ein Argument pro Zeile zerlegt.',
|
||||
'settings.mcp.page.connection.hintLink': 'Verbindet sich mit einem fremd gehosteten Server. Fügen Sie dessen https-Adresse ein.',
|
||||
};
|
||||
|
||||
@@ -1545,8 +1545,6 @@ export const dict = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': 'Open instance, usage and MCP (current: {current})',
|
||||
'header.services.open': 'Open services, usage and MCP',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': 'Current instance: {current} ({toggle}; next tab {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': 'Services ({toggle}; next tab {nextTab})',
|
||||
'header.services.title': 'Services',
|
||||
'header.services.viewAria': 'View services',
|
||||
'header.services.closeAria': 'Close services',
|
||||
@@ -1563,7 +1561,6 @@ export const dict = {
|
||||
'header.services.used': 'Used',
|
||||
'header.services.remaining': 'Remaining',
|
||||
'header.services.modelFamily.other': 'Other',
|
||||
'header.services.shutdownDev': 'Stop OpenChamber',
|
||||
'header.actions.openPlanAria': 'Open plan',
|
||||
'header.actions.toggleChangesPanel': 'Changes panel',
|
||||
'header.actions.toggleChangesPanelAria': 'Toggle changes panel',
|
||||
@@ -2942,6 +2939,95 @@ export const dict = {
|
||||
'quota.window.chat': 'Chat Requests',
|
||||
'quota.window.completions': 'Completions',
|
||||
'quota.window.premiumInteractions': 'Premium interactions',
|
||||
'chat.workStatus.ariaLabel': 'Work status',
|
||||
'chat.workStatus.context.label': 'Context',
|
||||
'chat.workStatus.git.changedFileSingle': '{count} file changed',
|
||||
'chat.workStatus.git.changedFilePlural': '{count} files changed',
|
||||
'chat.workStatus.pr.untitled': 'Untitled pull request',
|
||||
'chat.workStatus.pr.draft': 'Draft',
|
||||
'chat.workStatus.pr.checks': 'Checks',
|
||||
'chat.workStatus.pr.checksFailed': '{count} failed',
|
||||
'chat.workStatus.pr.checksPending': '{count} running',
|
||||
'chat.workStatus.pr.checksPassed': '{count} passed',
|
||||
'chat.workStatus.attention.merge': 'Merge in progress',
|
||||
'chat.workStatus.attention.rebase': 'Rebase in progress',
|
||||
'chat.workStatus.attention.cherryPick': 'Cherry-pick in progress',
|
||||
'chat.workStatus.attention.revert': 'Revert in progress',
|
||||
'chat.workStatus.attention.bisect': 'Bisect in progress',
|
||||
'chat.workStatus.subagent.done': 'Done',
|
||||
'chat.workStatus.subagent.untitled': 'Subagent',
|
||||
'chat.workStatus.mcp.toggle': 'Toggle {name}',
|
||||
'chat.workStatus.mcp.needsAuth': 'Sign in',
|
||||
'chat.workStatus.mcp.failed': 'Failed',
|
||||
'chat.workStatus.pinned.unavailable': 'Pinned message',
|
||||
'chat.workStatus.section.session': 'Session',
|
||||
'chat.workStatus.section.repository': 'Repository',
|
||||
'chat.workStatus.section.subagents': 'Subagents',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Pinned messages',
|
||||
'chat.workStatus.section.tasks': 'Tasks',
|
||||
'chat.workStatus.subagent.working': 'is working',
|
||||
'chat.workStatus.subagent.needsPermission': 'needs permission',
|
||||
'chat.workStatus.subagent.askedQuestion': 'asked a question',
|
||||
'chat.workStatus.section.contextBreakdown': 'Context sources',
|
||||
'chat.workStatus.breakdown.skills': 'Skills',
|
||||
'chat.workStatus.breakdown.mcp': 'MCP servers',
|
||||
'chat.workStatus.action.openChanges': 'Open changes',
|
||||
'chat.workStatus.action.openGit': 'Open Git panel',
|
||||
'chat.workStatus.action.openPr': 'Open pull request',
|
||||
'chat.workStatus.action.openSubagent': 'Open {name}',
|
||||
'chat.workStatus.section.usage': 'Usage',
|
||||
'chat.workStatus.goal.open': 'Manage goal',
|
||||
'chat.workStatus.goal.pause': 'Pause',
|
||||
'chat.workStatus.goal.resume': 'Resume',
|
||||
'chat.workStatus.goal.updateFailed': 'Could not update the goal',
|
||||
'chat.workStatus.pinned.unpin': 'Unpin message',
|
||||
'chat.workStatus.pinned.reveal': 'Go to message',
|
||||
'chat.workStatus.pinned.unpinFailed': 'Could not unpin the message',
|
||||
'chat.workStatus.action.openContext': 'Open context panel',
|
||||
'chat.workStatus.section.linkedIssues': 'Linked',
|
||||
'chat.workStatus.linkedIssues.open': 'Open #{number} on GitHub',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Remove link',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'Could not remove the link',
|
||||
'chat.workStatus.linkedIssues.link': 'Link to session',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'Could not link',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} issue',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} issues',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PRs',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} skill',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} skills',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Choose sections',
|
||||
'chat.workStatus.sections.dialogTitle': 'Panel sections',
|
||||
'chat.workStatus.sections.dialogDescription': 'Choose what the work-status panel shows. Hidden sections keep their data — they are only left out of the panel.',
|
||||
'header.workStatusPanel.toggleAria': 'Toggle work-status panel',
|
||||
'header.workStatusPanel.hide': 'Hide work status',
|
||||
'header.workStatusPanel.show': 'Show work status',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'Could not open the authorization page',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Authorization failed',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'Could not open the authorization page',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Authorization failed',
|
||||
'header.services.tooltip.currentInstance': 'Current instance: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Show work status over the chat',
|
||||
'settings.mcp.page.connection.title': 'How to reach it',
|
||||
'settings.mcp.page.connection.description': 'Paste the command that starts it, or the link to a hosted server.',
|
||||
'settings.mcp.page.registration.title': 'This server needs its own app',
|
||||
'settings.mcp.page.registration.description': 'It does not hand out credentials automatically. Create an app in the service’s own settings, paste its details here, then sign in.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Give the service this address',
|
||||
'settings.mcp.page.registration.clientId': 'App ID',
|
||||
'settings.mcp.page.registration.clientSecret': 'App secret',
|
||||
'settings.mcp.page.registration.afterSaving': 'Save, then press Authorize to sign in.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Address copied',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'Could not copy to the clipboard',
|
||||
'settings.mcp.page.scope.everywhere': 'Available in every project',
|
||||
'settings.mcp.page.scope.thisProject': 'Only in this project',
|
||||
'settings.mcp.page.env.description': 'Values the server needs, such as an API key.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Command',
|
||||
'settings.mcp.page.connection.kindLink': 'Link',
|
||||
'settings.mcp.page.connection.hintCommand': 'Runs on this machine. Paste a whole command and it is split into one argument per line.',
|
||||
'settings.mcp.page.connection.hintLink': 'Connects to a server someone else hosts. Paste its https address.',
|
||||
} as const;
|
||||
|
||||
export type I18nKey = keyof typeof dict;
|
||||
|
||||
@@ -1523,8 +1523,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.github.accountSource.cli": "CLI",
|
||||
"header.services.openWithCurrent": "Abrir instancia, uso y MCP (actual: {current})",
|
||||
"header.services.open": "Abrir servicios, uso y MCP",
|
||||
"header.services.tooltip.currentInstanceWithShortcuts": "Instancia actual: {current} ({toggle}; siguiente pestaña {nextTab})",
|
||||
"header.services.tooltip.servicesWithShortcuts": "Servicios ({toggle}; siguiente pestaña {nextTab})",
|
||||
"header.services.title": "Servicios",
|
||||
"header.services.viewAria": "Ver servicios",
|
||||
"header.services.closeAria": "Cerrar servicios",
|
||||
@@ -1541,7 +1539,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.services.used": "Usado",
|
||||
"header.services.remaining": "Restante",
|
||||
"header.services.modelFamily.other": "Otro",
|
||||
"header.services.shutdownDev": "Detener OpenChamber",
|
||||
"header.actions.openPlanAria": "Abrir plan",
|
||||
"header.actions.toggleChangesPanel": "Panel de cambios",
|
||||
"header.actions.toggleChangesPanelAria": "Alternar panel de cambios",
|
||||
@@ -2943,4 +2940,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
"quota.window.chat": "Chat Requests",
|
||||
"quota.window.completions": "Completions",
|
||||
"quota.window.premiumInteractions": "Premium interactions",
|
||||
'chat.workStatus.ariaLabel': 'Estado del trabajo',
|
||||
'chat.workStatus.context.label': 'Contexto',
|
||||
'chat.workStatus.git.changedFileSingle': '{count} archivo modificado',
|
||||
'chat.workStatus.git.changedFilePlural': '{count} archivos modificados',
|
||||
'chat.workStatus.pr.untitled': 'Pull request sin título',
|
||||
'chat.workStatus.pr.draft': 'Borrador',
|
||||
'chat.workStatus.pr.checks': 'Comprobaciones',
|
||||
'chat.workStatus.pr.checksFailed': '{count} fallaron',
|
||||
'chat.workStatus.pr.checksPending': '{count} en curso',
|
||||
'chat.workStatus.pr.checksPassed': '{count} correctas',
|
||||
'chat.workStatus.attention.merge': 'Fusión en curso',
|
||||
'chat.workStatus.attention.rebase': 'Rebase en curso',
|
||||
'chat.workStatus.attention.cherryPick': 'Cherry-pick en curso',
|
||||
'chat.workStatus.attention.revert': 'Reversión en curso',
|
||||
'chat.workStatus.attention.bisect': 'Bisect en curso',
|
||||
'chat.workStatus.subagent.done': 'Listo',
|
||||
'chat.workStatus.subagent.untitled': 'Subagente',
|
||||
'chat.workStatus.mcp.toggle': 'Alternar {name}',
|
||||
'chat.workStatus.mcp.needsAuth': 'Iniciar sesión',
|
||||
'chat.workStatus.mcp.failed': 'Falló',
|
||||
'chat.workStatus.pinned.unavailable': 'Mensaje fijado',
|
||||
'chat.workStatus.section.session': 'Sesión',
|
||||
'chat.workStatus.section.repository': 'Repositorio',
|
||||
'chat.workStatus.section.subagents': 'Subagentes',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Mensajes fijados',
|
||||
'chat.workStatus.section.tasks': 'Tareas',
|
||||
'chat.workStatus.subagent.working': 'está trabajando',
|
||||
'chat.workStatus.subagent.needsPermission': 'necesita permiso',
|
||||
'chat.workStatus.subagent.askedQuestion': 'hizo una pregunta',
|
||||
'chat.workStatus.section.contextBreakdown': 'Fuentes de contexto',
|
||||
'chat.workStatus.breakdown.skills': 'Habilidades',
|
||||
'chat.workStatus.breakdown.mcp': 'Servidores MCP',
|
||||
'chat.workStatus.action.openChanges': 'Abrir cambios',
|
||||
'chat.workStatus.action.openGit': 'Abrir panel de Git',
|
||||
'chat.workStatus.action.openPr': 'Abrir pull request',
|
||||
'chat.workStatus.action.openSubagent': 'Abrir {name}',
|
||||
'chat.workStatus.section.usage': 'Uso',
|
||||
'chat.workStatus.goal.open': 'Gestionar objetivo',
|
||||
'chat.workStatus.goal.pause': 'Pausar',
|
||||
'chat.workStatus.goal.resume': 'Reanudar',
|
||||
'chat.workStatus.goal.updateFailed': 'No se pudo actualizar el objetivo',
|
||||
'chat.workStatus.pinned.unpin': 'Dejar de fijar',
|
||||
'chat.workStatus.pinned.reveal': 'Ir al mensaje',
|
||||
'chat.workStatus.pinned.unpinFailed': 'No se pudo dejar de fijar el mensaje',
|
||||
'chat.workStatus.action.openContext': 'Abrir panel de contexto',
|
||||
'chat.workStatus.section.linkedIssues': 'Vinculados',
|
||||
'chat.workStatus.linkedIssues.open': 'Abrir #{number} en GitHub',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Quitar vínculo',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'No se pudo quitar el vínculo',
|
||||
'chat.workStatus.linkedIssues.link': 'Vincular a la sesión',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'No se pudo vincular',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} incidencia',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} incidencias',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PR',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} habilidad',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} habilidades',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Elegir secciones',
|
||||
'chat.workStatus.sections.dialogTitle': 'Secciones del panel',
|
||||
'chat.workStatus.sections.dialogDescription': 'Elige qué muestra el panel de estado. Las secciones ocultas conservan sus datos: solo no aparecen en el panel.',
|
||||
'header.workStatusPanel.toggleAria': 'Alternar panel de estado',
|
||||
'header.workStatusPanel.hide': 'Ocultar estado del trabajo',
|
||||
'header.workStatusPanel.show': 'Mostrar estado del trabajo',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'No se pudo abrir la página de autorización',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Error de autorización',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'No se pudo abrir la página de autorización',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Error de autorización',
|
||||
'header.services.tooltip.currentInstance': 'Instancia actual: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Mostrar estado sobre el chat',
|
||||
'settings.mcp.page.connection.title': 'Cómo conectarse',
|
||||
'settings.mcp.page.connection.description': 'Pega el comando que lo inicia o el enlace a un servidor alojado.',
|
||||
'settings.mcp.page.registration.title': 'Este servidor necesita su propia app',
|
||||
'settings.mcp.page.registration.description': 'No entrega credenciales automáticamente. Crea una app en los ajustes del servicio, pega sus datos aquí e inicia sesión.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Da esta dirección al servicio',
|
||||
'settings.mcp.page.registration.clientId': 'ID de la app',
|
||||
'settings.mcp.page.registration.clientSecret': 'Secreto de la app',
|
||||
'settings.mcp.page.registration.afterSaving': 'Guarda y luego pulsa Autorizar.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Dirección copiada',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'No se pudo copiar al portapapeles',
|
||||
'settings.mcp.page.scope.everywhere': 'Disponible en todos los proyectos',
|
||||
'settings.mcp.page.scope.thisProject': 'Solo en este proyecto',
|
||||
'settings.mcp.page.env.description': 'Valores que el servidor necesita, como una clave de API.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Comando',
|
||||
'settings.mcp.page.connection.kindLink': 'Enlace',
|
||||
'settings.mcp.page.connection.hintCommand': 'Se ejecuta en este equipo. Pega un comando completo y se dividirá en un argumento por línea.',
|
||||
'settings.mcp.page.connection.hintLink': 'Se conecta a un servidor alojado por otra persona. Pega su dirección https.',
|
||||
};
|
||||
|
||||
@@ -1364,8 +1364,6 @@ export const dict = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': 'Instance ouverte, utilisation et MCP (actuel : {current})',
|
||||
'header.services.open': 'Services ouverts, utilisation et MCP',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': 'Instance actuelle : {current} ({toggle} ; onglet suivant {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': 'Services ({toggle} ; onglet suivant {nextTab})',
|
||||
'header.services.title': 'Services',
|
||||
'header.services.viewAria': 'Voir les prestations',
|
||||
'header.services.closeAria': 'Fermer les prestations',
|
||||
@@ -1376,7 +1374,6 @@ export const dict = {
|
||||
'header.services.used': 'Utilisé',
|
||||
'header.services.remaining': 'Restant',
|
||||
'header.services.modelFamily.other': 'Autre',
|
||||
'header.services.shutdownDev': 'Arrêter OpenChamber',
|
||||
'header.actions.openPlanAria': 'Plan ouvert',
|
||||
"header.actions.toggleChangesPanel": "Panneau des changements",
|
||||
"header.actions.toggleChangesPanelAria": "Basculer le panneau des changements",
|
||||
@@ -2940,6 +2937,95 @@ export const dict = {
|
||||
'vscodeLayout.actions.archiveAllSuccess': '{count} session(s) archivée(s)',
|
||||
'vscodeLayout.actions.archiveAllError': 'Impossible d’archiver {count} session(s)',
|
||||
'vscodeLayout.actions.cancel': 'Annuler',
|
||||
'chat.workStatus.ariaLabel': 'État du travail',
|
||||
'chat.workStatus.context.label': 'Contexte',
|
||||
'chat.workStatus.git.changedFileSingle': '{count} fichier modifié',
|
||||
'chat.workStatus.git.changedFilePlural': '{count} fichiers modifiés',
|
||||
'chat.workStatus.pr.untitled': 'Pull request sans titre',
|
||||
'chat.workStatus.pr.draft': 'Brouillon',
|
||||
'chat.workStatus.pr.checks': 'Vérifications',
|
||||
'chat.workStatus.pr.checksFailed': '{count} en échec',
|
||||
'chat.workStatus.pr.checksPending': '{count} en cours',
|
||||
'chat.workStatus.pr.checksPassed': '{count} réussies',
|
||||
'chat.workStatus.attention.merge': 'Fusion en cours',
|
||||
'chat.workStatus.attention.rebase': 'Rebase en cours',
|
||||
'chat.workStatus.attention.cherryPick': 'Cherry-pick en cours',
|
||||
'chat.workStatus.attention.revert': 'Revert en cours',
|
||||
'chat.workStatus.attention.bisect': 'Bisect en cours',
|
||||
'chat.workStatus.subagent.done': 'Terminé',
|
||||
'chat.workStatus.subagent.untitled': 'Sous-agent',
|
||||
'chat.workStatus.mcp.toggle': 'Basculer {name}',
|
||||
'chat.workStatus.mcp.needsAuth': 'Se connecter',
|
||||
'chat.workStatus.mcp.failed': 'Échec',
|
||||
'chat.workStatus.pinned.unavailable': 'Message épinglé',
|
||||
'chat.workStatus.section.session': 'Session',
|
||||
'chat.workStatus.section.repository': 'Dépôt',
|
||||
'chat.workStatus.section.subagents': 'Sous-agents',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Messages épinglés',
|
||||
'chat.workStatus.section.tasks': 'Tâches',
|
||||
'chat.workStatus.subagent.working': 'travaille',
|
||||
'chat.workStatus.subagent.needsPermission': 'demande une autorisation',
|
||||
'chat.workStatus.subagent.askedQuestion': 'a posé une question',
|
||||
'chat.workStatus.section.contextBreakdown': 'Sources de contexte',
|
||||
'chat.workStatus.breakdown.skills': 'Compétences',
|
||||
'chat.workStatus.breakdown.mcp': 'Serveurs MCP',
|
||||
'chat.workStatus.action.openChanges': 'Ouvrir les modifications',
|
||||
'chat.workStatus.action.openGit': 'Ouvrir le panneau Git',
|
||||
'chat.workStatus.action.openPr': 'Ouvrir la pull request',
|
||||
'chat.workStatus.action.openSubagent': 'Ouvrir {name}',
|
||||
'chat.workStatus.section.usage': 'Utilisation',
|
||||
'chat.workStatus.goal.open': 'Gérer l’objectif',
|
||||
'chat.workStatus.goal.pause': 'Mettre en pause',
|
||||
'chat.workStatus.goal.resume': 'Reprendre',
|
||||
'chat.workStatus.goal.updateFailed': 'Impossible de mettre à jour l’objectif',
|
||||
'chat.workStatus.pinned.unpin': 'Détacher le message',
|
||||
'chat.workStatus.pinned.reveal': 'Aller au message',
|
||||
'chat.workStatus.pinned.unpinFailed': 'Impossible de détacher le message',
|
||||
'chat.workStatus.action.openContext': 'Ouvrir le panneau de contexte',
|
||||
'chat.workStatus.section.linkedIssues': 'Liés',
|
||||
'chat.workStatus.linkedIssues.open': 'Ouvrir #{number} sur GitHub',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Retirer le lien',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'Impossible de retirer le lien',
|
||||
'chat.workStatus.linkedIssues.link': 'Lier à la session',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'Impossible de lier',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} ticket',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} tickets',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PR',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} compétence',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} compétences',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Choisir les sections',
|
||||
'chat.workStatus.sections.dialogTitle': 'Sections du panneau',
|
||||
'chat.workStatus.sections.dialogDescription': 'Choisis ce qu\'affiche le panneau d\'état. Les sections masquées conservent leurs données, elles sont seulement absentes du panneau.',
|
||||
'header.workStatusPanel.toggleAria': 'Basculer le panneau d\'état',
|
||||
'header.workStatusPanel.hide': 'Masquer l\'état du travail',
|
||||
'header.workStatusPanel.show': 'Afficher l\'état du travail',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'Impossible d\'ouvrir la page d\'autorisation',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Échec de l\'autorisation',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'Impossible d\'ouvrir la page d\'autorisation',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Échec de l\'autorisation',
|
||||
'header.services.tooltip.currentInstance': 'Instance actuelle : {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Afficher l\'état par-dessus le chat',
|
||||
'settings.mcp.page.connection.title': 'Comment le joindre',
|
||||
'settings.mcp.page.connection.description': 'Colle la commande qui le démarre, ou le lien vers un serveur hébergé.',
|
||||
'settings.mcp.page.registration.title': 'Ce serveur exige sa propre app',
|
||||
'settings.mcp.page.registration.description': 'Il ne fournit pas d’identifiants automatiquement. Crée une app dans les réglages du service, colle ses informations ici, puis connecte-toi.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Donne cette adresse au service',
|
||||
'settings.mcp.page.registration.clientId': 'ID de l’app',
|
||||
'settings.mcp.page.registration.clientSecret': 'Secret de l’app',
|
||||
'settings.mcp.page.registration.afterSaving': 'Enregistre, puis appuie sur Autoriser.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Adresse copiée',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'Impossible de copier dans le presse-papiers',
|
||||
'settings.mcp.page.scope.everywhere': 'Disponible dans tous les projets',
|
||||
'settings.mcp.page.scope.thisProject': 'Seulement dans ce projet',
|
||||
'settings.mcp.page.env.description': 'Valeurs dont le serveur a besoin, par exemple une clé d’API.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Commande',
|
||||
'settings.mcp.page.connection.kindLink': 'Lien',
|
||||
'settings.mcp.page.connection.hintCommand': 'S’exécute sur cette machine. Collez une commande entière : elle est découpée en un argument par ligne.',
|
||||
'settings.mcp.page.connection.hintLink': 'Se connecte à un serveur hébergé par quelqu’un d’autre. Collez son adresse https.',
|
||||
} as const;
|
||||
|
||||
export type I18nKey = keyof typeof dict;
|
||||
|
||||
@@ -1541,8 +1541,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': 'インスタンス、使用量、MCPを開く(現在: {current})',
|
||||
'header.services.open': 'サービス、使用量、MCPを開く',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': '現在のインスタンス: {current}({toggle}、次のタブ {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': 'サービス({toggle}、次のタブ {nextTab})',
|
||||
'header.services.title': 'サービス',
|
||||
'header.services.viewAria': 'サービスを表示',
|
||||
'header.services.closeAria': 'サービスを閉じる',
|
||||
@@ -1559,7 +1557,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.used': '使用済み',
|
||||
'header.services.remaining': '残り',
|
||||
'header.services.modelFamily.other': 'その他',
|
||||
'header.services.shutdownDev': 'OpenChamberを停止',
|
||||
'header.actions.openPlanAria': '計画を開く',
|
||||
'header.actions.toggleChangesPanel': '変更パネル',
|
||||
'header.actions.toggleChangesPanelAria': '変更パネルの切り替え',
|
||||
@@ -2942,4 +2939,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
'updateDialog.changelog.title': '新機能',
|
||||
'quota.window.premiumInteractions': 'プレミアムインタラクション',
|
||||
|
||||
'chat.workStatus.ariaLabel': '作業状況',
|
||||
'chat.workStatus.context.label': 'コンテキスト',
|
||||
'chat.workStatus.git.changedFileSingle': '{count} 件のファイルを変更',
|
||||
'chat.workStatus.git.changedFilePlural': '{count} 件のファイルを変更',
|
||||
'chat.workStatus.pr.untitled': 'タイトルなしのプルリクエスト',
|
||||
'chat.workStatus.pr.draft': 'ドラフト',
|
||||
'chat.workStatus.pr.checks': 'チェック',
|
||||
'chat.workStatus.pr.checksFailed': '{count} 件失敗',
|
||||
'chat.workStatus.pr.checksPending': '{count} 件実行中',
|
||||
'chat.workStatus.pr.checksPassed': '{count} 件成功',
|
||||
'chat.workStatus.attention.merge': 'マージ実行中',
|
||||
'chat.workStatus.attention.rebase': 'リベース実行中',
|
||||
'chat.workStatus.attention.cherryPick': 'チェリーピック実行中',
|
||||
'chat.workStatus.attention.revert': 'リバート実行中',
|
||||
'chat.workStatus.attention.bisect': '二分探索実行中',
|
||||
'chat.workStatus.subagent.done': '完了',
|
||||
'chat.workStatus.subagent.untitled': 'サブエージェント',
|
||||
'chat.workStatus.mcp.toggle': '{name} を切り替え',
|
||||
'chat.workStatus.mcp.needsAuth': 'サインイン',
|
||||
'chat.workStatus.mcp.failed': '失敗',
|
||||
'chat.workStatus.pinned.unavailable': 'ピン留めしたメッセージ',
|
||||
'chat.workStatus.section.session': 'セッション',
|
||||
'chat.workStatus.section.repository': 'リポジトリ',
|
||||
'chat.workStatus.section.subagents': 'サブエージェント',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'ピン留めしたメッセージ',
|
||||
'chat.workStatus.section.tasks': 'タスク',
|
||||
'chat.workStatus.subagent.working': '作業中',
|
||||
'chat.workStatus.subagent.needsPermission': '許可が必要',
|
||||
'chat.workStatus.subagent.askedQuestion': '質問があります',
|
||||
'chat.workStatus.section.contextBreakdown': 'コンテキストソース',
|
||||
'chat.workStatus.breakdown.skills': 'スキル',
|
||||
'chat.workStatus.breakdown.mcp': 'MCP サーバー',
|
||||
'chat.workStatus.action.openChanges': '変更を開く',
|
||||
'chat.workStatus.action.openGit': 'Git パネルを開く',
|
||||
'chat.workStatus.action.openPr': 'プルリクエストを開く',
|
||||
'chat.workStatus.action.openSubagent': '{name} を開く',
|
||||
'chat.workStatus.section.usage': '使用量',
|
||||
'chat.workStatus.goal.open': '目標を管理',
|
||||
'chat.workStatus.goal.pause': '一時停止',
|
||||
'chat.workStatus.goal.resume': '再開',
|
||||
'chat.workStatus.goal.updateFailed': '目標を更新できませんでした',
|
||||
'chat.workStatus.pinned.unpin': 'ピン留めを解除',
|
||||
'chat.workStatus.pinned.reveal': 'メッセージへ移動',
|
||||
'chat.workStatus.pinned.unpinFailed': 'ピン留めを解除できませんでした',
|
||||
'chat.workStatus.action.openContext': 'コンテキストパネルを開く',
|
||||
'chat.workStatus.section.linkedIssues': 'リンク済み',
|
||||
'chat.workStatus.linkedIssues.open': 'GitHub で #{number} を開く',
|
||||
'chat.workStatus.linkedIssues.unlink': 'リンクを解除',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'リンクを解除できませんでした',
|
||||
'chat.workStatus.linkedIssues.link': 'セッションにリンク',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'リンクできませんでした',
|
||||
'chat.workStatus.breakdown.issueCountSingle': 'Issue {count} 件',
|
||||
'chat.workStatus.breakdown.issueCountPlural': 'Issue {count} 件',
|
||||
'chat.workStatus.breakdown.prCountSingle': 'PR {count} 件',
|
||||
'chat.workStatus.breakdown.prCountPlural': 'PR {count} 件',
|
||||
'chat.workStatus.breakdown.skillCountSingle': 'スキル {count} 個',
|
||||
'chat.workStatus.breakdown.skillCountPlural': 'スキル {count} 個',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': 'MCP {count} 個',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': 'MCP {count} 個',
|
||||
'chat.workStatus.sections.open': 'セクションを選択',
|
||||
'chat.workStatus.sections.dialogTitle': 'パネルのセクション',
|
||||
'chat.workStatus.sections.dialogDescription': '作業状況パネルに表示する内容を選びます。非表示のセクションもデータは保持され、表示されないだけです。',
|
||||
'header.workStatusPanel.toggleAria': '作業状況パネルを切り替え',
|
||||
'header.workStatusPanel.hide': '作業状況を非表示',
|
||||
'header.workStatusPanel.show': '作業状況を表示',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': '認証ページを開けませんでした',
|
||||
'chat.workStatus.mcp.authorizeFailed': '認証に失敗しました',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': '認証ページを開けませんでした',
|
||||
'mcpDropdown.toast.authorizeFailed': '認証に失敗しました',
|
||||
'header.services.tooltip.currentInstance': '現在のインスタンス: {current}({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'チャットの上に作業状況を表示',
|
||||
'settings.mcp.page.connection.title': '接続方法',
|
||||
'settings.mcp.page.connection.description': '起動コマンド、またはホスト型サーバーのリンクを貼り付けます。',
|
||||
'settings.mcp.page.registration.title': 'このサーバーには専用アプリが必要です',
|
||||
'settings.mcp.page.registration.description': '認証情報を自動発行しません。サービス側の設定でアプリを作成し、その情報をここに貼り付けてサインインしてください。',
|
||||
'settings.mcp.page.registration.callbackLabel': 'この住所をサービスに登録してください',
|
||||
'settings.mcp.page.registration.clientId': 'アプリ ID',
|
||||
'settings.mcp.page.registration.clientSecret': 'アプリシークレット',
|
||||
'settings.mcp.page.registration.afterSaving': '保存してから「認証」を押してください。',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': '住所をコピーしました',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'クリップボードにコピーできませんでした',
|
||||
'settings.mcp.page.scope.everywhere': 'すべてのプロジェクトで利用可能',
|
||||
'settings.mcp.page.scope.thisProject': 'このプロジェクトのみ',
|
||||
'settings.mcp.page.env.description': 'API キーなど、サーバーが必要とする値。',
|
||||
'settings.mcp.page.connection.kindCommand': 'コマンド',
|
||||
'settings.mcp.page.connection.kindLink': 'リンク',
|
||||
'settings.mcp.page.connection.hintCommand': 'このマシンで実行します。コマンド全体を貼り付けると、1 行に 1 引数へ分割されます。',
|
||||
'settings.mcp.page.connection.hintLink': '他者がホストするサーバーに接続します。その https アドレスを貼り付けてください。',
|
||||
};
|
||||
|
||||
@@ -1240,7 +1240,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'contextPanel.preview.console.filter.logs': '로그',
|
||||
'terminalView.preview.open': '미리보기',
|
||||
'terminalView.preview.openTitle': '미리보기 패널 열기',
|
||||
'header.services.shutdownDev': 'OpenChamber 종료',
|
||||
'chat.messageBody.actions.openPreviewAria': '미리보기 열기',
|
||||
'chat.messageBody.actions.openPreview': '미리보기 열기',
|
||||
'contextPanel.tab.closeTabAria': '{label} 탭 닫기',
|
||||
@@ -1548,8 +1547,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': '인스턴스, 사용량, MCP 열기(현재: {current})',
|
||||
'header.services.open': '서비스, 사용량, MCP 열기',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': '현재 인스턴스: {current} ({toggle}; 다음 탭 {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': '서비스 ({toggle}; 다음 탭 {nextTab})',
|
||||
'header.services.title': '서비스',
|
||||
'header.services.viewAria': '서비스 보기',
|
||||
'header.services.closeAria': '서비스 닫기',
|
||||
@@ -2942,4 +2939,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
'quota.window.chat': 'Chat Requests',
|
||||
'quota.window.completions': 'Completions',
|
||||
'quota.window.premiumInteractions': 'Premium interactions',
|
||||
'chat.workStatus.ariaLabel': '작업 상태',
|
||||
'chat.workStatus.context.label': '컨텍스트',
|
||||
'chat.workStatus.git.changedFileSingle': '파일 {count}개 변경됨',
|
||||
'chat.workStatus.git.changedFilePlural': '파일 {count}개 변경됨',
|
||||
'chat.workStatus.pr.untitled': '제목 없는 풀 리퀘스트',
|
||||
'chat.workStatus.pr.draft': '초안',
|
||||
'chat.workStatus.pr.checks': '검사',
|
||||
'chat.workStatus.pr.checksFailed': '{count}개 실패',
|
||||
'chat.workStatus.pr.checksPending': '{count}개 실행 중',
|
||||
'chat.workStatus.pr.checksPassed': '{count}개 통과',
|
||||
'chat.workStatus.attention.merge': '병합 진행 중',
|
||||
'chat.workStatus.attention.rebase': '리베이스 진행 중',
|
||||
'chat.workStatus.attention.cherryPick': '체리픽 진행 중',
|
||||
'chat.workStatus.attention.revert': '되돌리기 진행 중',
|
||||
'chat.workStatus.attention.bisect': '이분 탐색 진행 중',
|
||||
'chat.workStatus.subagent.done': '완료',
|
||||
'chat.workStatus.subagent.untitled': '서브에이전트',
|
||||
'chat.workStatus.mcp.toggle': '{name} 전환',
|
||||
'chat.workStatus.mcp.needsAuth': '로그인',
|
||||
'chat.workStatus.mcp.failed': '실패',
|
||||
'chat.workStatus.pinned.unavailable': '고정된 메시지',
|
||||
'chat.workStatus.section.session': '세션',
|
||||
'chat.workStatus.section.repository': '저장소',
|
||||
'chat.workStatus.section.subagents': '서브에이전트',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': '고정된 메시지',
|
||||
'chat.workStatus.section.tasks': '작업',
|
||||
'chat.workStatus.subagent.working': '작업 중',
|
||||
'chat.workStatus.subagent.needsPermission': '권한 필요',
|
||||
'chat.workStatus.subagent.askedQuestion': '질문함',
|
||||
'chat.workStatus.section.contextBreakdown': '컨텍스트 소스',
|
||||
'chat.workStatus.breakdown.skills': '스킬',
|
||||
'chat.workStatus.breakdown.mcp': 'MCP 서버',
|
||||
'chat.workStatus.action.openChanges': '변경 사항 열기',
|
||||
'chat.workStatus.action.openGit': 'Git 패널 열기',
|
||||
'chat.workStatus.action.openPr': '풀 리퀘스트 열기',
|
||||
'chat.workStatus.action.openSubagent': '{name} 열기',
|
||||
'chat.workStatus.section.usage': '사용량',
|
||||
'chat.workStatus.goal.open': '목표 관리',
|
||||
'chat.workStatus.goal.pause': '일시정지',
|
||||
'chat.workStatus.goal.resume': '재개',
|
||||
'chat.workStatus.goal.updateFailed': '목표를 업데이트하지 못했습니다',
|
||||
'chat.workStatus.pinned.unpin': '고정 해제',
|
||||
'chat.workStatus.pinned.reveal': '메시지로 이동',
|
||||
'chat.workStatus.pinned.unpinFailed': '고정을 해제하지 못했습니다',
|
||||
'chat.workStatus.action.openContext': '컨텍스트 패널 열기',
|
||||
'chat.workStatus.section.linkedIssues': '연결됨',
|
||||
'chat.workStatus.linkedIssues.open': 'GitHub에서 #{number} 열기',
|
||||
'chat.workStatus.linkedIssues.unlink': '연결 해제',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': '연결을 해제하지 못했습니다',
|
||||
'chat.workStatus.linkedIssues.link': '세션에 연결',
|
||||
'chat.workStatus.linkedIssues.linkFailed': '연결하지 못했습니다',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '이슈 {count}개',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '이슈 {count}개',
|
||||
'chat.workStatus.breakdown.prCountSingle': 'PR {count}개',
|
||||
'chat.workStatus.breakdown.prCountPlural': 'PR {count}개',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '스킬 {count}개',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '스킬 {count}개',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': 'MCP {count}개',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': 'MCP {count}개',
|
||||
'chat.workStatus.sections.open': '섹션 선택',
|
||||
'chat.workStatus.sections.dialogTitle': '패널 섹션',
|
||||
'chat.workStatus.sections.dialogDescription': '작업 상태 패널에 표시할 항목을 선택하세요. 숨긴 섹션도 데이터는 유지되며 패널에만 나타나지 않습니다.',
|
||||
'header.workStatusPanel.toggleAria': '작업 상태 패널 전환',
|
||||
'header.workStatusPanel.hide': '작업 상태 숨기기',
|
||||
'header.workStatusPanel.show': '작업 상태 표시',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': '인증 페이지를 열지 못했습니다',
|
||||
'chat.workStatus.mcp.authorizeFailed': '인증에 실패했습니다',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': '인증 페이지를 열지 못했습니다',
|
||||
'mcpDropdown.toast.authorizeFailed': '인증에 실패했습니다',
|
||||
'header.services.tooltip.currentInstance': '현재 인스턴스: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': '채팅 위에 작업 상태 표시',
|
||||
'settings.mcp.page.connection.title': '연결 방법',
|
||||
'settings.mcp.page.connection.description': '실행 명령 또는 호스팅 서버 링크를 붙여넣으세요.',
|
||||
'settings.mcp.page.registration.title': '이 서버는 전용 앱이 필요합니다',
|
||||
'settings.mcp.page.registration.description': '자격 증명을 자동으로 발급하지 않습니다. 서비스 설정에서 앱을 만들고 정보를 여기에 붙여넣은 뒤 로그인하세요.',
|
||||
'settings.mcp.page.registration.callbackLabel': '이 주소를 서비스에 등록하세요',
|
||||
'settings.mcp.page.registration.clientId': '앱 ID',
|
||||
'settings.mcp.page.registration.clientSecret': '앱 시크릿',
|
||||
'settings.mcp.page.registration.afterSaving': '저장한 다음 인증을 누르세요.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': '주소를 복사했습니다',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': '클립보드에 복사하지 못했습니다',
|
||||
'settings.mcp.page.scope.everywhere': '모든 프로젝트에서 사용',
|
||||
'settings.mcp.page.scope.thisProject': '이 프로젝트에서만',
|
||||
'settings.mcp.page.env.description': 'API 키처럼 서버가 필요로 하는 값.',
|
||||
'settings.mcp.page.connection.kindCommand': '명령',
|
||||
'settings.mcp.page.connection.kindLink': '링크',
|
||||
'settings.mcp.page.connection.hintCommand': '이 컴퓨터에서 실행됩니다. 명령 전체를 붙여넣으면 한 줄에 인수 하나씩 나뉩니다.',
|
||||
'settings.mcp.page.connection.hintLink': '다른 곳에서 호스팅하는 서버에 연결합니다. https 주소를 붙여넣으세요.',
|
||||
};
|
||||
|
||||
@@ -2324,10 +2324,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.rateLimits': 'Limity użycia',
|
||||
'header.services.refreshRateLimitsAria': 'Odśwież limity użycia',
|
||||
'header.services.remaining': 'Pozostało',
|
||||
'header.services.shutdownDev': 'Zatrzymaj OpenChamber',
|
||||
'header.services.title': 'Usługi',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': 'Bieżąca instancja: {current} ({toggle}; następna karta {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': 'Usługi ({toggle}; następna karta {nextTab})',
|
||||
'header.services.used': 'Wykorzystano',
|
||||
'header.services.viewAria': 'Pokaż usługi',
|
||||
'header.sessions.title': 'Sesje',
|
||||
@@ -2959,4 +2956,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
'quota.window.chat': 'Chat Requests',
|
||||
'quota.window.completions': 'Completions',
|
||||
'quota.window.premiumInteractions': 'Premium interactions',
|
||||
'chat.workStatus.ariaLabel': 'Stan pracy',
|
||||
'chat.workStatus.context.label': 'Kontekst',
|
||||
'chat.workStatus.git.changedFileSingle': 'Zmieniono {count} plik',
|
||||
'chat.workStatus.git.changedFilePlural': 'Zmieniono {count} plików',
|
||||
'chat.workStatus.pr.untitled': 'Pull request bez tytułu',
|
||||
'chat.workStatus.pr.draft': 'Szkic',
|
||||
'chat.workStatus.pr.checks': 'Sprawdzenia',
|
||||
'chat.workStatus.pr.checksFailed': '{count} nieudanych',
|
||||
'chat.workStatus.pr.checksPending': '{count} w toku',
|
||||
'chat.workStatus.pr.checksPassed': '{count} zaliczonych',
|
||||
'chat.workStatus.attention.merge': 'Trwa scalanie',
|
||||
'chat.workStatus.attention.rebase': 'Trwa rebase',
|
||||
'chat.workStatus.attention.cherryPick': 'Trwa cherry-pick',
|
||||
'chat.workStatus.attention.revert': 'Trwa cofanie',
|
||||
'chat.workStatus.attention.bisect': 'Trwa bisect',
|
||||
'chat.workStatus.subagent.done': 'Gotowe',
|
||||
'chat.workStatus.subagent.untitled': 'Subagent',
|
||||
'chat.workStatus.mcp.toggle': 'Przełącz {name}',
|
||||
'chat.workStatus.mcp.needsAuth': 'Zaloguj się',
|
||||
'chat.workStatus.mcp.failed': 'Niepowodzenie',
|
||||
'chat.workStatus.pinned.unavailable': 'Przypięta wiadomość',
|
||||
'chat.workStatus.section.session': 'Sesja',
|
||||
'chat.workStatus.section.repository': 'Repozytorium',
|
||||
'chat.workStatus.section.subagents': 'Subagenci',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Przypięte wiadomości',
|
||||
'chat.workStatus.section.tasks': 'Zadania',
|
||||
'chat.workStatus.subagent.working': 'pracuje',
|
||||
'chat.workStatus.subagent.needsPermission': 'potrzebuje uprawnienia',
|
||||
'chat.workStatus.subagent.askedQuestion': 'zadał pytanie',
|
||||
'chat.workStatus.section.contextBreakdown': 'Źródła kontekstu',
|
||||
'chat.workStatus.breakdown.skills': 'Umiejętności',
|
||||
'chat.workStatus.breakdown.mcp': 'Serwery MCP',
|
||||
'chat.workStatus.action.openChanges': 'Otwórz zmiany',
|
||||
'chat.workStatus.action.openGit': 'Otwórz panel Git',
|
||||
'chat.workStatus.action.openPr': 'Otwórz pull request',
|
||||
'chat.workStatus.action.openSubagent': 'Otwórz {name}',
|
||||
'chat.workStatus.section.usage': 'Zużycie',
|
||||
'chat.workStatus.goal.open': 'Zarządzaj celem',
|
||||
'chat.workStatus.goal.pause': 'Wstrzymaj',
|
||||
'chat.workStatus.goal.resume': 'Wznów',
|
||||
'chat.workStatus.goal.updateFailed': 'Nie udało się zaktualizować celu',
|
||||
'chat.workStatus.pinned.unpin': 'Odepnij wiadomość',
|
||||
'chat.workStatus.pinned.reveal': 'Przejdź do wiadomości',
|
||||
'chat.workStatus.pinned.unpinFailed': 'Nie udało się odpiąć wiadomości',
|
||||
'chat.workStatus.action.openContext': 'Otwórz panel kontekstu',
|
||||
'chat.workStatus.section.linkedIssues': 'Powiązane',
|
||||
'chat.workStatus.linkedIssues.open': 'Otwórz #{number} w GitHub',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Usuń powiązanie',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'Nie udało się usunąć powiązania',
|
||||
'chat.workStatus.linkedIssues.link': 'Powiąż z sesją',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'Nie udało się powiązać',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} zgłoszenie',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} zgłoszeń',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PR-ów',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} umiejętność',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} umiejętności',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Wybierz sekcje',
|
||||
'chat.workStatus.sections.dialogTitle': 'Sekcje panelu',
|
||||
'chat.workStatus.sections.dialogDescription': 'Wybierz, co pokazuje panel stanu pracy. Ukryte sekcje zachowują swoje dane — po prostu nie są wyświetlane.',
|
||||
'header.workStatusPanel.toggleAria': 'Przełącz panel stanu pracy',
|
||||
'header.workStatusPanel.hide': 'Ukryj stan pracy',
|
||||
'header.workStatusPanel.show': 'Pokaż stan pracy',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'Nie udało się otworzyć strony autoryzacji',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Autoryzacja nie powiodła się',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'Nie udało się otworzyć strony autoryzacji',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Autoryzacja nie powiodła się',
|
||||
'header.services.tooltip.currentInstance': 'Bieżąca instancja: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Pokaż stan pracy nad czatem',
|
||||
'settings.mcp.page.connection.title': 'Jak się połączyć',
|
||||
'settings.mcp.page.connection.description': 'Wklej polecenie uruchamiające lub link do serwera hostowanego.',
|
||||
'settings.mcp.page.registration.title': 'Ten serwer wymaga własnej aplikacji',
|
||||
'settings.mcp.page.registration.description': 'Nie wydaje danych logowania automatycznie. Utwórz aplikację w ustawieniach usługi, wklej jej dane tutaj i zaloguj się.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Podaj usłudze ten adres',
|
||||
'settings.mcp.page.registration.clientId': 'ID aplikacji',
|
||||
'settings.mcp.page.registration.clientSecret': 'Sekret aplikacji',
|
||||
'settings.mcp.page.registration.afterSaving': 'Zapisz, a potem naciśnij Autoryzuj.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Skopiowano adres',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'Nie udało się skopiować do schowka',
|
||||
'settings.mcp.page.scope.everywhere': 'Dostępny we wszystkich projektach',
|
||||
'settings.mcp.page.scope.thisProject': 'Tylko w tym projekcie',
|
||||
'settings.mcp.page.env.description': 'Wartości potrzebne serwerowi, np. klucz API.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Polecenie',
|
||||
'settings.mcp.page.connection.kindLink': 'Link',
|
||||
'settings.mcp.page.connection.hintCommand': 'Działa na tym komputerze. Wklej całe polecenie — zostanie podzielone na jeden argument w wierszu.',
|
||||
'settings.mcp.page.connection.hintLink': 'Łączy się z serwerem hostowanym przez kogoś innego. Wklej jego adres https.',
|
||||
} as const;
|
||||
|
||||
@@ -1523,8 +1523,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.github.accountSource.cli": "CLI",
|
||||
"header.services.openWithCurrent": "Abrir instância, uso e MCP (atual: {current})",
|
||||
"header.services.open": "Abrir serviços, uso e MCP",
|
||||
"header.services.tooltip.currentInstanceWithShortcuts": "Instância atual: {current} ({toggle}; próxima aba {nextTab})",
|
||||
"header.services.tooltip.servicesWithShortcuts": "Serviços ({toggle}; próxima aba {nextTab})",
|
||||
"header.services.title": "Serviços",
|
||||
"header.services.viewAria": "Ver serviços",
|
||||
"header.services.closeAria": "Fechar serviços",
|
||||
@@ -1541,7 +1539,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.services.used": "Usado",
|
||||
"header.services.remaining": "Restante",
|
||||
"header.services.modelFamily.other": "Outro",
|
||||
"header.services.shutdownDev": "Parar OpenChamber",
|
||||
"header.actions.openPlanAria": "Abrir plano",
|
||||
"header.actions.toggleChangesPanel": "Painel de alterações",
|
||||
"header.actions.toggleChangesPanelAria": "Alternar painel de alterações",
|
||||
@@ -2943,4 +2940,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
"quota.window.chat": "Chat Requests",
|
||||
"quota.window.completions": "Completions",
|
||||
"quota.window.premiumInteractions": "Premium interactions",
|
||||
'chat.workStatus.ariaLabel': 'Status do trabalho',
|
||||
'chat.workStatus.context.label': 'Contexto',
|
||||
'chat.workStatus.git.changedFileSingle': '{count} arquivo alterado',
|
||||
'chat.workStatus.git.changedFilePlural': '{count} arquivos alterados',
|
||||
'chat.workStatus.pr.untitled': 'Pull request sem título',
|
||||
'chat.workStatus.pr.draft': 'Rascunho',
|
||||
'chat.workStatus.pr.checks': 'Verificações',
|
||||
'chat.workStatus.pr.checksFailed': '{count} falharam',
|
||||
'chat.workStatus.pr.checksPending': '{count} em execução',
|
||||
'chat.workStatus.pr.checksPassed': '{count} aprovadas',
|
||||
'chat.workStatus.attention.merge': 'Merge em andamento',
|
||||
'chat.workStatus.attention.rebase': 'Rebase em andamento',
|
||||
'chat.workStatus.attention.cherryPick': 'Cherry-pick em andamento',
|
||||
'chat.workStatus.attention.revert': 'Revert em andamento',
|
||||
'chat.workStatus.attention.bisect': 'Bisect em andamento',
|
||||
'chat.workStatus.subagent.done': 'Concluído',
|
||||
'chat.workStatus.subagent.untitled': 'Subagente',
|
||||
'chat.workStatus.mcp.toggle': 'Alternar {name}',
|
||||
'chat.workStatus.mcp.needsAuth': 'Entrar',
|
||||
'chat.workStatus.mcp.failed': 'Falhou',
|
||||
'chat.workStatus.pinned.unavailable': 'Mensagem fixada',
|
||||
'chat.workStatus.section.session': 'Sessão',
|
||||
'chat.workStatus.section.repository': 'Repositório',
|
||||
'chat.workStatus.section.subagents': 'Subagentes',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Mensagens fixadas',
|
||||
'chat.workStatus.section.tasks': 'Tarefas',
|
||||
'chat.workStatus.subagent.working': 'está trabalhando',
|
||||
'chat.workStatus.subagent.needsPermission': 'precisa de permissão',
|
||||
'chat.workStatus.subagent.askedQuestion': 'fez uma pergunta',
|
||||
'chat.workStatus.section.contextBreakdown': 'Fontes de contexto',
|
||||
'chat.workStatus.breakdown.skills': 'Habilidades',
|
||||
'chat.workStatus.breakdown.mcp': 'Servidores MCP',
|
||||
'chat.workStatus.action.openChanges': 'Abrir alterações',
|
||||
'chat.workStatus.action.openGit': 'Abrir painel do Git',
|
||||
'chat.workStatus.action.openPr': 'Abrir pull request',
|
||||
'chat.workStatus.action.openSubagent': 'Abrir {name}',
|
||||
'chat.workStatus.section.usage': 'Uso',
|
||||
'chat.workStatus.goal.open': 'Gerenciar objetivo',
|
||||
'chat.workStatus.goal.pause': 'Pausar',
|
||||
'chat.workStatus.goal.resume': 'Retomar',
|
||||
'chat.workStatus.goal.updateFailed': 'Não foi possível atualizar o objetivo',
|
||||
'chat.workStatus.pinned.unpin': 'Desafixar mensagem',
|
||||
'chat.workStatus.pinned.reveal': 'Ir para a mensagem',
|
||||
'chat.workStatus.pinned.unpinFailed': 'Não foi possível desafixar a mensagem',
|
||||
'chat.workStatus.action.openContext': 'Abrir painel de contexto',
|
||||
'chat.workStatus.section.linkedIssues': 'Vinculados',
|
||||
'chat.workStatus.linkedIssues.open': 'Abrir #{number} no GitHub',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Remover vínculo',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'Não foi possível remover o vínculo',
|
||||
'chat.workStatus.linkedIssues.link': 'Vincular à sessão',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'Não foi possível vincular',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} issue',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} issues',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PRs',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} habilidade',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} habilidades',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Escolher seções',
|
||||
'chat.workStatus.sections.dialogTitle': 'Seções do painel',
|
||||
'chat.workStatus.sections.dialogDescription': 'Escolha o que o painel de status mostra. Seções ocultas mantêm seus dados — apenas não aparecem no painel.',
|
||||
'header.workStatusPanel.toggleAria': 'Alternar painel de status',
|
||||
'header.workStatusPanel.hide': 'Ocultar status do trabalho',
|
||||
'header.workStatusPanel.show': 'Mostrar status do trabalho',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'Não foi possível abrir a página de autorização',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Falha na autorização',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'Não foi possível abrir a página de autorização',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Falha na autorização',
|
||||
'header.services.tooltip.currentInstance': 'Instância atual: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Mostrar status sobre o chat',
|
||||
'settings.mcp.page.connection.title': 'Como acessar',
|
||||
'settings.mcp.page.connection.description': 'Cole o comando que o inicia ou o link de um servidor hospedado.',
|
||||
'settings.mcp.page.registration.title': 'Este servidor precisa do próprio app',
|
||||
'settings.mcp.page.registration.description': 'Ele não fornece credenciais automaticamente. Crie um app nas configurações do serviço, cole os dados aqui e faça login.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Informe este endereço ao serviço',
|
||||
'settings.mcp.page.registration.clientId': 'ID do app',
|
||||
'settings.mcp.page.registration.clientSecret': 'Segredo do app',
|
||||
'settings.mcp.page.registration.afterSaving': 'Salve e depois pressione Autorizar.',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Endereço copiado',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'Não foi possível copiar para a área de transferência',
|
||||
'settings.mcp.page.scope.everywhere': 'Disponível em todos os projetos',
|
||||
'settings.mcp.page.scope.thisProject': 'Somente neste projeto',
|
||||
'settings.mcp.page.env.description': 'Valores que o servidor precisa, como uma chave de API.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Comando',
|
||||
'settings.mcp.page.connection.kindLink': 'Link',
|
||||
'settings.mcp.page.connection.hintCommand': 'Executa nesta máquina. Cole um comando inteiro e ele será dividido em um argumento por linha.',
|
||||
'settings.mcp.page.connection.hintLink': 'Conecta a um servidor hospedado por outra pessoa. Cole o endereço https dele.',
|
||||
};
|
||||
|
||||
@@ -1523,8 +1523,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.github.accountSource.cli": "CLI",
|
||||
"header.services.openWithCurrent": "Відкрити інстанс, використання та MCP (поточний: {current})",
|
||||
"header.services.open": "Відкрити сервіси, використання та MCP",
|
||||
"header.services.tooltip.currentInstanceWithShortcuts": "Поточний інстанс: {current} ({toggle}; наступна вкладка {nextTab})",
|
||||
"header.services.tooltip.servicesWithShortcuts": "Сервіси ({toggle}; наступна вкладка {nextTab})",
|
||||
"header.services.title": "Сервіси",
|
||||
"header.services.viewAria": "Переглянути сервіси",
|
||||
"header.services.closeAria": "Закрити сервіси",
|
||||
@@ -1540,7 +1538,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"header.services.remoteUpdate.actions.open": "Оновити",
|
||||
"header.services.used": "Використано",
|
||||
"header.services.remaining": "Залишилося",
|
||||
"header.services.shutdownDev": "Зупинити OpenChamber",
|
||||
"header.services.modelFamily.other": "інше",
|
||||
"header.actions.openPlanAria": "Відкрити план",
|
||||
"header.actions.toggleChangesPanel": "Панель змін",
|
||||
@@ -2943,4 +2940,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
"quota.window.chat": "Chat Requests",
|
||||
"quota.window.completions": "Completions",
|
||||
"quota.window.premiumInteractions": "Premium interactions",
|
||||
'chat.workStatus.ariaLabel': 'Стан роботи',
|
||||
'chat.workStatus.context.label': 'Контекст',
|
||||
'chat.workStatus.git.changedFileSingle': 'Змінено {count} файл',
|
||||
'chat.workStatus.git.changedFilePlural': 'Змінено {count} файлів',
|
||||
'chat.workStatus.pr.untitled': 'Pull request без назви',
|
||||
'chat.workStatus.pr.draft': 'Чернетка',
|
||||
'chat.workStatus.pr.checks': 'Перевірки',
|
||||
'chat.workStatus.pr.checksFailed': '{count} впало',
|
||||
'chat.workStatus.pr.checksPending': '{count} виконується',
|
||||
'chat.workStatus.pr.checksPassed': '{count} пройшло',
|
||||
'chat.workStatus.attention.merge': 'Триває злиття',
|
||||
'chat.workStatus.attention.rebase': 'Триває rebase',
|
||||
'chat.workStatus.attention.cherryPick': 'Триває cherry-pick',
|
||||
'chat.workStatus.attention.revert': 'Триває відкат',
|
||||
'chat.workStatus.attention.bisect': 'Триває bisect',
|
||||
'chat.workStatus.subagent.done': 'Готово',
|
||||
'chat.workStatus.subagent.untitled': 'Сабагент',
|
||||
'chat.workStatus.mcp.toggle': 'Перемкнути {name}',
|
||||
'chat.workStatus.mcp.needsAuth': 'Увійти',
|
||||
'chat.workStatus.mcp.failed': 'Помилка',
|
||||
'chat.workStatus.pinned.unavailable': 'Запінене повідомлення',
|
||||
'chat.workStatus.section.session': 'Сесія',
|
||||
'chat.workStatus.section.repository': 'Репозиторій',
|
||||
'chat.workStatus.section.subagents': 'Сабагенти',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': 'Запінені повідомлення',
|
||||
'chat.workStatus.section.tasks': 'Задачі',
|
||||
'chat.workStatus.subagent.working': 'працює',
|
||||
'chat.workStatus.subagent.needsPermission': 'потребує дозволу',
|
||||
'chat.workStatus.subagent.askedQuestion': 'поставив питання',
|
||||
'chat.workStatus.section.contextBreakdown': 'Джерела контексту',
|
||||
'chat.workStatus.breakdown.skills': 'Скіли',
|
||||
'chat.workStatus.breakdown.mcp': 'Сервери MCP',
|
||||
'chat.workStatus.action.openChanges': 'Відкрити зміни',
|
||||
'chat.workStatus.action.openGit': 'Відкрити панель Git',
|
||||
'chat.workStatus.action.openPr': 'Відкрити pull request',
|
||||
'chat.workStatus.action.openSubagent': 'Відкрити {name}',
|
||||
'chat.workStatus.section.usage': 'Використання',
|
||||
'chat.workStatus.goal.open': 'Керувати ціллю',
|
||||
'chat.workStatus.goal.pause': 'Пауза',
|
||||
'chat.workStatus.goal.resume': 'Відновити',
|
||||
'chat.workStatus.goal.updateFailed': 'Не вдалося оновити ціль',
|
||||
'chat.workStatus.pinned.unpin': 'Відпінити повідомлення',
|
||||
'chat.workStatus.pinned.reveal': 'Перейти до повідомлення',
|
||||
'chat.workStatus.pinned.unpinFailed': 'Не вдалося відпінити повідомлення',
|
||||
'chat.workStatus.action.openContext': 'Відкрити панель контексту',
|
||||
'chat.workStatus.section.linkedIssues': 'Прилінковане',
|
||||
'chat.workStatus.linkedIssues.open': 'Відкрити #{number} на GitHub',
|
||||
'chat.workStatus.linkedIssues.unlink': 'Прибрати лінк',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': 'Не вдалося прибрати лінк',
|
||||
'chat.workStatus.linkedIssues.link': 'Прилінкувати до сесії',
|
||||
'chat.workStatus.linkedIssues.linkFailed': 'Не вдалося прилінкувати',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} issue',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} issues',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} PR',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} скіл',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} скілів',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} MCP',
|
||||
'chat.workStatus.sections.open': 'Обрати секції',
|
||||
'chat.workStatus.sections.dialogTitle': 'Секції панелі',
|
||||
'chat.workStatus.sections.dialogDescription': 'Обери, що показує панель стану роботи. Приховані секції зберігають свої дані — вони просто не відображаються.',
|
||||
'header.workStatusPanel.toggleAria': 'Перемкнути панель стану роботи',
|
||||
'header.workStatusPanel.hide': 'Сховати стан роботи',
|
||||
'header.workStatusPanel.show': 'Показати стан роботи',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': 'Не вдалося відкрити сторінку авторизації',
|
||||
'chat.workStatus.mcp.authorizeFailed': 'Авторизація не вдалася',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': 'Не вдалося відкрити сторінку авторизації',
|
||||
'mcpDropdown.toast.authorizeFailed': 'Авторизація не вдалася',
|
||||
'header.services.tooltip.currentInstance': 'Поточний інстанс: {current} ({toggle})',
|
||||
'header.workStatusPanel.showOverlay': 'Показати стан роботи поверх чату',
|
||||
'settings.mcp.page.connection.title': 'Як під’єднатись',
|
||||
'settings.mcp.page.connection.description': 'Встав команду, яка його запускає, або посилання на готовий сервер.',
|
||||
'settings.mcp.page.registration.title': 'Цьому серверу потрібен власний застосунок',
|
||||
'settings.mcp.page.registration.description': 'Він не видає доступи автоматично. Створи застосунок у налаштуваннях самого сервісу, встав сюди його дані й увійди.',
|
||||
'settings.mcp.page.registration.callbackLabel': 'Впиши цю адресу в сервісі',
|
||||
'settings.mcp.page.registration.clientId': 'ID застосунку',
|
||||
'settings.mcp.page.registration.clientSecret': 'Секрет застосунку',
|
||||
'settings.mcp.page.registration.afterSaving': 'Збережи, потім натисни «Авторизувати».',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': 'Адресу скопійовано',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': 'Не вдалося скопіювати в буфер обміну',
|
||||
'settings.mcp.page.scope.everywhere': 'Доступний у всіх проєктах',
|
||||
'settings.mcp.page.scope.thisProject': 'Тільки в цьому проєкті',
|
||||
'settings.mcp.page.env.description': 'Значення, потрібні серверу — наприклад, ключ API.',
|
||||
'settings.mcp.page.connection.kindCommand': 'Команда',
|
||||
'settings.mcp.page.connection.kindLink': 'Посилання',
|
||||
'settings.mcp.page.connection.hintCommand': 'Запускається на цьому комп’ютері. Вставте цілу команду — вона розділиться на один аргумент у рядку.',
|
||||
'settings.mcp.page.connection.hintLink': 'Під’єднується до сервера, який хостить хтось інший. Вставте його https-адресу.',
|
||||
};
|
||||
|
||||
@@ -1511,8 +1511,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': '打开实例、用量和 MCP(当前:{current})',
|
||||
'header.services.open': '打开服务、用量和 MCP',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': '当前实例:{current}({toggle};下一标签 {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': '服务({toggle};下一标签 {nextTab})',
|
||||
'header.services.title': '服务',
|
||||
'header.services.viewAria': '查看服务',
|
||||
'header.services.closeAria': '关闭服务',
|
||||
@@ -1528,7 +1526,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.remoteUpdate.actions.open': '更新',
|
||||
'header.services.used': '已用',
|
||||
'header.services.remaining': '剩余',
|
||||
'header.services.shutdownDev': '停止 OpenChamber',
|
||||
'header.services.modelFamily.other': '其他',
|
||||
'header.actions.openPlanAria': '打开计划',
|
||||
"header.actions.toggleChangesPanel": "更改面板",
|
||||
@@ -2943,4 +2940,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
'quota.window.chat': 'Chat Requests',
|
||||
'quota.window.completions': 'Completions',
|
||||
'quota.window.premiumInteractions': 'Premium interactions',
|
||||
'chat.workStatus.ariaLabel': '工作状态',
|
||||
'chat.workStatus.context.label': '上下文',
|
||||
'chat.workStatus.git.changedFileSingle': '已更改 {count} 个文件',
|
||||
'chat.workStatus.git.changedFilePlural': '已更改 {count} 个文件',
|
||||
'chat.workStatus.pr.untitled': '未命名的拉取请求',
|
||||
'chat.workStatus.pr.draft': '草稿',
|
||||
'chat.workStatus.pr.checks': '检查',
|
||||
'chat.workStatus.pr.checksFailed': '{count} 项失败',
|
||||
'chat.workStatus.pr.checksPending': '{count} 项进行中',
|
||||
'chat.workStatus.pr.checksPassed': '{count} 项通过',
|
||||
'chat.workStatus.attention.merge': '正在合并',
|
||||
'chat.workStatus.attention.rebase': '正在变基',
|
||||
'chat.workStatus.attention.cherryPick': '正在拣选提交',
|
||||
'chat.workStatus.attention.revert': '正在还原',
|
||||
'chat.workStatus.attention.bisect': '正在二分查找',
|
||||
'chat.workStatus.subagent.done': '已完成',
|
||||
'chat.workStatus.subagent.untitled': '子代理',
|
||||
'chat.workStatus.mcp.toggle': '切换 {name}',
|
||||
'chat.workStatus.mcp.needsAuth': '登录',
|
||||
'chat.workStatus.mcp.failed': '失败',
|
||||
'chat.workStatus.pinned.unavailable': '已固定的消息',
|
||||
'chat.workStatus.section.session': '会话',
|
||||
'chat.workStatus.section.repository': '仓库',
|
||||
'chat.workStatus.section.subagents': '子代理',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': '已固定的消息',
|
||||
'chat.workStatus.section.tasks': '任务',
|
||||
'chat.workStatus.subagent.working': '正在工作',
|
||||
'chat.workStatus.subagent.needsPermission': '需要授权',
|
||||
'chat.workStatus.subagent.askedQuestion': '提出了问题',
|
||||
'chat.workStatus.section.contextBreakdown': '上下文来源',
|
||||
'chat.workStatus.breakdown.skills': '技能',
|
||||
'chat.workStatus.breakdown.mcp': 'MCP 服务器',
|
||||
'chat.workStatus.action.openChanges': '打开更改',
|
||||
'chat.workStatus.action.openGit': '打开 Git 面板',
|
||||
'chat.workStatus.action.openPr': '打开拉取请求',
|
||||
'chat.workStatus.action.openSubagent': '打开 {name}',
|
||||
'chat.workStatus.section.usage': '用量',
|
||||
'chat.workStatus.goal.open': '管理目标',
|
||||
'chat.workStatus.goal.pause': '暂停',
|
||||
'chat.workStatus.goal.resume': '继续',
|
||||
'chat.workStatus.goal.updateFailed': '无法更新目标',
|
||||
'chat.workStatus.pinned.unpin': '取消固定消息',
|
||||
'chat.workStatus.pinned.reveal': '跳转到消息',
|
||||
'chat.workStatus.pinned.unpinFailed': '无法取消固定消息',
|
||||
'chat.workStatus.action.openContext': '打开上下文面板',
|
||||
'chat.workStatus.section.linkedIssues': '已关联',
|
||||
'chat.workStatus.linkedIssues.open': '在 GitHub 上打开 #{number}',
|
||||
'chat.workStatus.linkedIssues.unlink': '移除关联',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': '无法移除关联',
|
||||
'chat.workStatus.linkedIssues.link': '关联到会话',
|
||||
'chat.workStatus.linkedIssues.linkFailed': '无法关联',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} 个 issue',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} 个 issue',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} 个 PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} 个 PR',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} 个技能',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} 个技能',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} 个 MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} 个 MCP',
|
||||
'chat.workStatus.sections.open': '选择板块',
|
||||
'chat.workStatus.sections.dialogTitle': '面板板块',
|
||||
'chat.workStatus.sections.dialogDescription': '选择工作状态面板显示的内容。隐藏的板块仍保留数据,只是不再显示。',
|
||||
'header.workStatusPanel.toggleAria': '切换工作状态面板',
|
||||
'header.workStatusPanel.hide': '隐藏工作状态',
|
||||
'header.workStatusPanel.show': '显示工作状态',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': '无法打开授权页面',
|
||||
'chat.workStatus.mcp.authorizeFailed': '授权失败',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': '无法打开授权页面',
|
||||
'mcpDropdown.toast.authorizeFailed': '授权失败',
|
||||
'header.services.tooltip.currentInstance': '当前实例:{current}({toggle})',
|
||||
'header.workStatusPanel.showOverlay': '在聊天上方显示工作状态',
|
||||
'settings.mcp.page.connection.title': '如何连接',
|
||||
'settings.mcp.page.connection.description': '粘贴启动命令,或托管服务器的链接。',
|
||||
'settings.mcp.page.registration.title': '此服务器需要独立应用',
|
||||
'settings.mcp.page.registration.description': '它不会自动下发凭据。请在该服务的设置中创建应用,把信息粘贴到这里,然后登录。',
|
||||
'settings.mcp.page.registration.callbackLabel': '把这个地址填入该服务',
|
||||
'settings.mcp.page.registration.clientId': '应用 ID',
|
||||
'settings.mcp.page.registration.clientSecret': '应用密钥',
|
||||
'settings.mcp.page.registration.afterSaving': '保存后点击“授权”。',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': '已复制地址',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': '无法复制到剪贴板',
|
||||
'settings.mcp.page.scope.everywhere': '在所有项目中可用',
|
||||
'settings.mcp.page.scope.thisProject': '仅在此项目中',
|
||||
'settings.mcp.page.env.description': '服务器需要的值,例如 API 密钥。',
|
||||
'settings.mcp.page.connection.kindCommand': '命令',
|
||||
'settings.mcp.page.connection.kindLink': '链接',
|
||||
'settings.mcp.page.connection.hintCommand': '在本机运行。粘贴完整命令后会按每行一个参数拆分。',
|
||||
'settings.mcp.page.connection.hintLink': '连接到他人托管的服务器。粘贴其 https 地址。',
|
||||
};
|
||||
|
||||
@@ -1521,8 +1521,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.github.accountSource.cli': 'CLI',
|
||||
'header.services.openWithCurrent': '開啟實例、用量和 MCP(目前:{current})',
|
||||
'header.services.open': '開啟服務、用量和 MCP',
|
||||
'header.services.tooltip.currentInstanceWithShortcuts': '目前實例:{current}({toggle};下一分頁 {nextTab})',
|
||||
'header.services.tooltip.servicesWithShortcuts': '服務({toggle};下一分頁 {nextTab})',
|
||||
'header.services.title': '服務',
|
||||
'header.services.viewAria': '查看服務',
|
||||
'header.services.closeAria': '關閉服務',
|
||||
@@ -1532,7 +1530,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'header.services.noRateLimitsReported': '未報告速率限制。',
|
||||
'header.services.used': '已用',
|
||||
'header.services.remaining': '剩餘',
|
||||
'header.services.shutdownDev': '停止 OpenChamber',
|
||||
'header.services.modelFamily.other': '其他',
|
||||
'header.actions.openPlanAria': '開啟計畫',
|
||||
"header.actions.toggleChangesPanel": "變更面板",
|
||||
@@ -2942,4 +2939,93 @@ export const dict: Record<I18nKey, string> = {
|
||||
'quota.window.chat': 'Chat Requests',
|
||||
'quota.window.completions': 'Completions',
|
||||
'quota.window.premiumInteractions': 'Premium interactions',
|
||||
'chat.workStatus.ariaLabel': '工作狀態',
|
||||
'chat.workStatus.context.label': '上下文',
|
||||
'chat.workStatus.git.changedFileSingle': '已變更 {count} 個檔案',
|
||||
'chat.workStatus.git.changedFilePlural': '已變更 {count} 個檔案',
|
||||
'chat.workStatus.pr.untitled': '未命名的提取請求',
|
||||
'chat.workStatus.pr.draft': '草稿',
|
||||
'chat.workStatus.pr.checks': '檢查',
|
||||
'chat.workStatus.pr.checksFailed': '{count} 項失敗',
|
||||
'chat.workStatus.pr.checksPending': '{count} 項進行中',
|
||||
'chat.workStatus.pr.checksPassed': '{count} 項通過',
|
||||
'chat.workStatus.attention.merge': '正在合併',
|
||||
'chat.workStatus.attention.rebase': '正在變基',
|
||||
'chat.workStatus.attention.cherryPick': '正在揀選提交',
|
||||
'chat.workStatus.attention.revert': '正在還原',
|
||||
'chat.workStatus.attention.bisect': '正在二分搜尋',
|
||||
'chat.workStatus.subagent.done': '已完成',
|
||||
'chat.workStatus.subagent.untitled': '子代理',
|
||||
'chat.workStatus.mcp.toggle': '切換 {name}',
|
||||
'chat.workStatus.mcp.needsAuth': '登入',
|
||||
'chat.workStatus.mcp.failed': '失敗',
|
||||
'chat.workStatus.pinned.unavailable': '已釘選的訊息',
|
||||
'chat.workStatus.section.session': '工作階段',
|
||||
'chat.workStatus.section.repository': '儲存庫',
|
||||
'chat.workStatus.section.subagents': '子代理',
|
||||
'chat.workStatus.section.mcp': 'MCP',
|
||||
'chat.workStatus.section.pinned': '已釘選的訊息',
|
||||
'chat.workStatus.section.tasks': '工作',
|
||||
'chat.workStatus.subagent.working': '正在工作',
|
||||
'chat.workStatus.subagent.needsPermission': '需要授權',
|
||||
'chat.workStatus.subagent.askedQuestion': '提出了問題',
|
||||
'chat.workStatus.section.contextBreakdown': '上下文來源',
|
||||
'chat.workStatus.breakdown.skills': '技能',
|
||||
'chat.workStatus.breakdown.mcp': 'MCP 伺服器',
|
||||
'chat.workStatus.action.openChanges': '開啟變更',
|
||||
'chat.workStatus.action.openGit': '開啟 Git 面板',
|
||||
'chat.workStatus.action.openPr': '開啟提取請求',
|
||||
'chat.workStatus.action.openSubagent': '開啟 {name}',
|
||||
'chat.workStatus.section.usage': '用量',
|
||||
'chat.workStatus.goal.open': '管理目標',
|
||||
'chat.workStatus.goal.pause': '暫停',
|
||||
'chat.workStatus.goal.resume': '繼續',
|
||||
'chat.workStatus.goal.updateFailed': '無法更新目標',
|
||||
'chat.workStatus.pinned.unpin': '取消釘選訊息',
|
||||
'chat.workStatus.pinned.reveal': '跳至訊息',
|
||||
'chat.workStatus.pinned.unpinFailed': '無法取消釘選訊息',
|
||||
'chat.workStatus.action.openContext': '開啟上下文面板',
|
||||
'chat.workStatus.section.linkedIssues': '已關聯',
|
||||
'chat.workStatus.linkedIssues.open': '在 GitHub 上開啟 #{number}',
|
||||
'chat.workStatus.linkedIssues.unlink': '移除關聯',
|
||||
'chat.workStatus.linkedIssues.unlinkFailed': '無法移除關聯',
|
||||
'chat.workStatus.linkedIssues.link': '關聯到工作階段',
|
||||
'chat.workStatus.linkedIssues.linkFailed': '無法關聯',
|
||||
'chat.workStatus.breakdown.issueCountSingle': '{count} 個 issue',
|
||||
'chat.workStatus.breakdown.issueCountPlural': '{count} 個 issue',
|
||||
'chat.workStatus.breakdown.prCountSingle': '{count} 個 PR',
|
||||
'chat.workStatus.breakdown.prCountPlural': '{count} 個 PR',
|
||||
'chat.workStatus.breakdown.skillCountSingle': '{count} 個技能',
|
||||
'chat.workStatus.breakdown.skillCountPlural': '{count} 個技能',
|
||||
'chat.workStatus.breakdown.mcpCountSingle': '{count} 個 MCP',
|
||||
'chat.workStatus.breakdown.mcpCountPlural': '{count} 個 MCP',
|
||||
'chat.workStatus.sections.open': '選擇區塊',
|
||||
'chat.workStatus.sections.dialogTitle': '面板區塊',
|
||||
'chat.workStatus.sections.dialogDescription': '選擇工作狀態面板顯示的內容。隱藏的區塊仍保留資料,只是不再顯示。',
|
||||
'header.workStatusPanel.toggleAria': '切換工作狀態面板',
|
||||
'header.workStatusPanel.hide': '隱藏工作狀態',
|
||||
'header.workStatusPanel.show': '顯示工作狀態',
|
||||
'chat.workStatus.mcp.authorizeOpenFailed': '無法開啟授權頁面',
|
||||
'chat.workStatus.mcp.authorizeFailed': '授權失敗',
|
||||
'mcpDropdown.toast.authorizeOpenFailed': '無法開啟授權頁面',
|
||||
'mcpDropdown.toast.authorizeFailed': '授權失敗',
|
||||
'header.services.tooltip.currentInstance': '目前執行個體:{current}({toggle})',
|
||||
'header.workStatusPanel.showOverlay': '在聊天上方顯示工作狀態',
|
||||
'settings.mcp.page.connection.title': '如何連線',
|
||||
'settings.mcp.page.connection.description': '貼上啟動指令,或代管伺服器的連結。',
|
||||
'settings.mcp.page.registration.title': '此伺服器需要獨立應用程式',
|
||||
'settings.mcp.page.registration.description': '它不會自動發放憑證。請在該服務的設定中建立應用程式,將資訊貼到這裡,然後登入。',
|
||||
'settings.mcp.page.registration.callbackLabel': '把這個位址填入該服務',
|
||||
'settings.mcp.page.registration.clientId': '應用程式 ID',
|
||||
'settings.mcp.page.registration.clientSecret': '應用程式密鑰',
|
||||
'settings.mcp.page.registration.afterSaving': '儲存後點擊「授權」。',
|
||||
'settings.mcp.page.toast.copiedCallbackUrl': '已複製位址',
|
||||
'settings.mcp.page.toast.clipboardWriteFailed': '無法複製到剪貼簿',
|
||||
'settings.mcp.page.scope.everywhere': '在所有專案中可用',
|
||||
'settings.mcp.page.scope.thisProject': '僅在此專案中',
|
||||
'settings.mcp.page.env.description': '伺服器需要的值,例如 API 金鑰。',
|
||||
'settings.mcp.page.connection.kindCommand': '指令',
|
||||
'settings.mcp.page.connection.kindLink': '連結',
|
||||
'settings.mcp.page.connection.hintCommand': '在本機執行。貼上完整指令後會依每行一個參數拆分。',
|
||||
'settings.mcp.page.connection.hintLink': '連線到他人代管的伺服器。貼上其 https 位址。',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user