diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/de.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/de.ts index 39411f4c9..cdf7ba2c9 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/de.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/de.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'MCP-Server', 'nav.settings': 'Einstellungen', 'nav.debug': 'Debug-Konsole', - 'nav.lanchat': 'LAN-Chat', 'nav.cron': 'Geplante Aufgaben', 'cron.title': 'Geplante Aufgaben', 'cron.newTask': 'Neue Aufgabe', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': 'Neue Sitzung', 'sidebar.untitled': 'Unbenannt', 'sidebar.delete': 'Löschen', - 'sidebar.loading': 'Wird geladen...', 'sidebar.group.pinned': 'Angeheftet', 'sidebar.group.today': 'Heute', 'sidebar.group.yesterday': 'Gestern', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': 'Bereit', 'status.thinking': 'Denke nach...', - 'status.streaming': 'Streaming', 'status.offline': 'Offline', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': 'Sitzung als JSON exportieren', 'cmd.copyMarkdown': 'Sitzung als Markdown kopieren', 'cmd.searchSessions': 'Sitzungen durchsuchen', - 'cmd.clearHistory': 'Verlauf löschen', - 'cmd.compactContext': 'Kontext komprimieren', - 'cmd.undoLast': 'Letzte rückgängig', 'cmd.shareSession': 'Sitzung teilen', 'cmd.toggleContext': 'Kontext-Panel umschalten', 'cmd.toggleTheme': 'Design umschalten', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': 'Kontext', 'context.usage': 'Kontextnutzung', - 'context.permission': 'Berechtigungsmodus', - 'context.files': 'Dateien im Kontext', 'context.input': 'Eingabe', 'context.output': 'Ausgabe', 'context.cacheRead': 'Cache-Lesezugriff', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'API-Schlüssel', 'settings.apiKeyPlaceholder': 'API-Schlüssel eingeben', 'settings.model': 'Modell', - 'settings.modelPlaceholder': 'z.B. claude-sonnet-4-20250514', 'settings.permissionMode': 'Berechtigungsmodus', 'settings.language': 'Sprache', 'settings.identity': 'Identität', - 'settings.identityPlaceholder': 'Ihr Name oder Alias', - 'settings.version': 'Version', 'settings.save': 'Speichern', 'settings.saved': 'Gespeichert!', 'settings.saving': 'Wird gespeichert...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': 'Anwenden', // Onboarding - 'onboarding.title': 'Willkommen bei GGCode', - 'onboarding.subtitle': 'Starten Sie in wenigen Schritten', 'onboarding.next': 'Weiter', 'onboarding.back': 'Zurück', 'onboarding.getStarted': 'Loslegen', - 'onboarding.step.vendor': 'KI-Anbieter wählen', - 'onboarding.step.apiKey': 'API-Schlüssel eingeben', - 'onboarding.step.configure': 'Konfigurieren', 'onboarding.vendorHint': 'Wählen Sie den KI-Anbieter, den Sie verwenden möchten', - 'onboarding.apiKeyHint': 'Ihr API-Schlüssel wird lokal gespeichert und nie an unsere Server gesendet', 'onboarding.configHint': 'Passen Sie diese Einstellungen an oder behalten Sie die Standardwerte', - 'onboarding.skip': 'Setup überspringen', - 'onboarding.workDir': 'Arbeitsverzeichnis', - 'onboarding.browse': 'Durchsuchen', - 'onboarding.workDirHint': 'Wählen Sie das Projektverzeichnis, in dem Sie arbeiten möchten', 'onboarding.welcome': 'Willkommen bei GGCode', 'onboarding.selectDirHint': 'Wählen Sie ein Projektverzeichnis, um zu beginnen', 'onboarding.chooseDir': 'Verzeichnis wählen', 'onboarding.modeSupervised': 'Überwacht', 'onboarding.modeSupervisedDesc': 'Jeden Werkzeugaufruf vor der Ausführung prüfen und genehmigen', - 'onboarding.modeAuto': 'Auto', - 'onboarding.modeAutoDesc': 'Schreibgeschützte Werkzeuge automatisch genehmigen, destruktive Vorgänge bestätigen', 'onboarding.modeBypass': 'Bypass', 'onboarding.modeBypassDesc': 'Alle Werkzeuge automatisch genehmigen, keine Bestätigung erforderlich', - 'onboarding.modeAutopilot': 'Autopilot', - 'onboarding.modeAutopilotDesc': 'Vollautomatisch — Agent läuft ohne jegliche Bestätigung', 'onboarding.fetchingModels': 'Wird abgerufen...', 'onboarding.fetchModels': 'Modelle abrufen', 'onboarding.noModelsFound': 'Keine Modelle gefunden. Modellnamen manuell eingeben.', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'Über GGCode', - 'about.version': 'Version', 'about.description': 'KI-Coding-Agent für das Terminal', - 'about.close': 'Schließen', // PairingCodeDialog 'pairing.title': 'Gerät koppeln', - 'pairing.code': 'Kopplungscode', - 'pairing.expiresIn': 'Läuft ab in {n}s', 'pairing.close': 'Schließen', // ShareDialog 'share.title': 'Sitzung teilen', - 'share.connectUrl': 'Verbindungs-URL', - 'share.qrCode': 'QR-Code', 'share.copy': 'Kopieren', 'share.copied': 'Kopiert!', - 'share.openInBrowser': 'Im Browser öffnen', 'share.stopSharing': 'Teilen stoppen', 'share.generating': 'Wird generiert...', - 'share.scanQr': 'QR-Code scannen zum Verbinden', - 'share.activeDevices': '{n} Gerät(e) verbunden', // IMManagement 'im.title': 'IM-Adapter', @@ -281,55 +247,23 @@ const en = { 'im.unbound': 'Ungebunden', 'im.online': 'Online', 'im.offline': 'Offline', - 'im.muted': 'Stummgeschaltet', 'im.mute': 'Stummschalten', 'im.unmute': 'Stummschaltung aufheben', - 'im.delete': 'Löschen', - 'im.configure': 'Konfigurieren', 'im.platform': 'Plattform', 'im.name': 'Name', - 'im.workspace': 'Workspace', - 'im.enabled': 'Aktiviert', 'im.save': 'Speichern', 'im.cancel': 'Abbrechen', 'im.selectPlatform': 'Plattform wählen...', - 'im.adapterName': 'Adaptername', - 'im.adapterNamePlaceholder': 'z.B. Mein Slack', - 'im.bindToWorkspace': 'An Workspace binden', - 'im.enabledHint': 'Diesen Adapter aktivieren', - 'im.pairing': 'Wird gekoppelt...', - 'im.paired': 'Gekoppelt', - 'im.notPaired': 'Nicht gekoppelt', - 'im.startPairing': 'Kopplung starten', // MCPServers 'mcp.title': 'MCP-Server', 'mcp.add': 'Hinzufügen', - 'mcp.noServers': 'Keine MCP-Server konfiguriert. Klicken Sie auf "Hinzufügen", um einen hinzuzufügen.', 'mcp.name': 'Name', - 'mcp.command': 'Befehl', - 'mcp.args': 'Argumente', - 'mcp.url': 'URL', - 'mcp.headers': 'Header', - 'mcp.type': 'Typ', - 'mcp.typeLocal': 'Lokal (stdio)', - 'mcp.typeRemote': 'Remote (HTTP)', - 'mcp.enabled': 'Aktiviert', - 'mcp.save': 'Speichern', 'mcp.cancel': 'Abbrechen', - 'mcp.delete': 'Löschen', - 'mcp.namePlaceholder': 'Servername', - 'mcp.commandPlaceholder': 'z.B. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Argumente (leerzeichengetrennt)', - 'mcp.urlPlaceholder': 'z.B. http://localhost:3000/mcp', - 'mcp.selectType': 'Typ wählen...', // FileBrowser 'files.fileTooLarge': 'Datei zu groß für Vorschau (>2MB)', 'files.binaryFile': 'Binärdatei', - 'files.imagePreview': 'Bildvorschau', - 'files.noPreview': 'Keine Vorschau verfügbar', - 'files.openInEditor': 'Im Editor öffnen', // DebugConsole 'debug.title': 'Debug-Konsole', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'Agent & Sicherheit', - 'settings.workspaceAccess': 'Workspace & Dateizugriff', 'settings.appearance': 'Erscheinungsbild', 'settings.integrations': 'Integrationen', - 'settings.languageServers': 'Sprachserver', 'settings.diagnostics': 'Diagnose', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Lifecycle-Hooks', 'settings.hooksAdd': '+ Hinzufügen', 'settings.hooksEdit': 'bearbeiten', 'settings.hooksDelete': 'löschen', 'settings.hooksInject': 'injizieren', 'settings.hooksNone': '(keine)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Übereinstimmung (* für alle)', 'settings.hooksType': 'Typ (command/http)', 'settings.hooksCommand': 'Befehl', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': 'Übereinstimmungsmodus', 'settings.hooksTesterTitle': 'Regex-Tester', 'settings.hooksTesterPlaceholder': 'z.B. run_command git push', - 'settings.hooksTestBtn': 'Testen', 'settings.hooksTestMatched': 'Übereinstimmung!', 'settings.hooksTestNotMatched': 'Keine Übereinstimmung', 'settings.hooksTestError': 'Fehler: {0}', 'settings.addCustomEndpoint': 'Benutzerdefinierten Endpunkt hinzufügen', 'settings.configured': 'Konfiguriert', - 'settings.install': 'Installieren:', 'settings.saveLimits': 'Limits speichern', 'settings.refreshModels': 'Modelle aus API aktualisieren', 'settings.versionPlaceholder': 'Versionszeichenkette...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': 'Design', 'settings.themeLight': 'Hell', 'settings.themeDark': 'Dunkel', - 'settings.themeSystem': 'System', - 'settings.integrationsHint': 'Integrationsfunktionen für schnellen Zugriff auf Werkzeuge aktivieren.', 'settings.lspHint': 'Language Server Protocol (LSP)-Server bieten dem Agenten Code-Intelligenz: Gehe-zu-Definition, Verweise finden, Hover-Info, Diagnose und mehr.', 'settings.lspNoServers': 'Keine Sprachserver in diesem Workspace erkannt.', 'settings.lspConfigured': '(konfiguriert)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': 'Fehler kopieren', // Permission mode dropdown options - 'mode.supervisedDesc': 'Überwacht (jedes Werkzeug bestätigen)', - 'mode.autoDesc': 'Auto (nur sichere Werkzeuge)', - 'mode.planDesc': 'Plan (schreibgeschützt)', - 'mode.bypassDesc': 'Bypass (die meisten Werkzeuge automatisch genehmigen)', - 'mode.autopilotDesc': 'Autopilot (hohe Autonomie)', // Common dropdown placeholders - 'common.chooseVendor': 'Anbieter wählen...', - 'common.chooseEndpoint': 'Endpunkt wählen...', 'common.chooseModel': 'Modell wählen...', - 'common.english': 'Englisch', // ChatView activity descriptions 'chat.activity.reading': 'Dateien werden gelesen...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': 'Sub-Agent läuft...', 'chat.activity.waiting': 'Warte auf Eingabe...', 'chat.activity.saving': 'Speicher wird gespeichert...', - 'chat.activity.writingResponse': 'Antwort wird geschrieben...', 'chat.activity.planMode': 'Plan-Modus wird aufgerufen...', // ChatView UI labels 'chat.findPlaceholder': 'In Konversation suchen...', - 'chat.noModel': 'Kein Modell', - 'chat.selectWorkspace': 'Workspace wählen', 'chat.sending': 'Wird gesendet...', 'chat.failedToSend': 'Senden fehlgeschlagen', 'chat.nickname': 'Spitzname', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': 'Denkvorgang kopieren', 'chat.title.editResend': 'Bearbeiten & erneut senden', 'chat.title.copyMessage': 'Nachricht kopieren', - 'chat.title.regenerate': 'Antwort neu generieren', - 'chat.title.copyResult': 'Ergebnis kopieren', - 'chat.title.copyError': 'Fehler kopieren', 'chat.title.teamBoard': 'Team-Board öffnen', - 'chat.title.editIdentity': 'Klicken, um Ihren Spitznamen, Ihre Rolle und Ihr Team zu bearbeiten', // MCPServers 'mcp.transport': 'Transport', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': 'Noch keine Direktnachrichten.', 'lanchat.broadcastPlaceholder': 'An alle senden...', 'lanchat.dmPlaceholder': 'Nachricht an {name}...', - 'lanchat.enterNickname': 'Neuen Spitznamen eingeben:', // ApprovalDialog hints - 'approval.denyHint': 'Ablehnen', - 'approval.allowHint': 'Erlauben', - 'approval.alwaysHint': 'Immer', - 'approval.copyToClipboard': 'In Zwischenablage kopieren', - 'approval.ariaLabel': 'Werkzeuggenehmigung', // AskUserDialog 'askUser.typeAnswer': 'Antwort eingeben...', - 'askUser.additionalNotes': 'Zusätzliche Hinweise (optional)', - 'askUser.close': 'Dialog schließen', - 'askUser.cancel': 'Abbrechen', // IMManagement 'im.editAdapter': 'Bearbeiten: {name}', - 'im.addTitle': 'IM-Adapter hinzufügen', - 'im.adapterNameRequired': 'Adapternamen eingeben', // FileBrowser 'files.searchPlaceholder': 'Dateien durchsuchen...', 'files.officeDocument': 'Office-Dokument', 'files.openExternal': 'Mit externer Anwendung öffnen zum Anzeigen', - 'files.renderingMermaid': 'Diagramm wird gerendert...', 'files.htmlPreview': 'HTML-Vorschau', // Dialogs / About - 'about.checkUpdates': 'Nach Updates suchen', - 'about.checking': 'Wird geprüft...', - 'about.newVersion': 'Neue Version verfügbar: v{version}', - 'about.download': 'Herunterladen', // TopDragBar (window controls) - 'window.close': 'Schließen', - 'window.minimize': 'Minimieren', - 'window.maximize': 'Maximieren', - 'window.restore': 'Fenster wiederherstellen', // StatusBar 'status.toggleContext': 'Kontext-Panel umschalten', // TeamBoard 'team.boardTitle': 'Team-Board', - 'team.closeBoard': 'Team-Board schließen', // Common shared 'common.dismiss': 'Benachrichtigung verwerfen', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': 'Anbieter wählen...', 'settings.chooseEndpoint': 'Endpunkt wählen...', 'settings.modeSupervised': 'Überwacht (jedes Werkzeug bestätigen)', - 'settings.modeAuto': 'Auto (nur sichere Werkzeuge)', - 'settings.modePlan': 'Plan (schreibgeschützt)', 'settings.modeBypass': 'Bypass (sichere Werkzeuge automatisch genehmigen)', 'settings.modeBypassAll': 'Bypass (die meisten Werkzeuge automatisch genehmigen)', - 'settings.modeAutopilot': 'Autopilot (alles genehmigen)', - 'settings.modeAutopilotHigh': 'Autopilot (hohe Autonomie)', 'settings.saveModeHint': 'Speichern Sie, um diesen Standardmodus zu persistieren. Laufzeitmodusänderungen folgen weiterhin der normalen Modusbehandlung der App.', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': 'Sie können dies später in den Einstellungen ändern', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Jede Werkzeugausführung prüfen und genehmigen', - 'settings.modeDescAuto': 'Nur sichere Vorgänge automatisch genehmigen', - 'settings.modeDescPlan': 'Code erkunden ohne Änderungen vorzunehmen', - 'settings.modeDescBypass': 'Die meisten Vorgänge automatisch genehmigen', - 'settings.modeDescAutopilot': 'Volle Autonomie mit minimalen Unterbrechungen', 'settings.agentSafetyHint': 'Überprüfen Sie, wie viel Autonomie der Desktop-Agent aktuell hat. Dies fasst bestehendes Verhalten zusammen, ohne erweiterte Werkzeugrichtlinien zu ändern.', 'settings.workspaceAccessHint': 'Dateiwerkzeuge arbeiten innerhalb des aktuellen Workspace und der konfigurierten erlaubten Verzeichnisse. Die erweiterte Bearbeitung erlaubter Verzeichnisse ist hier bewusst noch nicht freigegeben, um versehentliche Änderungen an Sicherheitsgrenzen zu vermeiden.', 'settings.appearanceHint': 'Passen Sie das visuelle Design an. Die App folgt standardmäßig Ihrer Systemeinstellung.', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': 'Die meisten Vorgänge sind mit weniger Bestätigungen erlaubt. Verwenden Sie dies nur in vertrauenswürdigen Workspaces, in denen Sie mit schnellerer Ausführung einverstanden sind.', 'settings.modeDescFullAutopilot': 'Der Agent hat hohe Autonomie und kann automatisch viele Schritte ausführen. Überprüfen Sie den Workspace-Status, bevor Sie ihn für wichtigen Code verwenden.', 'settings.modeDescFullSupervised': 'Der Agent fragt vor nicht spezifizierten Werkzeugaktionen. Dies ist ein ausgewogener Standard für die normale Desktop-Nutzung.', - 'files.emptyDirectory': 'Leeres Verzeichnis', - 'files.noMatchingFiles': 'Keine übereinstimmenden Dateien', - 'files.selectToPreview': 'Datei zur Vorschau auswählen', 'approval.riskHigh': 'Hohes Risiko', 'approval.riskMedium': 'Mittleres Risiko', 'approval.riskLow': 'Niedriges Risiko', - 'debug.filterLogs': 'Debug-Protokolle filtern', - 'sidebar.ctxOpen': 'Öffnen', - 'sidebar.ctxRename': 'Umbenennen', - 'sidebar.ctxCopyId': 'ID kopieren', - 'sidebar.ctxDelete': 'Löschen', - 'sidebar.ctxPin': 'Anheften', - 'sidebar.ctxUnpin': 'Lösen', - 'sidebar.startConversation': 'Konversation starten', - 'sidebar.noMatching': 'Keine Sitzungen entsprechen "{search}"', - 'sidebar.clearSearch': 'Suche löschen', - 'sidebar.noSessionsYet': 'Noch keine Sitzungen', - 'chat.ctxCopy': 'Kopieren', - 'chat.ctxEdit': 'Bearbeiten', - 'chat.ctxRegenerate': 'Neu generieren', - 'chat.runDuration': 'Dauer', - 'chat.runTools': 'Werkzeuge', - 'chat.runFiles': 'Dateien', - 'chat.runErrors': 'Fehler', - 'chat.runTokens': 'Tokens', - 'chat.dropImages': 'Bilder zum Anhängen ablegen', - 'chat.slashHelp': 'Verfügbare Befehle anzeigen', - 'chat.slashModel': 'KI-Modell wechseln/anzeigen', - 'chat.slashMode': 'Berechtigungsmodus ändern (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Chat-Verlauf löschen', - 'chat.slashCompact': 'Kontextfenster komprimieren', - 'chat.slashContext': 'Kontextverwendung anzeigen', - 'chat.slashCost': 'Token-Nutzung und Kosten anzeigen', - 'chat.slashCopy': 'Konversation in Zwischenablage kopieren', - 'chat.slashExport': 'Konversation als Markdown herunterladen', - 'chat.slashSessions': 'Sitzungen durchsuchen und wechseln', - 'chat.slashConfig': 'Konfiguration anzeigen oder bearbeiten', - 'chat.slashStatus': 'Runtime-Status anzeigen', - 'chat.slashSkills': 'Verfügbare Skills durchsuchen', - 'chat.slashMcp': 'MCP-Server verwalten', - 'chat.slashReview': 'Codeänderungen überprüfen (git diff)', - 'chat.slashDiff': 'Working-Tree-Diff anzeigen', - 'chat.slashReflect': 'Selbstreflexion auslösen', - 'chat.slashUndo': 'Letzte Dateibearbeitung rückgängig machen', - 'chat.slashRegenerate': 'Letzte Antwort neu generieren', - 'chat.slashTodo': 'Aufgabenverwaltung', - 'chat.slashInit': 'Projekt-Gedächtnisdateien initialisieren', - 'chat.slashLang': 'Oberflächensprache ändern', - 'chat.slashBug': 'Fehler melden', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Releases', - 'dialogs.linkIssues': 'Issues', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'Lokaler Prozess via stdin/stdout', 'mcp.descHttp': 'Remote-Server via HTTP (Streamable HTTP / SSE)', 'mcp.descWs': 'Remote-Server via WebSocket', - 'im.qrAuthHint': 'Diese Plattform verwendet QR-Code-Authentifizierung. Speichern Sie, um den Kopplungsprozess zu starten.', - 'im.noConfigurableFields': 'Keine konfigurierbaren Felder für diesen Adapter.', - 'pairing.enterCode': 'Geben Sie diesen Code in Ihrem IM-Kanal ein:', - 'lanchat.noContactsOnline': 'Keine Kontakte online', - 'context.noImAdapters': 'Keine gebundenen IM-Adapter', - 'settings.maxTokensHint': 'Auf 0 setzen oder leer lassen für automatische Erkennung aus Modellspezifikationen.', 'askUser.notesPlaceholder': 'Zusätzliche Notizen (optional)', 'chat.menuCopy': 'Kopieren', 'chat.menuEdit': 'Bearbeiten', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/en.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/en.ts index b495800f6..1e281a060 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/en.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/en.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'MCP Servers', 'nav.settings': 'Settings', 'nav.debug': 'Debug Console', - 'nav.lanchat': 'LAN Chat', 'nav.cron': 'Scheduled Tasks', 'cron.title': 'Scheduled Tasks', 'cron.newTask': 'New Task', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': 'New Session', 'sidebar.untitled': 'Untitled', 'sidebar.delete': 'Delete', - 'sidebar.loading': 'Loading...', 'sidebar.group.pinned': 'Pinned', 'sidebar.group.today': 'Today', 'sidebar.group.yesterday': 'Yesterday', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': 'Ready', 'status.thinking': 'Thinking...', - 'status.streaming': 'Streaming', 'status.offline': 'Offline', 'status.zoomIn': 'Zoom In (Cmd+)', 'status.zoomOut': 'Zoom Out (Cmd-)', @@ -98,9 +95,6 @@ const en = { 'cmd.noResults': 'No matching commands', 'cmd.newSession': 'New Session', 'cmd.searchSessions': 'Search Sessions', - 'cmd.clearHistory': 'Clear History', - 'cmd.compactContext': 'Compact Context', - 'cmd.undoLast': 'Undo Last', 'cmd.shareSession': 'Share Session', 'cmd.exportMarkdown': 'Export Session as Markdown', 'cmd.exportJSON': 'Export Session as JSON', @@ -175,8 +169,6 @@ const en = { // ContextPanel 'context.title': 'Context', 'context.usage': 'Context Usage', - 'context.permission': 'Permission Mode', - 'context.files': 'Files in Context', 'context.input': 'Input', 'context.output': 'Output', 'context.cacheRead': 'Cache Read', @@ -196,12 +188,9 @@ const en = { 'settings.apiKey': 'API Key', 'settings.apiKeyPlaceholder': 'Enter your API key', 'settings.model': 'Model', - 'settings.modelPlaceholder': 'e.g. claude-sonnet-4-20250514', 'settings.permissionMode': 'Permission Mode', 'settings.language': 'Language', 'settings.identity': 'Identity', - 'settings.identityPlaceholder': 'Your name or alias', - 'settings.version': 'Version', 'settings.save': 'Save', 'settings.saved': 'Saved!', 'settings.saving': 'Saving...', @@ -211,32 +200,18 @@ const en = { 'settings.impersonateApply': 'Apply', // Onboarding - 'onboarding.title': 'Welcome to GGCode', - 'onboarding.subtitle': 'Get started in a few steps', 'onboarding.next': 'Next', 'onboarding.back': 'Back', 'onboarding.getStarted': 'Get Started', - 'onboarding.step.vendor': 'Choose AI Provider', - 'onboarding.step.apiKey': 'Enter API Key', - 'onboarding.step.configure': 'Configure', 'onboarding.vendorHint': 'Select the AI provider you want to use', - 'onboarding.apiKeyHint': 'Your API key is stored locally and never sent to our servers', 'onboarding.configHint': 'Adjust these settings or keep the defaults', - 'onboarding.skip': 'Skip Setup', - 'onboarding.workDir': 'Working Directory', - 'onboarding.browse': 'Browse', - 'onboarding.workDirHint': 'Select the project directory to work in', 'onboarding.welcome': 'Welcome to GGCode', 'onboarding.selectDirHint': 'Select a project directory to get started', 'onboarding.chooseDir': 'Choose Directory', 'onboarding.modeSupervised': 'Supervised', 'onboarding.modeSupervisedDesc': 'Review and approve every tool call before execution', - 'onboarding.modeAuto': 'Auto', - 'onboarding.modeAutoDesc': 'Auto-approve read-only tools, confirm destructive operations', 'onboarding.modeBypass': 'Bypass', 'onboarding.modeBypassDesc': 'Auto-approve all tools, no confirmation needed', - 'onboarding.modeAutopilot': 'Autopilot', - 'onboarding.modeAutopilotDesc': 'Fully autonomous — agent runs without any confirmation', 'onboarding.fetchingModels': 'Fetching...', 'onboarding.fetchModels': 'Fetch Models', 'onboarding.noModelsFound': 'No models found. Enter a model name manually.', @@ -259,27 +234,18 @@ const en = { // Dialogs (About) 'about.title': 'About GGCode', - 'about.version': 'Version', 'about.description': 'AI coding agent for the terminal', - 'about.close': 'Close', // PairingCodeDialog 'pairing.title': 'Pair Device', - 'pairing.code': 'Pairing Code', - 'pairing.expiresIn': 'Expires in {n}s', 'pairing.close': 'Close', // ShareDialog 'share.title': 'Share Session', - 'share.connectUrl': 'Connect URL', - 'share.qrCode': 'QR Code', 'share.copy': 'Copy', 'share.copied': 'Copied!', - 'share.openInBrowser': 'Open in Browser', 'share.stopSharing': 'Stop Sharing', 'share.generating': 'Generating...', - 'share.scanQr': 'Scan QR code to connect', - 'share.activeDevices': '{n} device(s) connected', // IMManagement 'im.title': 'IM Adapters', @@ -290,55 +256,23 @@ const en = { 'im.unbound': 'Unbound', 'im.online': 'Online', 'im.offline': 'Offline', - 'im.muted': 'Muted', 'im.mute': 'Mute', 'im.unmute': 'Unmute', - 'im.delete': 'Delete', - 'im.configure': 'Configure', 'im.platform': 'Platform', 'im.name': 'Name', - 'im.workspace': 'Workspace', - 'im.enabled': 'Enabled', 'im.save': 'Save', 'im.cancel': 'Cancel', 'im.selectPlatform': 'Select platform...', - 'im.adapterName': 'Adapter Name', - 'im.adapterNamePlaceholder': 'e.g. My Slack', - 'im.bindToWorkspace': 'Bind to Workspace', - 'im.enabledHint': 'Enable this adapter', - 'im.pairing': 'Pairing...', - 'im.paired': 'Paired', - 'im.notPaired': 'Not Paired', - 'im.startPairing': 'Start Pairing', // MCPServers 'mcp.title': 'MCP Servers', 'mcp.add': 'Add', - 'mcp.noServers': 'No MCP servers configured. Click "Add" to add one.', 'mcp.name': 'Name', - 'mcp.command': 'Command', - 'mcp.args': 'Arguments', - 'mcp.url': 'URL', - 'mcp.headers': 'Headers', - 'mcp.type': 'Type', - 'mcp.typeLocal': 'Local (stdio)', - 'mcp.typeRemote': 'Remote (HTTP)', - 'mcp.enabled': 'Enabled', - 'mcp.save': 'Save', 'mcp.cancel': 'Cancel', - 'mcp.delete': 'Delete', - 'mcp.namePlaceholder': 'Server name', - 'mcp.commandPlaceholder': 'e.g. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Arguments (space-separated)', - 'mcp.urlPlaceholder': 'e.g. http://localhost:3000/mcp', - 'mcp.selectType': 'Select type...', // FileBrowser 'files.fileTooLarge': 'File too large to preview (>2MB)', 'files.binaryFile': 'Binary file', - 'files.imagePreview': 'Image Preview', - 'files.noPreview': 'No preview available', - 'files.openInEditor': 'Open in Editor', // DebugConsole 'debug.title': 'Debug Console', @@ -368,19 +302,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'Agent & Safety', - 'settings.workspaceAccess': 'Workspace & file access', 'settings.appearance': 'Appearance', 'settings.integrations': 'Integrations', - 'settings.languageServers': 'Language Servers', 'settings.diagnostics': 'Diagnostics', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Lifecycle Hooks', 'settings.hooksAdd': '+ Add', 'settings.hooksEdit': 'edit', 'settings.hooksDelete': 'del', 'settings.hooksInject': 'inject', 'settings.hooksNone': '(none)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Match (* for all)', 'settings.hooksType': 'Type (command/http)', 'settings.hooksCommand': 'Command', @@ -402,13 +332,11 @@ const en = { 'settings.hooksMatchMode': 'Match Mode', 'settings.hooksTesterTitle': 'Regex Tester', 'settings.hooksTesterPlaceholder': 'e.g. run_command git push', - 'settings.hooksTestBtn': 'Test', 'settings.hooksTestMatched': 'Matched!', 'settings.hooksTestNotMatched': 'Not matched', 'settings.hooksTestError': 'Error: {0}', 'settings.addCustomEndpoint': 'Add Custom Endpoint', 'settings.configured': 'Configured', - 'settings.install': 'Install:', 'settings.saveLimits': 'Save limits', 'settings.refreshModels': 'Refresh models from API', 'settings.versionPlaceholder': 'Version string...', @@ -443,8 +371,6 @@ const en = { 'settings.theme': 'Theme', 'settings.themeLight': 'Light', 'settings.themeDark': 'Dark', - 'settings.themeSystem': 'System', - 'settings.integrationsHint': 'Enable integration features for quick access to tools.', 'settings.lspHint': 'Language Server Protocol (LSP) servers provide the agent with code intelligence: go-to-definition, find references, hover info, diagnostics, and more.', 'settings.lspNoServers': 'No language servers detected in this workspace.', 'settings.lspConfigured': '(configured)', @@ -472,17 +398,9 @@ const en = { 'chat.copyError': 'Copy error', // Permission mode dropdown options - 'mode.supervisedDesc': 'Supervised (confirm each tool)', - 'mode.autoDesc': 'Auto (safe tools only)', - 'mode.planDesc': 'Plan (read-only)', - 'mode.bypassDesc': 'Bypass (auto-approve most tools)', - 'mode.autopilotDesc': 'Autopilot (high autonomy)', // Common dropdown placeholders - 'common.chooseVendor': 'Choose vendor...', - 'common.chooseEndpoint': 'Choose endpoint...', 'common.chooseModel': 'Choose model...', - 'common.english': 'English', // ChatView activity descriptions 'chat.activity.reading': 'Reading files...', @@ -497,13 +415,10 @@ const en = { 'chat.activity.subagent': 'Running sub-agent...', 'chat.activity.waiting': 'Waiting for input...', 'chat.activity.saving': 'Saving memory...', - 'chat.activity.writingResponse': 'Writing response...', 'chat.activity.planMode': 'Entering plan mode...', // ChatView UI labels 'chat.findPlaceholder': 'Find in conversation...', - 'chat.noModel': 'No model', - 'chat.selectWorkspace': 'Select workspace', 'chat.sending': 'Sending...', 'chat.failedToSend': 'Failed to send', 'chat.nickname': 'Nickname', @@ -527,11 +442,7 @@ const en = { 'chat.title.copyReasoning': 'Copy reasoning', 'chat.title.editResend': 'Edit & resend', 'chat.title.copyMessage': 'Copy message', - 'chat.title.regenerate': 'Regenerate response', - 'chat.title.copyResult': 'Copy result', - 'chat.title.copyError': 'Copy error', 'chat.title.teamBoard': 'Open team board', - 'chat.title.editIdentity': 'Click to edit your nickname, role, and team', // MCPServers 'mcp.transport': 'Transport', @@ -562,51 +473,30 @@ const en = { 'lanchat.noMessagesDM': 'No direct messages yet.', 'lanchat.broadcastPlaceholder': 'Broadcast to all...', 'lanchat.dmPlaceholder': 'Message {name}...', - 'lanchat.enterNickname': 'Enter new nickname:', // ApprovalDialog hints - 'approval.denyHint': 'Deny', - 'approval.allowHint': 'Allow', - 'approval.alwaysHint': 'Always', - 'approval.copyToClipboard': 'Copy to clipboard', - 'approval.ariaLabel': 'Tool approval', // AskUserDialog 'askUser.typeAnswer': 'Type your answer...', - 'askUser.additionalNotes': 'Additional notes (optional)', - 'askUser.close': 'Close dialog', - 'askUser.cancel': 'Cancel', // IMManagement 'im.editAdapter': 'Edit: {name}', - 'im.addTitle': 'Add IM adapter', - 'im.adapterNameRequired': 'Enter an adapter name', // FileBrowser 'files.searchPlaceholder': 'Search files...', 'files.officeDocument': 'Office document', 'files.openExternal': 'Open with external application to view', - 'files.renderingMermaid': 'Rendering diagram...', 'files.htmlPreview': 'HTML Preview', // Dialogs / About - 'about.checkUpdates': 'Check for Updates', - 'about.checking': 'Checking...', - 'about.newVersion': 'New version available: v{version}', - 'about.download': 'Download', // TopDragBar (window controls) - 'window.close': 'Close', - 'window.minimize': 'Minimize', - 'window.maximize': 'Maximize', - 'window.restore': 'Restore window', // StatusBar 'status.toggleContext': 'Toggle context panel', // TeamBoard 'team.boardTitle': 'Team Board', - 'team.closeBoard': 'Close team board', // Common shared 'common.dismiss': 'Dismiss notification', @@ -659,12 +549,8 @@ const en = { 'settings.chooseVendor': 'Choose vendor...', 'settings.chooseEndpoint': 'Choose endpoint...', 'settings.modeSupervised': 'Supervised (confirm each tool)', - 'settings.modeAuto': 'Auto (safe tools only)', - 'settings.modePlan': 'Plan (read-only)', 'settings.modeBypass': 'Bypass (auto-approve safe tools)', 'settings.modeBypassAll': 'Bypass (auto-approve most tools)', - 'settings.modeAutopilot': 'Autopilot (approve everything)', - 'settings.modeAutopilotHigh': 'Autopilot (high autonomy)', 'settings.saveModeHint': 'Save to persist this default mode. Runtime mode changes still follow the app\'s normal mode handling.', // Dialogs @@ -698,11 +584,6 @@ const en = { 'onboarding.languageHint': 'You can change this later in Settings', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Review and approve each tool execution', - 'settings.modeDescAuto': 'Automatically approve safe operations only', - 'settings.modeDescPlan': 'Explore code without making changes', - 'settings.modeDescBypass': 'Automatically approve most operations', - 'settings.modeDescAutopilot': 'Full autonomy with minimal interruptions', 'settings.agentSafetyHint': 'Review how much autonomy the desktop agent currently has. This summarizes existing behavior without changing advanced tool policies.', 'settings.workspaceAccessHint': 'File tools operate within the current workspace and configured allowed directories. Advanced allowed-directory editing is intentionally not exposed here yet to avoid changing safety boundaries accidentally.', 'settings.appearanceHint': 'Customize the visual theme. The app follows your system preference by default.', @@ -761,9 +642,6 @@ const en = { 'toast.copiedMessages': 'Copied {count} messages to clipboard', // FileBrowser - 'files.emptyDirectory': 'Empty directory', - 'files.noMatchingFiles': 'No matching files', - 'files.selectToPreview': 'Select a file to preview', // ApprovalDialog risk levels 'approval.riskHigh': 'High Risk', @@ -771,59 +649,12 @@ const en = { 'approval.riskLow': 'Low Risk', // DebugConsole - 'debug.filterLogs': 'Filter debug logs', // Sidebar context menu - 'sidebar.ctxOpen': 'Open', - 'sidebar.ctxRename': 'Rename', - 'sidebar.ctxCopyId': 'Copy ID', - 'sidebar.ctxDelete': 'Delete', - 'sidebar.ctxPin': 'Pin', - 'sidebar.ctxUnpin': 'Unpin', - 'sidebar.startConversation': 'Start a conversation', - 'sidebar.noMatching': 'No sessions matching "{search}"', - 'sidebar.clearSearch': 'Clear search', - 'sidebar.noSessionsYet': 'No sessions yet', // ChatView context menu & run stats - 'chat.ctxCopy': 'Copy', - 'chat.ctxEdit': 'Edit', - 'chat.ctxRegenerate': 'Regenerate', - 'chat.runDuration': 'Duration', - 'chat.runTools': 'Tools', - 'chat.runFiles': 'Files', - 'chat.runErrors': 'Errors', - 'chat.runTokens': 'Tokens', - 'chat.dropImages': 'Drop images to attach', - 'chat.slashHelp': 'Show available commands', - 'chat.slashModel': 'Switch or view AI model', - 'chat.slashMode': 'Change permission mode (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Clear chat history', - 'chat.slashCompact': 'Compact context window', - 'chat.slashContext': 'Show context usage details', - 'chat.slashCost': 'Show token usage and cost', - 'chat.slashCopy': 'Copy conversation to clipboard', - 'chat.slashExport': 'Download conversation as markdown file', - 'chat.slashSessions': 'Browse and switch sessions', - 'chat.slashConfig': 'View or edit configuration', - 'chat.slashStatus': 'Show runtime status', - 'chat.slashSkills': 'Browse available skills', - 'chat.slashMcp': 'Manage MCP servers', - 'chat.slashReview': 'Review code changes (git diff)', - 'chat.slashDiff': 'Show working tree diff', - 'chat.slashReflect': 'Trigger self-reflection', - 'chat.slashUndo': 'Undo last file edit', - 'chat.slashRegenerate': 'Regenerate last response', - 'chat.slashTodo': 'Task management', - 'chat.slashInit': 'Initialize project memory files', - 'chat.slashLang': 'Change interface language', - 'chat.slashBug': 'Report a bug', // Dialogs links - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Releases', - 'dialogs.linkIssues': 'Issues', - 'dialogs.linkDiscord': 'Discord', // MCPServers transports 'mcp.transportHttp': 'HTTP / SSE', @@ -832,20 +663,14 @@ const en = { 'mcp.descWs': 'Remote server via WebSocket', // IMManagement - 'im.qrAuthHint': 'This platform uses QR code authentication. Save to start the pairing process.', - 'im.noConfigurableFields': 'No configurable fields for this adapter.', // PairingCodeDialog - 'pairing.enterCode': 'Enter this code in your IM channel:', // LanChatView - 'lanchat.noContactsOnline': 'No contacts online', // ContextPanel - 'context.noImAdapters': 'No bound IM adapters', // SettingsPage - 'settings.maxTokensHint': 'Set to 0 or leave empty for auto-detection from model specs.', 'settings.oauthConnected': 'Connected', 'settings.oauthNotConnected': 'Not connected', 'settings.oauthLoggingIn': 'Logging in...', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/es.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/es.ts index 59ecefb6a..69414fce9 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/es.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/es.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'Servidores MCP', 'nav.settings': 'Configuración', 'nav.debug': 'Consola de depuración', - 'nav.lanchat': 'Chat LAN', 'nav.cron': 'Tareas Programadas', 'cron.title': 'Tareas Programadas', 'cron.newTask': 'Nueva Tarea', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': 'Nueva sesión', 'sidebar.untitled': 'Sin título', 'sidebar.delete': 'Eliminar', - 'sidebar.loading': 'Cargando...', 'sidebar.group.pinned': 'Fijadas', 'sidebar.group.today': 'Hoy', 'sidebar.group.yesterday': 'Ayer', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': 'Listo', 'status.thinking': 'Pensando...', - 'status.streaming': 'Transmitiendo', 'status.offline': 'Sin conexion', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': 'Exportar sesión como JSON', 'cmd.copyMarkdown': 'Copiar sesión como Markdown', 'cmd.searchSessions': 'Buscar sesiones', - 'cmd.clearHistory': 'Borrar historial', - 'cmd.compactContext': 'Compactar contexto', - 'cmd.undoLast': 'Deshacer último', 'cmd.shareSession': 'Compartir sesión', 'cmd.toggleContext': 'Alternar panel de contexto', 'cmd.toggleTheme': 'Alternar tema', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': 'Contexto', 'context.usage': 'Uso de contexto', - 'context.permission': 'Modo de permiso', - 'context.files': 'Archivos en contexto', 'context.input': 'Entrada', 'context.output': 'Salida', 'context.cacheRead': 'Lectura de caché', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'Clave API', 'settings.apiKeyPlaceholder': 'Ingresa tu clave API', 'settings.model': 'Modelo', - 'settings.modelPlaceholder': 'ej. claude-sonnet-4-20250514', 'settings.permissionMode': 'Modo de permiso', 'settings.language': 'Idioma', 'settings.identity': 'Identidad', - 'settings.identityPlaceholder': 'Tu nombre o alias', - 'settings.version': 'Versión', 'settings.save': 'Guardar', 'settings.saved': '¡Guardado!', 'settings.saving': 'Guardando...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': 'Aplicar', // Onboarding - 'onboarding.title': 'Bienvenido a GGCode', - 'onboarding.subtitle': 'Empieza en unos pocos pasos', 'onboarding.next': 'Siguiente', 'onboarding.back': 'Atrás', 'onboarding.getStarted': 'Comenzar', - 'onboarding.step.vendor': 'Elegir proveedor de IA', - 'onboarding.step.apiKey': 'Ingresar clave API', - 'onboarding.step.configure': 'Configurar', 'onboarding.vendorHint': 'Selecciona el proveedor de IA que deseas usar', - 'onboarding.apiKeyHint': 'Tu clave API se almacena localmente y nunca se envía a nuestros servidores', 'onboarding.configHint': 'Ajusta estas configuraciones o mantén los valores predeterminados', - 'onboarding.skip': 'Omitir configuración', - 'onboarding.workDir': 'Directorio de trabajo', - 'onboarding.browse': 'Examinar', - 'onboarding.workDirHint': 'Selecciona el directorio del proyecto en el que trabajar', 'onboarding.welcome': 'Bienvenido a GGCode', 'onboarding.selectDirHint': 'Selecciona un directorio de proyecto para comenzar', 'onboarding.chooseDir': 'Elegir directorio', 'onboarding.modeSupervised': 'Supervisado', 'onboarding.modeSupervisedDesc': 'Revisar y aprobar cada llamada de herramienta antes de su ejecución', - 'onboarding.modeAuto': 'Automático', - 'onboarding.modeAutoDesc': 'Aprobar automáticamente herramientas de solo lectura, confirmar operaciones destructivas', 'onboarding.modeBypass': 'Sin restricciones', 'onboarding.modeBypassDesc': 'Aprobar todas las herramientas automáticamente, sin necesidad de confirmación', - 'onboarding.modeAutopilot': 'Piloto automático', - 'onboarding.modeAutopilotDesc': 'Totalmente autónomo — el agente se ejecuta sin ninguna confirmación', 'onboarding.fetchingModels': 'Obteniendo...', 'onboarding.fetchModels': 'Obtener modelos', 'onboarding.noModelsFound': 'No se encontraron modelos. Ingresa un nombre de modelo manualmente.', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'Acerca de GGCode', - 'about.version': 'Versión', 'about.description': 'Agente de programación con IA para la terminal', - 'about.close': 'Cerrar', // PairingCodeDialog 'pairing.title': 'Vincular dispositivo', - 'pairing.code': 'Código de vinculación', - 'pairing.expiresIn': 'Expira en {n}s', 'pairing.close': 'Cerrar', // ShareDialog 'share.title': 'Compartir sesión', - 'share.connectUrl': 'URL de conexión', - 'share.qrCode': 'Código QR', 'share.copy': 'Copiar', 'share.copied': '¡Copiado!', - 'share.openInBrowser': 'Abrir en navegador', 'share.stopSharing': 'Dejar de compartir', 'share.generating': 'Generando...', - 'share.scanQr': 'Escanea el código QR para conectarte', - 'share.activeDevices': '{n} dispositivo(s) conectado(s)', // IMManagement 'im.title': 'Adaptadores IM', @@ -281,55 +247,23 @@ const en = { 'im.unbound': 'Sin vincular', 'im.online': 'En línea', 'im.offline': 'Desconectado', - 'im.muted': 'Silenciado', 'im.mute': 'Silenciar', 'im.unmute': 'Activar sonido', - 'im.delete': 'Eliminar', - 'im.configure': 'Configurar', 'im.platform': 'Plataforma', 'im.name': 'Nombre', - 'im.workspace': 'Espacio de trabajo', - 'im.enabled': 'Habilitado', 'im.save': 'Guardar', 'im.cancel': 'Cancelar', 'im.selectPlatform': 'Seleccionar plataforma...', - 'im.adapterName': 'Nombre del adaptador', - 'im.adapterNamePlaceholder': 'ej. Mi Slack', - 'im.bindToWorkspace': 'Vincular al espacio de trabajo', - 'im.enabledHint': 'Habilitar este adaptador', - 'im.pairing': 'Vinculando...', - 'im.paired': 'Vinculado', - 'im.notPaired': 'No vinculado', - 'im.startPairing': 'Iniciar vinculación', // MCPServers 'mcp.title': 'Servidores MCP', 'mcp.add': 'Agregar', - 'mcp.noServers': 'No hay servidores MCP configurados. Haz clic en "Agregar" para añadir uno.', 'mcp.name': 'Nombre', - 'mcp.command': 'Comando', - 'mcp.args': 'Argumentos', - 'mcp.url': 'URL', - 'mcp.headers': 'Encabezados', - 'mcp.type': 'Tipo', - 'mcp.typeLocal': 'Local (stdio)', - 'mcp.typeRemote': 'Remoto (HTTP)', - 'mcp.enabled': 'Habilitado', - 'mcp.save': 'Guardar', 'mcp.cancel': 'Cancelar', - 'mcp.delete': 'Eliminar', - 'mcp.namePlaceholder': 'Nombre del servidor', - 'mcp.commandPlaceholder': 'ej. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Argumentos (separados por espacios)', - 'mcp.urlPlaceholder': 'ej. http://localhost:3000/mcp', - 'mcp.selectType': 'Seleccionar tipo...', // FileBrowser 'files.fileTooLarge': 'Archivo demasiado grande para previsualizar (>2MB)', 'files.binaryFile': 'Archivo binario', - 'files.imagePreview': 'Vista previa de imagen', - 'files.noPreview': 'Sin vista previa disponible', - 'files.openInEditor': 'Abrir en editor', // DebugConsole 'debug.title': 'Consola de depuración', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'Agente y seguridad', - 'settings.workspaceAccess': 'Espacio de trabajo y acceso a archivos', 'settings.appearance': 'Apariencia', 'settings.integrations': 'Integraciones', - 'settings.languageServers': 'Servidores de lenguaje', 'settings.diagnostics': 'Diagnósticos', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Hooks de ciclo de vida', 'settings.hooksAdd': '+ Añadir', 'settings.hooksEdit': 'editar', 'settings.hooksDelete': 'eliminar', 'settings.hooksInject': 'inyectar', 'settings.hooksNone': '(ninguno)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Coincidencia (* para todo)', 'settings.hooksType': 'Tipo (command/http)', 'settings.hooksCommand': 'Comando', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': 'Modo de coincidencia', 'settings.hooksTesterTitle': 'Probador de regex', 'settings.hooksTesterPlaceholder': 'ej: run_command git push', - 'settings.hooksTestBtn': 'Probar', 'settings.hooksTestMatched': '¡Coincidencia!', 'settings.hooksTestNotMatched': 'Sin coincidencia', 'settings.hooksTestError': 'Error: {0}', 'settings.addCustomEndpoint': 'Agregar endpoint personalizado', 'settings.configured': 'Configurado', - 'settings.install': 'Instalar:', 'settings.saveLimits': 'Guardar límites', 'settings.refreshModels': 'Actualizar modelos desde API', 'settings.versionPlaceholder': 'Cadena de versión...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': 'Tema', 'settings.themeLight': 'Claro', 'settings.themeDark': 'Oscuro', - 'settings.themeSystem': 'Sistema', - 'settings.integrationsHint': 'Habilitar funciones de integración para acceso rápido a herramientas.', 'settings.lspHint': 'Los servidores del Protocolo de Servidor de Lenguaje (LSP) proporcionan al agente inteligencia de código: ir a definición, buscar referencias, información al pasar el cursor, diagnósticos y más.', 'settings.lspNoServers': 'No se detectaron servidores de lenguaje en este espacio de trabajo.', 'settings.lspConfigured': '(configurado)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': 'Copiar error', // Permission mode dropdown options - 'mode.supervisedDesc': 'Supervisado (confirmar cada herramienta)', - 'mode.autoDesc': 'Automático (solo herramientas seguras)', - 'mode.planDesc': 'Plan (solo lectura)', - 'mode.bypassDesc': 'Sin restricciones (auto-aprobar la mayoría)', - 'mode.autopilotDesc': 'Piloto automático (alta autonomía)', // Common dropdown placeholders - 'common.chooseVendor': 'Elegir proveedor...', - 'common.chooseEndpoint': 'Elegir endpoint...', 'common.chooseModel': 'Elegir modelo...', - 'common.english': 'Inglés', // ChatView activity descriptions 'chat.activity.reading': 'Leyendo archivos...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': 'Ejecutando sub-agente...', 'chat.activity.waiting': 'Esperando entrada...', 'chat.activity.saving': 'Guardando memoria...', - 'chat.activity.writingResponse': 'Escribiendo respuesta...', 'chat.activity.planMode': 'Entrando en modo plan...', // ChatView UI labels 'chat.findPlaceholder': 'Buscar en la conversación...', - 'chat.noModel': 'Sin modelo', - 'chat.selectWorkspace': 'Seleccionar espacio de trabajo', 'chat.sending': 'Enviando...', 'chat.failedToSend': 'Error al enviar', 'chat.nickname': 'Apodo', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': 'Copiar razonamiento', 'chat.title.editResend': 'Editar y reenviar', 'chat.title.copyMessage': 'Copiar mensaje', - 'chat.title.regenerate': 'Regenerar respuesta', - 'chat.title.copyResult': 'Copiar resultado', - 'chat.title.copyError': 'Copiar error', 'chat.title.teamBoard': 'Abrir tablero del equipo', - 'chat.title.editIdentity': 'Haz clic para editar tu apodo, rol y equipo', // MCPServers 'mcp.transport': 'Transporte', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': 'Aún no hay mensajes directos.', 'lanchat.broadcastPlaceholder': 'Transmitir a todos...', 'lanchat.dmPlaceholder': 'Mensaje a {name}...', - 'lanchat.enterNickname': 'Ingresa nuevo apodo:', // ApprovalDialog hints - 'approval.denyHint': 'Denegar', - 'approval.allowHint': 'Permitir', - 'approval.alwaysHint': 'Siempre', - 'approval.copyToClipboard': 'Copiar al portapapeles', - 'approval.ariaLabel': 'Aprobación de herramienta', // AskUserDialog 'askUser.typeAnswer': 'Escribe tu respuesta...', - 'askUser.additionalNotes': 'Notas adicionales (opcional)', - 'askUser.close': 'Cerrar diálogo', - 'askUser.cancel': 'Cancelar', // IMManagement 'im.editAdapter': 'Editar: {name}', - 'im.addTitle': 'Agregar adaptador IM', - 'im.adapterNameRequired': 'Ingresa un nombre de adaptador', // FileBrowser 'files.searchPlaceholder': 'Buscar archivos...', 'files.officeDocument': 'Documento de Office', 'files.openExternal': 'Abrir con aplicación externa para ver', - 'files.renderingMermaid': 'Renderizando diagrama...', 'files.htmlPreview': 'Vista previa HTML', // Dialogs / About - 'about.checkUpdates': 'Buscar actualizaciones', - 'about.checking': 'Comprobando...', - 'about.newVersion': 'Nueva versión disponible: v{version}', - 'about.download': 'Descargar', // TopDragBar (window controls) - 'window.close': 'Cerrar', - 'window.minimize': 'Minimizar', - 'window.maximize': 'Maximizar', - 'window.restore': 'Restaurar ventana', // StatusBar 'status.toggleContext': 'Alternar panel de contexto', // TeamBoard 'team.boardTitle': 'Tablero del equipo', - 'team.closeBoard': 'Cerrar tablero del equipo', // Common shared 'common.dismiss': 'Descartar notificación', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': 'Elegir proveedor...', 'settings.chooseEndpoint': 'Elegir endpoint...', 'settings.modeSupervised': 'Supervisado (confirmar cada herramienta)', - 'settings.modeAuto': 'Automático (solo herramientas seguras)', - 'settings.modePlan': 'Plan (solo lectura)', 'settings.modeBypass': 'Sin restricciones (auto-aprobar herramientas seguras)', 'settings.modeBypassAll': 'Sin restricciones (auto-aprobar la mayoría)', - 'settings.modeAutopilot': 'Piloto automático (aprobar todo)', - 'settings.modeAutopilotHigh': 'Piloto automático (alta autonomía)', 'settings.saveModeHint': 'Guarda para persistir este modo predeterminado. Los cambios de modo en tiempo de ejecución siguen el manejo normal de modos de la aplicación.', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': 'Puede cambiarlo más tarde en Configuración', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Revisar y aprobar cada ejecución de herramienta', - 'settings.modeDescAuto': 'Aprobar automáticamente solo operaciones seguras', - 'settings.modeDescPlan': 'Explorar código sin hacer cambios', - 'settings.modeDescBypass': 'Aprobar automáticamente la mayoría de operaciones', - 'settings.modeDescAutopilot': 'Autonomía total con mínimas interrupciones', 'settings.agentSafetyHint': 'Revisa cuánta autonomía tiene actualmente el agente de escritorio. Esto resume el comportamiento existente sin cambiar las políticas avanzadas de herramientas.', 'settings.workspaceAccessHint': 'Las herramientas de archivos operan dentro del espacio de trabajo actual y los directorios permitidos configurados. La edición avanzada de directorios permitidos no se expone aquí intencionalmente para evitar cambiar los límites de seguridad accidentalmente.', 'settings.appearanceHint': 'Personaliza el tema visual. La aplicación sigue tu preferencia del sistema por defecto.', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': 'La mayoría de operaciones están permitidas con menos confirmaciones. Úsalo solo en espacios de trabajo de confianza donde estés cómodo con una ejecución más rápida.', 'settings.modeDescFullAutopilot': 'El agente tiene alta autonomía y puede continuar a través de muchos pasos automáticamente. Revisa el estado del espacio de trabajo antes de usarlo en código importante.', 'settings.modeDescFullSupervised': 'El agente pregunta antes de ejecutar acciones de herramientas no especificadas. Este es un modo predeterminado equilibrado para uso normal del escritorio.', - 'files.emptyDirectory': 'Directorio vacío', - 'files.noMatchingFiles': 'Sin archivos coincidentes', - 'files.selectToPreview': 'Selecciona un archivo para previsualizar', 'approval.riskHigh': 'Riesgo Alto', 'approval.riskMedium': 'Riesgo Medio', 'approval.riskLow': 'Riesgo Bajo', - 'debug.filterLogs': 'Filtrar logs de depuración', - 'sidebar.ctxOpen': 'Abrir', - 'sidebar.ctxRename': 'Renombrar', - 'sidebar.ctxCopyId': 'Copiar ID', - 'sidebar.ctxDelete': 'Eliminar', - 'sidebar.ctxPin': 'Fijar', - 'sidebar.ctxUnpin': 'Desfijar', - 'sidebar.startConversation': 'Iniciar conversación', - 'sidebar.noMatching': 'Sin sesiones que coincidan con "{search}"', - 'sidebar.clearSearch': 'Borrar búsqueda', - 'sidebar.noSessionsYet': 'Aún no hay sesiones', - 'chat.ctxCopy': 'Copiar', - 'chat.ctxEdit': 'Editar', - 'chat.ctxRegenerate': 'Regenerar', - 'chat.runDuration': 'Duración', - 'chat.runTools': 'Herramientas', - 'chat.runFiles': 'Archivos', - 'chat.runErrors': 'Errores', - 'chat.runTokens': 'Tokens', - 'chat.dropImages': 'Suelta imágenes para adjuntar', - 'chat.slashHelp': 'Mostrar comandos disponibles', - 'chat.slashModel': 'Cambiar o ver modelo de IA', - 'chat.slashMode': 'Cambiar modo de permisos (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Borrar historial de chat', - 'chat.slashCompact': 'Compactar ventana de contexto', - 'chat.slashContext': 'Mostrar detalles de uso de contexto', - 'chat.slashCost': 'Mostrar uso de tokens y costos', - 'chat.slashCopy': 'Copiar conversación al portapapeles', - 'chat.slashExport': 'Descargar conversación como Markdown', - 'chat.slashSessions': 'Explorar y cambiar sesiones', - 'chat.slashConfig': 'Ver o editar configuración', - 'chat.slashStatus': 'Mostrar estado del runtime', - 'chat.slashSkills': 'Explorar skills disponibles', - 'chat.slashMcp': 'Gestionar servidores MCP', - 'chat.slashReview': 'Revisar cambios de código (git diff)', - 'chat.slashDiff': 'Mostrar diff del árbol de trabajo', - 'chat.slashReflect': 'Activar auto-reflexión', - 'chat.slashUndo': 'Deshacer última edición de archivo', - 'chat.slashRegenerate': 'Regenerar última respuesta', - 'chat.slashTodo': 'Gestión de tareas', - 'chat.slashInit': 'Inicializar archivos de memoria del proyecto', - 'chat.slashLang': 'Cambiar idioma de interfaz', - 'chat.slashBug': 'Reportar un bug', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Versiones', - 'dialogs.linkIssues': 'Issues', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'Proceso local vía stdin/stdout', 'mcp.descHttp': 'Servidor remoto vía HTTP (Streamable HTTP / SSE)', 'mcp.descWs': 'Servidor remoto vía WebSocket', - 'im.qrAuthHint': 'Esta plataforma usa autenticación por código QR. Guarda para iniciar el proceso de emparejamiento.', - 'im.noConfigurableFields': 'Sin campos configurables para este adaptador.', - 'pairing.enterCode': 'Introduce este código en tu canal de IM:', - 'lanchat.noContactsOnline': 'Sin contactos en línea', - 'context.noImAdapters': 'Sin adaptadores IM vinculados', - 'settings.maxTokensHint': 'Establece en 0 o déjalo vacío para autodetección desde las especificaciones del modelo.', 'askUser.notesPlaceholder': 'Notas adicionales (opcional)', 'chat.menuCopy': 'Copiar', 'chat.menuEdit': 'Editar', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/fr.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/fr.ts index 7b07bd259..8bd54b23b 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/fr.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/fr.ts @@ -6,7 +6,6 @@ const fr = { 'nav.mcp': 'Serveurs MCP', 'nav.settings': 'Paramètres', 'nav.debug': 'Console de débogage', - 'nav.lanchat': 'Chat LAN', 'nav.cron': 'Tâches Programmées', 'cron.title': 'Tâches Programmées', 'cron.newTask': 'Nouvelle Tâche', @@ -61,7 +60,6 @@ const fr = { 'sidebar.newSession': 'Nouvelle session', 'sidebar.untitled': 'Sans titre', 'sidebar.delete': 'Supprimer', - 'sidebar.loading': 'Chargement...', 'sidebar.group.pinned': 'Épinglé', 'sidebar.group.today': 'Aujourd\'hui', 'sidebar.group.yesterday': 'Hier', @@ -75,7 +73,6 @@ const fr = { // StatusBar 'status.ready': 'Prêt', 'status.thinking': 'Réflexion...', - 'status.streaming': 'Diffusion', 'status.offline': 'Hors ligne', // ChatView @@ -98,9 +95,6 @@ const fr = { 'cmd.exportJSON': 'Exporter la session en JSON', 'cmd.copyMarkdown': 'Copier la session en Markdown', 'cmd.searchSessions': 'Rechercher des sessions', - 'cmd.clearHistory': 'Effacer l\'historique', - 'cmd.compactContext': 'Compacter le contexte', - 'cmd.undoLast': 'Annuler le dernier', 'cmd.shareSession': 'Partager la session', 'cmd.toggleContext': 'Basculer le panneau de contexte', 'cmd.toggleTheme': 'Basculer le thème', @@ -166,8 +160,6 @@ const fr = { // ContextPanel 'context.title': 'Contexte', 'context.usage': 'Utilisation du contexte', - 'context.permission': 'Mode d\'autorisation', - 'context.files': 'Fichiers dans le contexte', 'context.input': 'Entrée', 'context.output': 'Sortie', 'context.cacheRead': 'Lecture du cache', @@ -187,12 +179,9 @@ const fr = { 'settings.apiKey': 'Clé API', 'settings.apiKeyPlaceholder': 'Saisissez votre clé API', 'settings.model': 'Modèle', - 'settings.modelPlaceholder': 'ex. claude-sonnet-4-20250514', 'settings.permissionMode': 'Mode d\'autorisation', 'settings.language': 'Langue', 'settings.identity': 'Identité', - 'settings.identityPlaceholder': 'Votre nom ou alias', - 'settings.version': 'Version', 'settings.save': 'Enregistrer', 'settings.saved': 'Enregistré !', 'settings.saving': 'Enregistrement...', @@ -202,32 +191,18 @@ const fr = { 'settings.impersonateApply': 'Appliquer', // Onboarding - 'onboarding.title': 'Bienvenue dans GGCode', - 'onboarding.subtitle': 'Démarrez en quelques étapes', 'onboarding.next': 'Suivant', 'onboarding.back': 'Retour', 'onboarding.getStarted': 'Commencer', - 'onboarding.step.vendor': 'Choisir le fournisseur d\'IA', - 'onboarding.step.apiKey': 'Saisir la clé API', - 'onboarding.step.configure': 'Configurer', 'onboarding.vendorHint': 'Sélectionnez le fournisseur d\'IA que vous souhaitez utiliser', - 'onboarding.apiKeyHint': 'Votre clé API est stockée localement et n\'est jamais envoyée à nos serveurs', 'onboarding.configHint': 'Ajustez ces paramètres ou conservez les valeurs par défaut', - 'onboarding.skip': 'Passer la configuration', - 'onboarding.workDir': 'Répertoire de travail', - 'onboarding.browse': 'Parcourir', - 'onboarding.workDirHint': 'Sélectionnez le répertoire de projet dans lequel travailler', 'onboarding.welcome': 'Bienvenue dans GGCode', 'onboarding.selectDirHint': 'Sélectionnez un répertoire de projet pour commencer', 'onboarding.chooseDir': 'Choisir le répertoire', 'onboarding.modeSupervised': 'Supervisé', 'onboarding.modeSupervisedDesc': 'Examiner et approuver chaque appel d\'outil avant l\'exécution', - 'onboarding.modeAuto': 'Auto', - 'onboarding.modeAutoDesc': 'Approuver automatiquement les outils en lecture seule, confirmer les opérations destructives', 'onboarding.modeBypass': 'Contournement', 'onboarding.modeBypassDesc': 'Approuver automatiquement tous les outils, aucune confirmation nécessaire', - 'onboarding.modeAutopilot': 'Pilote automatique', - 'onboarding.modeAutopilotDesc': 'Entièrement autonome — l\'agent s\'exécute sans aucune confirmation', 'onboarding.fetchingModels': 'Récupération...', 'onboarding.fetchModels': 'Récupérer les modèles', 'onboarding.noModelsFound': 'Aucun modèle trouvé. Saisissez un nom de modèle manuellement.', @@ -250,27 +225,18 @@ const fr = { // Dialogs (About) 'about.title': 'À propos de GGCode', - 'about.version': 'Version', 'about.description': 'Agent de codage IA pour le terminal', - 'about.close': 'Fermer', // PairingCodeDialog 'pairing.title': 'Associer l\'appareil', - 'pairing.code': 'Code d\'association', - 'pairing.expiresIn': 'Expire dans {n}s', 'pairing.close': 'Fermer', // ShareDialog 'share.title': 'Partager la session', - 'share.connectUrl': 'URL de connexion', - 'share.qrCode': 'Code QR', 'share.copy': 'Copier', 'share.copied': 'Copié !', - 'share.openInBrowser': 'Ouvrir dans le navigateur', 'share.stopSharing': 'Arrêter le partage', 'share.generating': 'Génération...', - 'share.scanQr': 'Scanner le code QR pour vous connecter', - 'share.activeDevices': '{n} appareil(s) connecté(s)', // IMManagement 'im.title': 'Adaptateurs IM', @@ -281,55 +247,23 @@ const fr = { 'im.unbound': 'Non lié', 'im.online': 'En ligne', 'im.offline': 'Hors ligne', - 'im.muted': 'En sourdine', 'im.mute': 'Mettre en sourdine', 'im.unmute': 'Réactiver', - 'im.delete': 'Supprimer', - 'im.configure': 'Configurer', 'im.platform': 'Plateforme', 'im.name': 'Nom', - 'im.workspace': 'Espace de travail', - 'im.enabled': 'Activé', 'im.save': 'Enregistrer', 'im.cancel': 'Annuler', 'im.selectPlatform': 'Sélectionner une plateforme...', - 'im.adapterName': 'Nom de l\'adaptateur', - 'im.adapterNamePlaceholder': 'ex. Mon Slack', - 'im.bindToWorkspace': 'Lier à l\'espace de travail', - 'im.enabledHint': 'Activer cet adaptateur', - 'im.pairing': 'Association...', - 'im.paired': 'Associé', - 'im.notPaired': 'Non associé', - 'im.startPairing': 'Démarrer l\'association', // MCPServers 'mcp.title': 'Serveurs MCP', 'mcp.add': 'Ajouter', - 'mcp.noServers': 'Aucun serveur MCP configuré. Cliquez sur « Ajouter » pour en ajouter un.', 'mcp.name': 'Nom', - 'mcp.command': 'Commande', - 'mcp.args': 'Arguments', - 'mcp.url': 'URL', - 'mcp.headers': 'En-têtes', - 'mcp.type': 'Type', - 'mcp.typeLocal': 'Local (stdio)', - 'mcp.typeRemote': 'Distant (HTTP)', - 'mcp.enabled': 'Activé', - 'mcp.save': 'Enregistrer', 'mcp.cancel': 'Annuler', - 'mcp.delete': 'Supprimer', - 'mcp.namePlaceholder': 'Nom du serveur', - 'mcp.commandPlaceholder': 'ex. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Arguments (séparés par des espaces)', - 'mcp.urlPlaceholder': 'ex. http://localhost:3000/mcp', - 'mcp.selectType': 'Sélectionner le type...', // FileBrowser 'files.fileTooLarge': 'Fichier trop volumineux pour l\'aperçu (>2 Mo)', 'files.binaryFile': 'Fichier binaire', - 'files.imagePreview': 'Aperçu de l\'image', - 'files.noPreview': 'Aucun aperçu disponible', - 'files.openInEditor': 'Ouvrir dans l\'éditeur', // DebugConsole 'debug.title': 'Console de débogage', @@ -359,19 +293,15 @@ const fr = { // SettingsPage sections 'settings.agentSafety': 'Agent et sécurité', - 'settings.workspaceAccess': 'Espace de travail et accès aux fichiers', 'settings.appearance': 'Apparence', 'settings.integrations': 'Intégrations', - 'settings.languageServers': 'Serveurs de langage', 'settings.diagnostics': 'Diagnostics', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Hooks de cycle de vie', 'settings.hooksAdd': '+ Ajouter', 'settings.hooksEdit': 'éditer', 'settings.hooksDelete': 'supprimer', 'settings.hooksInject': 'injecter', 'settings.hooksNone': '(aucun)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Correspondance (* pour tout)', 'settings.hooksType': 'Type (command/http)', 'settings.hooksCommand': 'Commande', @@ -393,13 +323,11 @@ const fr = { 'settings.hooksMatchMode': 'Mode de correspondance', 'settings.hooksTesterTitle': 'Testeur regex', 'settings.hooksTesterPlaceholder': "ex: run_command git push", - 'settings.hooksTestBtn': 'Tester', 'settings.hooksTestMatched': 'Correspondance !', 'settings.hooksTestNotMatched': 'Pas de correspondance', 'settings.hooksTestError': 'Erreur: {0}', 'settings.addCustomEndpoint': 'Ajouter un point de terminaison personnalisé', 'settings.configured': 'Configuré', - 'settings.install': 'Installer :', 'settings.saveLimits': 'Enregistrer les limites', 'settings.refreshModels': 'Actualiser les modèles depuis l\'API', 'settings.versionPlaceholder': 'Chaîne de version...', @@ -434,8 +362,6 @@ const fr = { 'settings.theme': 'Thème', 'settings.themeLight': 'Clair', 'settings.themeDark': 'Sombre', - 'settings.themeSystem': 'Système', - 'settings.integrationsHint': 'Activer les fonctionnalités d\'intégration pour un accès rapide aux outils.', 'settings.lspHint': 'Les serveurs LSP (Language Server Protocol) fournissent à l\'agent l\'intelligence du code : aller à la définition, trouver les références, survol d\'informations, diagnostics, et plus.', 'settings.lspNoServers': 'Aucun serveur de langage détecté dans cet espace de travail.', 'settings.lspConfigured': '(configuré)', @@ -463,17 +389,9 @@ const fr = { 'chat.copyError': 'Copier l\'erreur', // Permission mode dropdown options - 'mode.supervisedDesc': 'Supervisé (confirmer chaque outil)', - 'mode.autoDesc': 'Auto (outils sûrs uniquement)', - 'mode.planDesc': 'Plan (lecture seule)', - 'mode.bypassDesc': 'Contournement (auto-approuver la plupart des outils)', - 'mode.autopilotDesc': 'Pilote automatique (haute autonomie)', // Common dropdown placeholders - 'common.chooseVendor': 'Choisir un fournisseur...', - 'common.chooseEndpoint': 'Choisir un point de terminaison...', 'common.chooseModel': 'Choisir un modèle...', - 'common.english': 'Anglais', // ChatView activity descriptions 'chat.activity.reading': 'Lecture de fichiers...', @@ -488,13 +406,10 @@ const fr = { 'chat.activity.subagent': 'Exécution du sous-agent...', 'chat.activity.waiting': 'En attente de saisie...', 'chat.activity.saving': 'Sauvegarde de la mémoire...', - 'chat.activity.writingResponse': 'Rédaction de la réponse...', 'chat.activity.planMode': 'Entrée en mode plan...', // ChatView UI labels 'chat.findPlaceholder': 'Rechercher dans la conversation...', - 'chat.noModel': 'Aucun modèle', - 'chat.selectWorkspace': 'Sélectionner l\'espace de travail', 'chat.sending': 'Envoi...', 'chat.failedToSend': 'Échec de l\'envoi', 'chat.nickname': 'Pseudo', @@ -518,11 +433,7 @@ const fr = { 'chat.title.copyReasoning': 'Copier le raisonnement', 'chat.title.editResend': 'Modifier et renvoyer', 'chat.title.copyMessage': 'Copier le message', - 'chat.title.regenerate': 'Régénérer la réponse', - 'chat.title.copyResult': 'Copier le résultat', - 'chat.title.copyError': 'Copier l\'erreur', 'chat.title.teamBoard': 'Ouvrir le tableau d\'équipe', - 'chat.title.editIdentity': 'Cliquez pour modifier votre pseudo, rôle et équipe', // MCPServers 'mcp.transport': 'Transport', @@ -553,51 +464,30 @@ const fr = { 'lanchat.noMessagesDM': 'Aucun message privé pour le moment.', 'lanchat.broadcastPlaceholder': 'Diffuser à tous...', 'lanchat.dmPlaceholder': 'Message à {name}...', - 'lanchat.enterNickname': 'Saisir un nouveau pseudo :', // ApprovalDialog hints - 'approval.denyHint': 'Refuser', - 'approval.allowHint': 'Autoriser', - 'approval.alwaysHint': 'Toujours', - 'approval.copyToClipboard': 'Copier dans le presse-papiers', - 'approval.ariaLabel': 'Approbation d\'outil', // AskUserDialog 'askUser.typeAnswer': 'Saisissez votre réponse...', - 'askUser.additionalNotes': 'Notes supplémentaires (facultatif)', - 'askUser.close': 'Fermer la boîte de dialogue', - 'askUser.cancel': 'Annuler', // IMManagement 'im.editAdapter': 'Modifier : {name}', - 'im.addTitle': 'Ajouter un adaptateur IM', - 'im.adapterNameRequired': 'Saisissez un nom d\'adaptateur', // FileBrowser 'files.searchPlaceholder': 'Rechercher des fichiers...', 'files.officeDocument': 'Document Office', 'files.openExternal': 'Ouvrir avec une application externe pour visualiser', - 'files.renderingMermaid': 'Génération du diagramme...', 'files.htmlPreview': 'Aperçu HTML', // Dialogs / About - 'about.checkUpdates': 'Vérifier les mises à jour', - 'about.checking': 'Vérification...', - 'about.newVersion': 'Nouvelle version disponible : v{version}', - 'about.download': 'Télécharger', // TopDragBar (window controls) - 'window.close': 'Fermer', - 'window.minimize': 'Réduire', - 'window.maximize': 'Agrandir', - 'window.restore': 'Restaurer la fenêtre', // StatusBar 'status.toggleContext': 'Basculer le panneau de contexte', // TeamBoard 'team.boardTitle': 'Tableau d\'équipe', - 'team.closeBoard': 'Fermer le tableau d\'équipe', // Common shared 'common.dismiss': 'Ignorer la notification', @@ -650,12 +540,8 @@ const fr = { 'settings.chooseVendor': 'Choisir un fournisseur...', 'settings.chooseEndpoint': 'Choisir un point de terminaison...', 'settings.modeSupervised': 'Supervisé (confirmer chaque outil)', - 'settings.modeAuto': 'Auto (outils sûrs uniquement)', - 'settings.modePlan': 'Plan (lecture seule)', 'settings.modeBypass': 'Contournement (auto-approuver les outils sûrs)', 'settings.modeBypassAll': 'Contournement (auto-approuver la plupart des outils)', - 'settings.modeAutopilot': 'Pilote automatique (tout approuver)', - 'settings.modeAutopilotHigh': 'Pilote automatique (haute autonomie)', 'settings.saveModeHint': 'Enregistrer pour conserver ce mode par défaut. Les changements de mode à l\'exécution suivent toujours la gestion normale des modes de l\'application.', // Dialogs @@ -689,11 +575,6 @@ const fr = { 'onboarding.languageHint': 'Vous pouvez changer cela plus tard dans les Paramètres', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Examiner et approuver chaque exécution d\'outil', - 'settings.modeDescAuto': 'Approuver automatiquement uniquement les opérations sûres', - 'settings.modeDescPlan': 'Explorer le code sans faire de modifications', - 'settings.modeDescBypass': 'Approuver automatiquement la plupart des opérations', - 'settings.modeDescAutopilot': 'Pleine autonomie avec un minimum d\'interruptions', 'settings.agentSafetyHint': 'Examinez le niveau d\'autonomie actuel de l\'agent de bureau. Ceci résume le comportement existant sans modifier les politiques d\'outils avancées.', 'settings.workspaceAccessHint': 'Les outils de fichiers fonctionnent dans l\'espace de travail actuel et les répertoires autorisés configurés. L\'édition avancée des répertoires autorisés n\'est intentionnellement pas exposée ici pour éviter de modifier accidentellement les limites de sécurité.', 'settings.appearanceHint': 'Personnalisez le thème visuel. L\'application suit par défaut votre préférence système.', @@ -714,69 +595,13 @@ const fr = { 'settings.modeDescFullBypass': 'La plupart des opérations sont autorisées avec moins de confirmations. À utiliser uniquement dans des espaces de travail de confiance où vous êtes à l\'aise avec une exécution plus rapide.', 'settings.modeDescFullAutopilot': 'L\'agent dispose d\'une grande autonomie et peut poursuivre de nombreuses étapes automatiquement. Examinez l\'état de l\'espace de travail avant de l\'utiliser sur du code important.', 'settings.modeDescFullSupervised': 'L\'agent demande avant les actions d\'outils non spécifiées. C\'est un équilibre par défaut pour une utilisation normale du bureau.', - 'files.emptyDirectory': 'Répertoire vide', - 'files.noMatchingFiles': 'Aucun fichier correspondant', - 'files.selectToPreview': 'Sélectionnez un fichier à prévisualiser', 'approval.riskHigh': 'Risque Élevé', 'approval.riskMedium': 'Risque Moyen', 'approval.riskLow': 'Risque Faible', - 'debug.filterLogs': 'Filtrer les logs de débogage', - 'sidebar.ctxOpen': 'Ouvrir', - 'sidebar.ctxRename': 'Renommer', - 'sidebar.ctxCopyId': 'Copier l\'ID', - 'sidebar.ctxDelete': 'Supprimer', - 'sidebar.ctxPin': 'Épingler', - 'sidebar.ctxUnpin': 'Désépingler', - 'sidebar.startConversation': 'Démarrer une conversation', - 'sidebar.noMatching': 'Aucune session correspondant à "{search}"', - 'sidebar.clearSearch': 'Effacer la recherche', - 'sidebar.noSessionsYet': 'Aucune session pour l\'instant', - 'chat.ctxCopy': 'Copiar', - 'chat.ctxEdit': 'Modifier', - 'chat.ctxRegenerate': 'Régénérer', - 'chat.runDuration': 'Durée', - 'chat.runTools': 'Outils', - 'chat.runFiles': 'Fichiers', - 'chat.runErrors': 'Erreurs', - 'chat.runTokens': 'Jetons', - 'chat.dropImages': 'Déposez des images pour les joindre', - 'chat.slashHelp': 'Afficher les commandes disponibles', - 'chat.slashModel': 'Changer ou voir le modèle IA', - 'chat.slashMode': 'Changer le mode de permissions (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Effacer l\'historique du chat', - 'chat.slashCompact': 'Compresser la fenêtre de contexte', - 'chat.slashContext': 'Afficher les détails d\'utilisation du contexte', - 'chat.slashCost': 'Afficher l\'utilisation des jetons et le coût', - 'chat.slashCopy': 'Copier la conversation dans le presse-papiers', - 'chat.slashExport': 'Télécharger la conversation en Markdown', - 'chat.slashSessions': 'Parcourir et changer de session', - 'chat.slashConfig': 'Voir ou modifier la configuration', - 'chat.slashStatus': 'Afficher le statut du runtime', - 'chat.slashSkills': 'Parcourir les skills disponibles', - 'chat.slashMcp': 'Gérer les serveurs MCP', - 'chat.slashReview': 'Réviser les changements de code (git diff)', - 'chat.slashDiff': 'Afficher le diff de l\'arbre de travail', - 'chat.slashReflect': 'Déclencher l\'auto-réflexion', - 'chat.slashUndo': 'Annuler la dernière édition de fichier', - 'chat.slashRegenerate': 'Régénérer la dernière réponse', - 'chat.slashTodo': 'Gestion des tâches', - 'chat.slashInit': 'Initialiser les fichiers de mémoire du projet', - 'chat.slashLang': 'Changer la langue de l\'interface', - 'chat.slashBug': 'Signaler un bug', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Versions', - 'dialogs.linkIssues': 'Issues', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'Processus local via stdin/stdout', 'mcp.descHttp': 'Serveur distant via HTTP (Streamable HTTP / SSE)', 'mcp.descWs': 'Serveur distant via WebSocket', - 'im.qrAuthHint': 'Cette plateforme utilise l\'authentification par code QR. Enregistrez pour démarrer le processus de couplage.', - 'im.noConfigurableFields': 'Aucun champ configurable pour cet adaptateur.', - 'pairing.enterCode': 'Saisissez ce code dans votre canal IM :', - 'lanchat.noContactsOnline': 'Aucun contact en ligne', - 'context.noImAdapters': 'Aucun adaptateur IM lié', - 'settings.maxTokensHint': 'Définissez sur 0 ou laissez vide pour la détection automatique depuis les spécifications du modèle.', 'askUser.notesPlaceholder': 'Notes supplémentaires (facultatif)', 'chat.menuCopy': 'Copier', 'chat.menuEdit': 'Modifier', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/id.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/id.ts index aad5ce4f2..26a50ebd3 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/id.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/id.ts @@ -6,7 +6,6 @@ const id = { 'nav.mcp': 'Server MCP', 'nav.settings': 'Pengaturan', 'nav.debug': 'Konsol Debug', - 'nav.lanchat': 'Obrolan LAN', 'nav.cron': 'Tugas Terjadwal', 'cron.title': 'Tugas Terjadwal', 'cron.newTask': 'Tugas Baru', @@ -61,7 +60,6 @@ const id = { 'sidebar.newSession': 'Sesi Baru', 'sidebar.untitled': 'Tanpa Judul', 'sidebar.delete': 'Hapus', - 'sidebar.loading': 'Memuat...', 'sidebar.group.pinned': 'Disematkan', 'sidebar.group.today': 'Hari Ini', 'sidebar.group.yesterday': 'Kemarin', @@ -75,7 +73,6 @@ const id = { // StatusBar 'status.ready': 'Siap', 'status.thinking': 'Berpikir...', - 'status.streaming': 'Streaming', 'status.offline': 'Offline', // ChatView @@ -98,9 +95,6 @@ const id = { 'cmd.exportJSON': 'Ekspor sesi sebagai JSON', 'cmd.copyMarkdown': 'Salin sesi sebagai Markdown', 'cmd.searchSessions': 'Cari Sesi', - 'cmd.clearHistory': 'Hapus Riwayat', - 'cmd.compactContext': 'Kompres Konteks', - 'cmd.undoLast': 'Batalkan Terakhir', 'cmd.shareSession': 'Bagikan Sesi', 'cmd.toggleContext': 'Aktifkan Panel Konteks', 'cmd.toggleTheme': 'Alihkan Tema', @@ -166,8 +160,6 @@ const id = { // ContextPanel 'context.title': 'Konteks', 'context.usage': 'Penggunaan Konteks', - 'context.permission': 'Mode Izin', - 'context.files': 'File dalam Konteks', 'context.input': 'Input', 'context.output': 'Output', 'context.cacheRead': 'Baca Cache', @@ -187,12 +179,9 @@ const id = { 'settings.apiKey': 'Kunci API', 'settings.apiKeyPlaceholder': 'Masukkan kunci API Anda', 'settings.model': 'Model', - 'settings.modelPlaceholder': 'mis. claude-sonnet-4-20250514', 'settings.permissionMode': 'Mode Izin', 'settings.language': 'Bahasa', 'settings.identity': 'Identitas', - 'settings.identityPlaceholder': 'Nama atau alias Anda', - 'settings.version': 'Versi', 'settings.save': 'Simpan', 'settings.saved': 'Tersimpan!', 'settings.saving': 'Menyimpan...', @@ -202,32 +191,18 @@ const id = { 'settings.impersonateApply': 'Terapkan', // Onboarding - 'onboarding.title': 'Selamat Datang di GGCode', - 'onboarding.subtitle': 'Mulai dalam beberapa langkah', 'onboarding.next': 'Berikutnya', 'onboarding.back': 'Kembali', 'onboarding.getStarted': 'Mulai', - 'onboarding.step.vendor': 'Pilih Penyedia AI', - 'onboarding.step.apiKey': 'Masukkan Kunci API', - 'onboarding.step.configure': 'Konfigurasi', 'onboarding.vendorHint': 'Pilih penyedia AI yang ingin Anda gunakan', - 'onboarding.apiKeyHint': 'Kunci API Anda disimpan secara lokal dan tidak pernah dikirim ke server kami', 'onboarding.configHint': 'Sesuaikan pengaturan ini atau biarkan default', - 'onboarding.skip': 'Lewati Pengaturan', - 'onboarding.workDir': 'Direktori Kerja', - 'onboarding.browse': 'Jelajahi', - 'onboarding.workDirHint': 'Pilih direktori proyek untuk bekerja', 'onboarding.welcome': 'Selamat Datang di GGCode', 'onboarding.selectDirHint': 'Pilih direktori proyek untuk memulai', 'onboarding.chooseDir': 'Pilih Direktori', 'onboarding.modeSupervised': 'Terawasi', 'onboarding.modeSupervisedDesc': 'Tinjau dan setujui setiap panggilan tool sebelum eksekusi', - 'onboarding.modeAuto': 'Otomatis', - 'onboarding.modeAutoDesc': 'Setujui otomatis tool hanya-baca, konfirmasi operasi destruktif', 'onboarding.modeBypass': 'Lewati', 'onboarding.modeBypassDesc': 'Setujui otomatis semua tool, tanpa konfirmasi', - 'onboarding.modeAutopilot': 'Otopilot', - 'onboarding.modeAutopilotDesc': 'Sepenuhnya otonom — agent berjalan tanpa konfirmasi apa pun', 'onboarding.fetchingModels': 'Mengambil...', 'onboarding.fetchModels': 'Ambil Model', 'onboarding.noModelsFound': 'Tidak ada model ditemukan. Masukkan nama model secara manual.', @@ -250,27 +225,18 @@ const id = { // Dialogs (About) 'about.title': 'Tentang GGCode', - 'about.version': 'Versi', 'about.description': 'Agent coding AI untuk terminal', - 'about.close': 'Tutup', // PairingCodeDialog 'pairing.title': 'Pasangkan Perangkat', - 'pairing.code': 'Kode Pasangan', - 'pairing.expiresIn': 'Kedaluwarsa dalam {n}d', 'pairing.close': 'Tutup', // ShareDialog 'share.title': 'Bagikan Sesi', - 'share.connectUrl': 'URL Koneksi', - 'share.qrCode': 'Kode QR', 'share.copy': 'Salin', 'share.copied': 'Tersalin!', - 'share.openInBrowser': 'Buka di Browser', 'share.stopSharing': 'Hentikan Berbagi', 'share.generating': 'Membuat...', - 'share.scanQr': 'Pindai kode QR untuk terhubung', - 'share.activeDevices': '{n} perangkat terhubung', // IMManagement 'im.title': 'Adapter IM', @@ -281,55 +247,23 @@ const id = { 'im.unbound': 'Tidak Terikat', 'im.online': 'Daring', 'im.offline': 'Luring', - 'im.muted': 'Dibisukan', 'im.mute': 'Bisukan', 'im.unmute': 'Bunyikan', - 'im.delete': 'Hapus', - 'im.configure': 'Konfigurasi', 'im.platform': 'Platform', 'im.name': 'Nama', - 'im.workspace': 'Workspace', - 'im.enabled': 'Diaktifkan', 'im.save': 'Simpan', 'im.cancel': 'Batal', 'im.selectPlatform': 'Pilih platform...', - 'im.adapterName': 'Nama Adapter', - 'im.adapterNamePlaceholder': 'mis. Slack Saya', - 'im.bindToWorkspace': 'Ikat ke Workspace', - 'im.enabledHint': 'Aktifkan adapter ini', - 'im.pairing': 'Memasangkan...', - 'im.paired': 'Terpasang', - 'im.notPaired': 'Belum Terpasang', - 'im.startPairing': 'Mulai Pasangan', // MCPServers 'mcp.title': 'Server MCP', 'mcp.add': 'Tambah', - 'mcp.noServers': 'Tidak ada server MCP dikonfigurasi. Klik "Tambah" untuk menambahkan.', 'mcp.name': 'Nama', - 'mcp.command': 'Perintah', - 'mcp.args': 'Argumen', - 'mcp.url': 'URL', - 'mcp.headers': 'Header', - 'mcp.type': 'Tipe', - 'mcp.typeLocal': 'Lokal (stdio)', - 'mcp.typeRemote': 'Jarak Jauh (HTTP)', - 'mcp.enabled': 'Diaktifkan', - 'mcp.save': 'Simpan', 'mcp.cancel': 'Batal', - 'mcp.delete': 'Hapus', - 'mcp.namePlaceholder': 'Nama server', - 'mcp.commandPlaceholder': 'mis. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Argumen (dipisahkan spasi)', - 'mcp.urlPlaceholder': 'mis. http://localhost:3000/mcp', - 'mcp.selectType': 'Pilih tipe...', // FileBrowser 'files.fileTooLarge': 'File terlalu besar untuk pratinjau (>2MB)', 'files.binaryFile': 'File biner', - 'files.imagePreview': 'Pratinjau Gambar', - 'files.noPreview': 'Tidak ada pratinjau tersedia', - 'files.openInEditor': 'Buka di Editor', // DebugConsole 'debug.title': 'Konsol Debug', @@ -359,19 +293,15 @@ const id = { // SettingsPage sections 'settings.agentSafety': 'Agent & Keamanan', - 'settings.workspaceAccess': 'Workspace & akses file', 'settings.appearance': 'Tampilan', 'settings.integrations': 'Integrasi', - 'settings.languageServers': 'Server Bahasa', 'settings.diagnostics': 'Diagnostik', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Hooks siklus hidup', 'settings.hooksAdd': '+ Tambah', 'settings.hooksEdit': 'edit', 'settings.hooksDelete': 'hapus', 'settings.hooksInject': 'injeksi', 'settings.hooksNone': '(tidak ada)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Cocok (* untuk semua)', 'settings.hooksType': 'Tipe (command/http)', 'settings.hooksCommand': 'Perintah', @@ -393,13 +323,11 @@ const id = { 'settings.hooksMatchMode': 'Mode pencocokan', 'settings.hooksTesterTitle': 'Tester regex', 'settings.hooksTesterPlaceholder': 'cth: run_command git push', - 'settings.hooksTestBtn': 'Tes', 'settings.hooksTestMatched': 'Cocok!', 'settings.hooksTestNotMatched': 'Tidak cocok', 'settings.hooksTestError': 'Error: {0}', 'settings.addCustomEndpoint': 'Tambah Endpoint Kustom', 'settings.configured': 'Dikonfigurasi', - 'settings.install': 'Instal:', 'settings.saveLimits': 'Simpan batas', 'settings.refreshModels': 'Segarkan model dari API', 'settings.versionPlaceholder': 'String versi...', @@ -434,8 +362,6 @@ const id = { 'settings.theme': 'Tema', 'settings.themeLight': 'Terang', 'settings.themeDark': 'Gelap', - 'settings.themeSystem': 'Sistem', - 'settings.integrationsHint': 'Aktifkan fitur integrasi untuk akses cepat ke alat.', 'settings.lspHint': 'Server Language Server Protocol (LSP) menyediakan agent dengan kecerdasan kode: go-to-definition, find references, info hover, diagnostik, dan lainnya.', 'settings.lspNoServers': 'Tidak ada server bahasa terdeteksi di workspace ini.', 'settings.lspConfigured': '(dikonfigurasi)', @@ -463,17 +389,9 @@ const id = { 'chat.copyError': 'Salin kesalahan', // Permission mode dropdown options - 'mode.supervisedDesc': 'Terawasi (konfirmasi setiap tool)', - 'mode.autoDesc': 'Otomatis (hanya tool aman)', - 'mode.planDesc': 'Rencana (hanya-baca)', - 'mode.bypassDesc': 'Lewati (setujui otomatis sebagian besar tool)', - 'mode.autopilotDesc': 'Otopilot (otonomi tinggi)', // Common dropdown placeholders - 'common.chooseVendor': 'Pilih vendor...', - 'common.chooseEndpoint': 'Pilih endpoint...', 'common.chooseModel': 'Pilih model...', - 'common.english': 'Inggris', // ChatView activity descriptions 'chat.activity.reading': 'Membaca file...', @@ -488,13 +406,10 @@ const id = { 'chat.activity.subagent': 'Menjalankan sub-agent...', 'chat.activity.waiting': 'Menunggu input...', 'chat.activity.saving': 'Menyimpan memori...', - 'chat.activity.writingResponse': 'Menulis respons...', 'chat.activity.planMode': 'Memasuki mode rencana...', // ChatView UI labels 'chat.findPlaceholder': 'Cari dalam percakapan...', - 'chat.noModel': 'Tidak ada model', - 'chat.selectWorkspace': 'Pilih workspace', 'chat.sending': 'Mengirim...', 'chat.failedToSend': 'Gagal mengirim', 'chat.nickname': 'Nama Panggilan', @@ -518,11 +433,7 @@ const id = { 'chat.title.copyReasoning': 'Salin penalaran', 'chat.title.editResend': 'Edit & kirim ulang', 'chat.title.copyMessage': 'Salin pesan', - 'chat.title.regenerate': 'Buat ulang respons', - 'chat.title.copyResult': 'Salin hasil', - 'chat.title.copyError': 'Salin kesalahan', 'chat.title.teamBoard': 'Buka papan tim', - 'chat.title.editIdentity': 'Klik untuk mengedit nama panggilan, peran, dan tim Anda', // MCPServers 'mcp.transport': 'Transportasi', @@ -553,51 +464,30 @@ const id = { 'lanchat.noMessagesDM': 'Belum ada pesan langsung.', 'lanchat.broadcastPlaceholder': 'Siaran ke semua...', 'lanchat.dmPlaceholder': 'Pesan ke {name}...', - 'lanchat.enterNickname': 'Masukkan nama panggilan baru:', // ApprovalDialog hints - 'approval.denyHint': 'Tolak', - 'approval.allowHint': 'Izinkan', - 'approval.alwaysHint': 'Selalu', - 'approval.copyToClipboard': 'Salin ke clipboard', - 'approval.ariaLabel': 'Persetujuan tool', // AskUserDialog 'askUser.typeAnswer': 'Ketik jawaban Anda...', - 'askUser.additionalNotes': 'Catatan tambahan (opsional)', - 'askUser.close': 'Tutup dialog', - 'askUser.cancel': 'Batal', // IMManagement 'im.editAdapter': 'Edit: {name}', - 'im.addTitle': 'Tambah adapter IM', - 'im.adapterNameRequired': 'Masukkan nama adapter', // FileBrowser 'files.searchPlaceholder': 'Cari file...', 'files.officeDocument': 'Dokumen Office', 'files.openExternal': 'Buka dengan aplikasi eksternal untuk melihat', - 'files.renderingMermaid': 'Merender diagram...', 'files.htmlPreview': 'Pratinjau HTML', // Dialogs / About - 'about.checkUpdates': 'Periksa Pembaruan', - 'about.checking': 'Memeriksa...', - 'about.newVersion': 'Versi baru tersedia: v{version}', - 'about.download': 'Unduh', // TopDragBar (window controls) - 'window.close': 'Tutup', - 'window.minimize': 'Minimalkan', - 'window.maximize': 'Maksimalkan', - 'window.restore': 'Pulihkan jendela', // StatusBar 'status.toggleContext': 'Alihkan panel konteks', // TeamBoard 'team.boardTitle': 'Papan Tim', - 'team.closeBoard': 'Tutup papan tim', // Common shared 'common.dismiss': 'Tutup notifikasi', @@ -650,12 +540,8 @@ const id = { 'settings.chooseVendor': 'Pilih vendor...', 'settings.chooseEndpoint': 'Pilih endpoint...', 'settings.modeSupervised': 'Terawasi (konfirmasi setiap tool)', - 'settings.modeAuto': 'Otomatis (hanya tool aman)', - 'settings.modePlan': 'Rencana (hanya-baca)', 'settings.modeBypass': 'Lewati (setujui otomatis tool aman)', 'settings.modeBypassAll': 'Lewati (setujui otomatis sebagian besar tool)', - 'settings.modeAutopilot': 'Otopilot (setujui semua)', - 'settings.modeAutopilotHigh': 'Otopilot (otonomi tinggi)', 'settings.saveModeHint': 'Simpan untuk mempertahankan mode default ini. Perubahan mode runtime masih mengikuti penanganan mode normal aplikasi.', // Dialogs @@ -682,11 +568,6 @@ const id = { 'onboarding.languageHint': 'Anda dapat mengubahnya nanti di Pengaturan', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Tinjau dan setujui setiap eksekusi tool', - 'settings.modeDescAuto': 'Otomatis setujui hanya operasi aman', - 'settings.modeDescPlan': 'Jelajahi kode tanpa membuat perubahan', - 'settings.modeDescBypass': 'Otomatis setujui sebagian besar operasi', - 'settings.modeDescAutopilot': 'Otonomi penuh dengan gangguan minimal', 'settings.agentSafetyHint': 'Tinjau berapa banyak otonomi yang dimiliki agent desktop saat ini. Ini merangkum perilaku yang ada tanpa mengubah kebijakan tool lanjutan.', 'settings.workspaceAccessHint': 'Tool file beroperasi dalam workspace saat ini dan direktori yang diizinkan dikonfigurasi. Pengeditan direktori yang diizinkan secara lanjutan sengaja tidak diekspos di sini untuk menghindari perubahan batas keamanan secara tidak sengaja.', 'settings.appearanceHint': 'Sesuaikan tema visual. Aplikasi mengikuti preferensi sistem Anda secara default.', @@ -745,9 +626,6 @@ const id = { 'toast.copiedMessages': 'Menyalin {count} pesan ke clipboard', // FileBrowser - 'files.emptyDirectory': 'Direktori kosong', - 'files.noMatchingFiles': 'Tidak ada file yang cocok', - 'files.selectToPreview': 'Pilih file untuk pratinjau', // ApprovalDialog risk levels 'approval.riskHigh': 'Risiko Tinggi', @@ -755,59 +633,12 @@ const id = { 'approval.riskLow': 'Risiko Rendah', // DebugConsole - 'debug.filterLogs': 'Saring log debug', // Sidebar context menu - 'sidebar.ctxOpen': 'Buka', - 'sidebar.ctxRename': 'Ganti Nama', - 'sidebar.ctxCopyId': 'Salin ID', - 'sidebar.ctxDelete': 'Hapus', - 'sidebar.ctxPin': 'Sematkan', - 'sidebar.ctxUnpin': 'Lepas Sematan', - 'sidebar.startConversation': 'Mulai percakapan', - 'sidebar.noMatching': 'Tidak ada sesi yang cocok "{search}"', - 'sidebar.clearSearch': 'Bersihkan pencarian', - 'sidebar.noSessionsYet': 'Belum ada sesi', // ChatView context menu & run stats - 'chat.ctxCopy': 'Salin', - 'chat.ctxEdit': 'Edit', - 'chat.ctxRegenerate': 'Buat Ulang', - 'chat.runDuration': 'Durasi', - 'chat.runTools': 'Tool', - 'chat.runFiles': 'File', - 'chat.runErrors': 'Kesalahan', - 'chat.runTokens': 'Token', - 'chat.dropImages': 'Jatuhkan gambar untuk dilampirkan', - 'chat.slashHelp': 'Tampilkan perintah yang tersedia', - 'chat.slashModel': 'Ganti atau lihat model AI', - 'chat.slashMode': 'Ubah mode izin (auto/terawasi/rencana/lewati)', - 'chat.slashClear': 'Bersihkan riwayat obrolan', - 'chat.slashCompact': 'Kompres jendela konteks', - 'chat.slashContext': 'Tampilkan detail penggunaan konteks', - 'chat.slashCost': 'Tampilkan penggunaan token dan biaya', - 'chat.slashCopy': 'Salin percakapan ke clipboard', - 'chat.slashExport': 'Unduh percakapan sebagai file markdown', - 'chat.slashSessions': 'Jelajahi dan ganti sesi', - 'chat.slashConfig': 'Lihat atau edit konfigurasi', - 'chat.slashStatus': 'Tampilkan status runtime', - 'chat.slashSkills': 'Jelajahi keterampilan yang tersedia', - 'chat.slashMcp': 'Kelola server MCP', - 'chat.slashReview': 'Tinjau perubahan kode (git diff)', - 'chat.slashDiff': 'Tampilkan diff working tree', - 'chat.slashReflect': 'Memicu refleksi diri', - 'chat.slashUndo': 'Batalkan edit file terakhir', - 'chat.slashRegenerate': 'Buat ulang respons terakhir', - 'chat.slashTodo': 'Manajemen tugas', - 'chat.slashInit': 'Inisialisasi file memori proyek', - 'chat.slashLang': 'Ubah bahasa antarmuka', - 'chat.slashBug': 'Lapork bug', // Dialogs links - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Rilis', - 'dialogs.linkIssues': 'Masalah', - 'dialogs.linkDiscord': 'Discord', // MCPServers transports 'mcp.transportHttp': 'HTTP / SSE', @@ -816,20 +647,14 @@ const id = { 'mcp.descWs': 'Server jarak jauh melalui WebSocket', // IMManagement - 'im.qrAuthHint': 'Platform ini menggunakan autentikasi kode QR. Simpan untuk memulai proses pasangan.', - 'im.noConfigurableFields': 'Tidak ada kolom yang dapat dikonfigurasi untuk adapter ini.', // PairingCodeDialog - 'pairing.enterCode': 'Masukkan kode ini di saluran IM Anda:', // LanChatView - 'lanchat.noContactsOnline': 'Tidak ada kontak yang daring', // ContextPanel - 'context.noImAdapters': 'Tidak ada adapter IM terikat', // SettingsPage - 'settings.maxTokensHint': 'Setel ke 0 atau biarkan kosong untuk deteksi otomatis dari spesifikasi model.', 'settings.oauthConnected': 'Terhubung', 'settings.oauthNotConnected': 'Tidak terhubung', 'settings.oauthLoggingIn': 'Sedang masuk...', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/ja.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/ja.ts index 45b1f8823..c45f6683d 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/ja.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/ja.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'MCPサーバー', 'nav.settings': '設定', 'nav.debug': 'デバッグコンソール', - 'nav.lanchat': 'LANチャット', 'nav.cron': 'スケジュールタスク', 'cron.title': 'スケジュールタスク', 'cron.newTask': '新規タスク', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': '新規セッション', 'sidebar.untitled': '無題', 'sidebar.delete': '削除', - 'sidebar.loading': '読み込み中...', 'sidebar.group.pinned': 'ピン留め', 'sidebar.group.today': '今日', 'sidebar.group.yesterday': '昨日', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': '準備完了', 'status.thinking': '考え中...', - 'status.streaming': 'ストリーミング中', 'status.offline': 'オフライン', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': 'セッションをJSONとしてエクスポート', 'cmd.copyMarkdown': 'セッションをMarkdownとしてコピー', 'cmd.searchSessions': 'セッションを検索', - 'cmd.clearHistory': '履歴をクリア', - 'cmd.compactContext': 'コンテキストを圧縮', - 'cmd.undoLast': '最後の操作を取り消す', 'cmd.shareSession': 'セッションを共有', 'cmd.toggleContext': 'コンテキストパネルの切り替え', 'cmd.toggleTheme': 'テーマを切り替え', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': 'コンテキスト', 'context.usage': 'コンテキスト使用量', - 'context.permission': '権限モード', - 'context.files': 'コンテキスト内のファイル', 'context.input': '入力', 'context.output': '出力', 'context.cacheRead': 'キャッシュ読み取り', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'APIキー', 'settings.apiKeyPlaceholder': 'APIキーを入力してください', 'settings.model': 'モデル', - 'settings.modelPlaceholder': '例: claude-sonnet-4-20250514', 'settings.permissionMode': '権限モード', 'settings.language': '言語', 'settings.identity': 'ID', - 'settings.identityPlaceholder': 'お名前またはエイリアス', - 'settings.version': 'バージョン', 'settings.save': '保存', 'settings.saved': '保存しました!', 'settings.saving': '保存中...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': '適用', // Onboarding - 'onboarding.title': 'GGCodeへようこそ', - 'onboarding.subtitle': 'いくつかのステップで始めましょう', 'onboarding.next': '次へ', 'onboarding.back': '戻る', 'onboarding.getStarted': '始める', - 'onboarding.step.vendor': 'AIプロバイダーを選択', - 'onboarding.step.apiKey': 'APIキーを入力', - 'onboarding.step.configure': '設定', 'onboarding.vendorHint': '使用するAIプロバイダーを選択してください', - 'onboarding.apiKeyHint': 'APIキーはローカルに保存され、サーバーには送信されません', 'onboarding.configHint': 'これらの設定を調整するか、デフォルトのままにしてください', - 'onboarding.skip': 'セットアップをスキップ', - 'onboarding.workDir': '作業ディレクトリ', - 'onboarding.browse': '参照', - 'onboarding.workDirHint': '作業するプロジェクトディレクトリを選択してください', 'onboarding.welcome': 'GGCodeへようこそ', 'onboarding.selectDirHint': '開始するにはプロジェクトディレクトリを選択してください', 'onboarding.chooseDir': 'ディレクトリを選択', 'onboarding.modeSupervised': 'スーパーバイズ', 'onboarding.modeSupervisedDesc': '実行前に各ツール呼び出しを確認・承認', - 'onboarding.modeAuto': 'オート', - 'onboarding.modeAutoDesc': '読み取り専用ツールを自動承認、破壊的操作は確認', 'onboarding.modeBypass': 'バイパス', 'onboarding.modeBypassDesc': 'すべてのツールを自動承認、確認不要', - 'onboarding.modeAutopilot': 'オートパイロット', - 'onboarding.modeAutopilotDesc': '完全自律 — 確認なしでエージェントが実行', 'onboarding.fetchingModels': '取得中...', 'onboarding.fetchModels': 'モデルを取得', 'onboarding.noModelsFound': 'モデルが見つかりません。モデル名を手動で入力してください。', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'GGCodeについて', - 'about.version': 'バージョン', 'about.description': 'ターミナル向けAIコーディングエージェント', - 'about.close': '閉じる', // PairingCodeDialog 'pairing.title': 'デバイスをペアリング', - 'pairing.code': 'ペアリングコード', - 'pairing.expiresIn': '{n}秒で期限切れ', 'pairing.close': '閉じる', // ShareDialog 'share.title': 'セッションを共有', - 'share.connectUrl': '接続URL', - 'share.qrCode': 'QRコード', 'share.copy': 'コピー', 'share.copied': 'コピーしました!', - 'share.openInBrowser': 'ブラウザで開く', 'share.stopSharing': '共有を停止', 'share.generating': '生成中...', - 'share.scanQr': 'QRコードをスキャンして接続', - 'share.activeDevices': '{n}台のデバイスが接続中', // IMManagement 'im.title': 'IMアダプター', @@ -281,55 +247,23 @@ const en = { 'im.unbound': '未バインド', 'im.online': 'オンライン', 'im.offline': 'オフライン', - 'im.muted': 'ミュート中', 'im.mute': 'ミュート', 'im.unmute': 'ミュート解除', - 'im.delete': '削除', - 'im.configure': '設定', 'im.platform': 'プラットフォーム', 'im.name': '名前', - 'im.workspace': 'ワークスペース', - 'im.enabled': '有効', 'im.save': '保存', 'im.cancel': 'キャンセル', 'im.selectPlatform': 'プラットフォームを選択...', - 'im.adapterName': 'アダプター名', - 'im.adapterNamePlaceholder': '例: マイSlack', - 'im.bindToWorkspace': 'ワークスペースにバインド', - 'im.enabledHint': 'このアダプターを有効にする', - 'im.pairing': 'ペアリング中...', - 'im.paired': 'ペアリング済み', - 'im.notPaired': '未ペアリング', - 'im.startPairing': 'ペアリングを開始', // MCPServers 'mcp.title': 'MCPサーバー', 'mcp.add': '追加', - 'mcp.noServers': 'MCPサーバーが設定されていません。「追加」をクリックして追加してください。', 'mcp.name': '名前', - 'mcp.command': 'コマンド', - 'mcp.args': '引数', - 'mcp.url': 'URL', - 'mcp.headers': 'ヘッダー', - 'mcp.type': 'タイプ', - 'mcp.typeLocal': 'ローカル(stdio)', - 'mcp.typeRemote': 'リモート(HTTP)', - 'mcp.enabled': '有効', - 'mcp.save': '保存', 'mcp.cancel': 'キャンセル', - 'mcp.delete': '削除', - 'mcp.namePlaceholder': 'サーバー名', - 'mcp.commandPlaceholder': '例: npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': '引数(スペース区切り)', - 'mcp.urlPlaceholder': '例: http://localhost:3000/mcp', - 'mcp.selectType': 'タイプを選択...', // FileBrowser 'files.fileTooLarge': 'ファイルが大きすぎてプレビューできません(>2MB)', 'files.binaryFile': 'バイナリファイル', - 'files.imagePreview': '画像プレビュー', - 'files.noPreview': 'プレビューは利用できません', - 'files.openInEditor': 'エディタで開く', // DebugConsole 'debug.title': 'デバッグコンソール', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'エージェント & セーフティ', - 'settings.workspaceAccess': 'ワークスペース & ファイルアクセス', 'settings.appearance': '外観', 'settings.integrations': '統合', - 'settings.languageServers': '言語サーバー', 'settings.diagnostics': '診断', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'ライフサイクルフック', 'settings.hooksAdd': '+ 追加', 'settings.hooksEdit': '編集', 'settings.hooksDelete': '削除', 'settings.hooksInject': '注入', 'settings.hooksNone': '(なし)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'マッチ (* ですべて)', 'settings.hooksType': 'タイプ (command/http)', 'settings.hooksCommand': 'コマンド', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': 'マッチモード', 'settings.hooksTesterTitle': '正規表現テスター', 'settings.hooksTesterPlaceholder': '例: run_command git push', - 'settings.hooksTestBtn': 'テスト', 'settings.hooksTestMatched': 'マッチしました!', 'settings.hooksTestNotMatched': 'マッチしません', 'settings.hooksTestError': 'エラー: {0}', 'settings.addCustomEndpoint': 'カスタムエンドポイントを追加', 'settings.configured': '設定済み', - 'settings.install': 'インストール:', 'settings.saveLimits': '制限を保存', 'settings.refreshModels': 'APIからモデルを更新', 'settings.versionPlaceholder': 'バージョン文字列...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': 'テーマ', 'settings.themeLight': 'ライト', 'settings.themeDark': 'ダーク', - 'settings.themeSystem': 'システム', - 'settings.integrationsHint': 'ツールへのクイックアクセスのための統合機能を有効にします。', 'settings.lspHint': 'Language Server Protocol(LSP)サーバーは、エージェントにコードインテリジェンスを提供します: 定義への移動、参照の検索、ホバー情報、診断など。', 'settings.lspNoServers': 'このワークスペースでは言語サーバーが検出されませんでした。', 'settings.lspConfigured': '(設定済み)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': 'エラーをコピー', // Permission mode dropdown options - 'mode.supervisedDesc': 'スーパーバイズ(各ツールを確認)', - 'mode.autoDesc': 'オート(安全なツールのみ)', - 'mode.planDesc': 'プラン(読み取り専用)', - 'mode.bypassDesc': 'バイパス(ほぼ全ツールを自動承認)', - 'mode.autopilotDesc': 'オートパイロット(高い自律性)', // Common dropdown placeholders - 'common.chooseVendor': 'ベンダーを選択...', - 'common.chooseEndpoint': 'エンドポイントを選択...', 'common.chooseModel': 'モデルを選択...', - 'common.english': 'English', // ChatView activity descriptions 'chat.activity.reading': 'ファイルを読み込み中...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': 'サブエージェントを実行中...', 'chat.activity.waiting': '入力を待機中...', 'chat.activity.saving': 'メモリを保存中...', - 'chat.activity.writingResponse': '回答を作成中...', 'chat.activity.planMode': 'プランモードに移行中...', // ChatView UI labels 'chat.findPlaceholder': '会話内を検索...', - 'chat.noModel': 'モデルなし', - 'chat.selectWorkspace': 'ワークスペースを選択', 'chat.sending': '送信中...', 'chat.failedToSend': '送信に失敗しました', 'chat.nickname': 'ニックネーム', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': '推論をコピー', 'chat.title.editResend': '編集して再送信', 'chat.title.copyMessage': 'メッセージをコピー', - 'chat.title.regenerate': '回答を再生成', - 'chat.title.copyResult': '結果をコピー', - 'chat.title.copyError': 'エラーをコピー', 'chat.title.teamBoard': 'チームボードを開く', - 'chat.title.editIdentity': 'クリックしてニックネーム、役割、チームを編集', // MCPServers 'mcp.transport': 'トランスポート', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': 'まだダイレクトメッセージがありません。', 'lanchat.broadcastPlaceholder': '全員にブロードキャスト...', 'lanchat.dmPlaceholder': '{name}にメッセージ...', - 'lanchat.enterNickname': '新しいニックネームを入力:', // ApprovalDialog hints - 'approval.denyHint': '拒否', - 'approval.allowHint': '許可', - 'approval.alwaysHint': '常に', - 'approval.copyToClipboard': 'クリップボードにコピー', - 'approval.ariaLabel': 'ツール承認', // AskUserDialog 'askUser.typeAnswer': '回答を入力してください...', - 'askUser.additionalNotes': '追加メモ(任意)', - 'askUser.close': 'ダイアログを閉じる', - 'askUser.cancel': 'キャンセル', // IMManagement 'im.editAdapter': '編集: {name}', - 'im.addTitle': 'IMアダプターを追加', - 'im.adapterNameRequired': 'アダプター名を入力してください', // FileBrowser 'files.searchPlaceholder': 'ファイルを検索...', 'files.officeDocument': 'Officeドキュメント', 'files.openExternal': '外部アプリケーションで開いて表示', - 'files.renderingMermaid': '図をレンダリング中...', 'files.htmlPreview': 'HTMLプレビュー', // Dialogs / About - 'about.checkUpdates': 'アップデートを確認', - 'about.checking': '確認中...', - 'about.newVersion': '新しいバージョンが利用可能です: v{version}', - 'about.download': 'ダウンロード', // TopDragBar (window controls) - 'window.close': '閉じる', - 'window.minimize': '最小化', - 'window.maximize': '最大化', - 'window.restore': 'ウィンドウを復元', // StatusBar 'status.toggleContext': 'コンテキストパネルの切り替え', // TeamBoard 'team.boardTitle': 'チームボード', - 'team.closeBoard': 'チームボードを閉じる', // Common shared 'common.dismiss': '通知を閉じる', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': 'ベンダーを選択...', 'settings.chooseEndpoint': 'エンドポイントを選択...', 'settings.modeSupervised': 'スーパーバイズ(各ツールを確認)', - 'settings.modeAuto': 'オート(安全なツールのみ)', - 'settings.modePlan': 'プラン(読み取り専用)', 'settings.modeBypass': 'バイパス(安全なツールを自動承認)', 'settings.modeBypassAll': 'バイパス(ほぼ全ツールを自動承認)', - 'settings.modeAutopilot': 'オートパイロット(すべてを承認)', - 'settings.modeAutopilotHigh': 'オートパイロット(高い自律性)', 'settings.saveModeHint': '保存してこのデフォルトモードを維持します。実行時のモード変更は引き続きアプリの通常のモード処理に従います。', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': '後で設定で変更できます', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': '各ツール実行を確認・承認', - 'settings.modeDescAuto': '安全な操作のみ自動承認', - 'settings.modeDescPlan': '変更を加えずにコードを探索', - 'settings.modeDescBypass': 'ほとんどの操作を自動承認', - 'settings.modeDescAutopilot': '最小限の中断で完全に自律動作', 'settings.agentSafetyHint': 'デスクトップエージェントが現在持っている自律性の度合いを確認します。これは高度なツールポリシーを変更せずに、既存の動作をまとめたものです。', 'settings.workspaceAccessHint': 'ファイルツールは現在のワークスペースと設定された許可ディレクトリ内で動作します。高度な許可ディレクトリの編集は、安全性の境界を誤って変更しないよう、ここでは意図的に公開していません。', 'settings.appearanceHint': 'ビジュアルテーマをカスタマイズします。アプリはデフォルトでシステム設定に従います。', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': 'ほとんどの操作がプロンプトなしで許可されます。より高速な実行に慣れている信頼されたワークスペースでのみ使用してください。', 'settings.modeDescFullAutopilot': 'エージェントは高い自律性を持ち、多くのステップを自動的に進行できます。重要なコードで使用する前に、ワークスペースの状態を確認してください。', 'settings.modeDescFullSupervised': 'エージェントは未指定のツールアクションの前に確認を求めます。通常のデスクトップ使用に向けたバランスの取れたデフォルトです。', - 'files.emptyDirectory': '空のディレクトリ', - 'files.noMatchingFiles': '一致するファイルなし', - 'files.selectToPreview': 'プレビューするファイルを選択', 'approval.riskHigh': '高リスク', 'approval.riskMedium': '中リスク', 'approval.riskLow': '低リスク', - 'debug.filterLogs': 'デバッグログをフィルタ', - 'sidebar.ctxOpen': '開く', - 'sidebar.ctxRename': '名前変更', - 'sidebar.ctxCopyId': 'IDをコピー', - 'sidebar.ctxDelete': '削除', - 'sidebar.ctxPin': 'ピン留め', - 'sidebar.ctxUnpin': 'ピン解除', - 'sidebar.startConversation': '会話を開始', - 'sidebar.noMatching': '"{search}"に一致するセッションなし', - 'sidebar.clearSearch': '検索をクリア', - 'sidebar.noSessionsYet': 'セッションがまだありません', - 'chat.ctxCopy': 'コピー', - 'chat.ctxEdit': '編集', - 'chat.ctxRegenerate': '再生成', - 'chat.runDuration': '所要時間', - 'chat.runTools': 'ツール', - 'chat.runFiles': 'ファイル', - 'chat.runErrors': 'エラー', - 'chat.runTokens': 'トークン', - 'chat.dropImages': '画像をドロップして添付', - 'chat.slashHelp': '利用可能なコマンドを表示', - 'chat.slashModel': 'AIモデルを切り替え/表示', - 'chat.slashMode': '権限モードを変更(auto/supervised/plan/bypass)', - 'chat.slashClear': 'チャット履歴をクリア', - 'chat.slashCompact': 'コンテキストウィンドウを圧縮', - 'chat.slashContext': 'コンテキスト使用状況を表示', - 'chat.slashCost': 'トークン使用量とコストを表示', - 'chat.slashCopy': '会話をクリップボードにコピー', - 'chat.slashExport': '会話をMarkdownとしてダウンロード', - 'chat.slashSessions': 'セッションの閲覧と切り替え', - 'chat.slashConfig': '設定の表示または編集', - 'chat.slashStatus': 'ランタイムステータスを表示', - 'chat.slashSkills': '利用可能なスキルを閲覧', - 'chat.slashMcp': 'MCPサーバーを管理', - 'chat.slashReview': 'コード変更をレビュー(git diff)', - 'chat.slashDiff': '作業ツリーの差分を表示', - 'chat.slashReflect': '自己リフレクションをトリガー', - 'chat.slashUndo': '最後のファイル編集を取り消す', - 'chat.slashRegenerate': '最後の応答を再生成', - 'chat.slashTodo': 'タスク管理', - 'chat.slashInit': 'プロジェクトメモリファイルを初期化', - 'chat.slashLang': 'インターフェース言語を変更', - 'chat.slashBug': 'バグを報告', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'リリース', - 'dialogs.linkIssues': 'Issues', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'stdin/stdout経由のローカルプロセス', 'mcp.descHttp': 'HTTP経由のリモートサーバー(Streamable HTTP / SSE)', 'mcp.descWs': 'WebSocket経由のリモートサーバー', - 'im.qrAuthHint': 'このプラットフォームはQRコード認証を使用します。保存してペアリングプロセスを開始します。', - 'im.noConfigurableFields': 'このアダプターに設定可能なフィールドはありません。', - 'pairing.enterCode': 'IMチャンネルにこのコードを入力:', - 'lanchat.noContactsOnline': 'オンラインの連絡先なし', - 'context.noImAdapters': 'バインドされたIMアダプターなし', - 'settings.maxTokensHint': '0に設定するか空のままにすると、モデルスペックから自動検出されます。', 'askUser.notesPlaceholder': '追加メモ(任意)', 'chat.menuCopy': 'コピー', 'chat.menuEdit': '編集', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/ko.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/ko.ts index 184d65d79..e1c40fdd7 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/ko.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/ko.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'MCP 서버', 'nav.settings': '설정', 'nav.debug': '디버그 콘솔', - 'nav.lanchat': 'LAN 채팅', 'nav.cron': '예약 작업', 'cron.title': '예약 작업', 'cron.newTask': '새 작업', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': '새 세션', 'sidebar.untitled': '제목 없음', 'sidebar.delete': '삭제', - 'sidebar.loading': '로딩 중...', 'sidebar.group.pinned': '고정됨', 'sidebar.group.today': '오늘', 'sidebar.group.yesterday': '어제', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': '준비됨', 'status.thinking': '생각 중...', - 'status.streaming': '스트리밍 중', 'status.offline': '오프라인', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': '세션을 JSON으로 내보내기', 'cmd.copyMarkdown': '세션을 Markdown로 복사', 'cmd.searchSessions': '세션 검색', - 'cmd.clearHistory': '기록 지우기', - 'cmd.compactContext': '컨텍스트 압축', - 'cmd.undoLast': '마지막 작업 실행 취소', 'cmd.shareSession': '세션 공유', 'cmd.toggleContext': '컨텍스트 패널 전환', 'cmd.toggleTheme': '테마 전환', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': '컨텍스트', 'context.usage': '컨텍스트 사용량', - 'context.permission': '권한 모드', - 'context.files': '컨텍스트 내 파일', 'context.input': '입력', 'context.output': '출력', 'context.cacheRead': '캐시 읽기', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'API 키', 'settings.apiKeyPlaceholder': 'API 키를 입력하세요', 'settings.model': '모델', - 'settings.modelPlaceholder': '예: claude-sonnet-4-20250514', 'settings.permissionMode': '권한 모드', 'settings.language': '언어', 'settings.identity': '정체성', - 'settings.identityPlaceholder': '이름 또는 별명', - 'settings.version': '버전', 'settings.save': '저장', 'settings.saved': '저장됨!', 'settings.saving': '저장 중...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': '적용', // Onboarding - 'onboarding.title': 'GGCode에 오신 것을 환영합니다', - 'onboarding.subtitle': '몇 단계로 시작하세요', 'onboarding.next': '다음', 'onboarding.back': '뒤로', 'onboarding.getStarted': '시작하기', - 'onboarding.step.vendor': 'AI 제공자 선택', - 'onboarding.step.apiKey': 'API 키 입력', - 'onboarding.step.configure': '설정', 'onboarding.vendorHint': '사용하려는 AI 제공자를 선택하세요', - 'onboarding.apiKeyHint': 'API 키는 로컬에 저장되며 서버로 전송되지 않습니다', 'onboarding.configHint': '설정을 조정하거나 기본값을 그대로 사용하세요', - 'onboarding.skip': '설정 건너뛰기', - 'onboarding.workDir': '작업 디렉토리', - 'onboarding.browse': '찾아보기', - 'onboarding.workDirHint': '작업할 프로젝트 디렉토리를 선택하세요', 'onboarding.welcome': 'GGCode에 오신 것을 환영합니다', 'onboarding.selectDirHint': '시작하려면 프로젝트 디렉토리를 선택하세요', 'onboarding.chooseDir': '디렉토리 선택', 'onboarding.modeSupervised': '감독 모드', 'onboarding.modeSupervisedDesc': '실행 전 모든 도구 호출을 검토하고 승인', - 'onboarding.modeAuto': '자동', - 'onboarding.modeAutoDesc': '읽기 전용 도구는 자동 승인, 파괴적 작업은 확인', 'onboarding.modeBypass': '바이패스', 'onboarding.modeBypassDesc': '모든 도구를 자동 승인, 확인 불필요', - 'onboarding.modeAutopilot': '오토파일럿', - 'onboarding.modeAutopilotDesc': '완전 자율 — 에이전트가 확인 없이 실행', 'onboarding.fetchingModels': '가져오는 중...', 'onboarding.fetchModels': '모델 가져오기', 'onboarding.noModelsFound': '모델을 찾을 수 없습니다. 모델 이름을 수동으로 입력하세요.', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'GGCode 정보', - 'about.version': '버전', 'about.description': '터미널용 AI 코딩 에이전트', - 'about.close': '닫기', // PairingCodeDialog 'pairing.title': '기기 페어링', - 'pairing.code': '페어링 코드', - 'pairing.expiresIn': '{n}초 후 만료', 'pairing.close': '닫기', // ShareDialog 'share.title': '세션 공유', - 'share.connectUrl': '연결 URL', - 'share.qrCode': 'QR 코드', 'share.copy': '복사', 'share.copied': '복사됨!', - 'share.openInBrowser': '브라우저에서 열기', 'share.stopSharing': '공유 중지', 'share.generating': '생성 중...', - 'share.scanQr': '연결하려면 QR 코드를 스캔하세요', - 'share.activeDevices': '{n}개 기기 연결됨', // IMManagement 'im.title': 'IM 어댑터', @@ -281,55 +247,23 @@ const en = { 'im.unbound': '미할당', 'im.online': '온라인', 'im.offline': '오프라인', - 'im.muted': '음소거됨', 'im.mute': '음소거', 'im.unmute': '음소거 해제', - 'im.delete': '삭제', - 'im.configure': '설정', 'im.platform': '플랫폼', 'im.name': '이름', - 'im.workspace': '작업공간', - 'im.enabled': '활성화됨', 'im.save': '저장', 'im.cancel': '취소', 'im.selectPlatform': '플랫폼 선택...', - 'im.adapterName': '어댑터 이름', - 'im.adapterNamePlaceholder': '예: 내 Slack', - 'im.bindToWorkspace': '작업공간에 바인딩', - 'im.enabledHint': '이 어댑터 활성화', - 'im.pairing': '페어링 중...', - 'im.paired': '페어링됨', - 'im.notPaired': '페어링되지 않음', - 'im.startPairing': '페어링 시작', // MCPServers 'mcp.title': 'MCP 서버', 'mcp.add': '추가', - 'mcp.noServers': '설정된 MCP 서버가 없습니다. "추가"를 클릭하여 추가하세요.', 'mcp.name': '이름', - 'mcp.command': '명령어', - 'mcp.args': '인수', - 'mcp.url': 'URL', - 'mcp.headers': '헤더', - 'mcp.type': '유형', - 'mcp.typeLocal': '로컬 (stdio)', - 'mcp.typeRemote': '원격 (HTTP)', - 'mcp.enabled': '활성화됨', - 'mcp.save': '저장', 'mcp.cancel': '취소', - 'mcp.delete': '삭제', - 'mcp.namePlaceholder': '서버 이름', - 'mcp.commandPlaceholder': '예: npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': '인수 (공백으로 구분)', - 'mcp.urlPlaceholder': '예: http://localhost:3000/mcp', - 'mcp.selectType': '유형 선택...', // FileBrowser 'files.fileTooLarge': '파일이 너무 커서 미리볼 수 없습니다 (>2MB)', 'files.binaryFile': '바이너리 파일', - 'files.imagePreview': '이미지 미리보기', - 'files.noPreview': '미리보기를 사용할 수 없습니다', - 'files.openInEditor': '편집기에서 열기', // DebugConsole 'debug.title': '디버그 콘솔', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': '에이전트 및 보안', - 'settings.workspaceAccess': '작업공간 및 파일 접근', 'settings.appearance': '외관', 'settings.integrations': '통합', - 'settings.languageServers': '언어 서버', 'settings.diagnostics': '진단', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': '라이프사이클 훅', 'settings.hooksAdd': '+ 추가', 'settings.hooksEdit': '편집', 'settings.hooksDelete': '삭제', 'settings.hooksInject': '주입', 'settings.hooksNone': '(없음)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': '매치 (* 모두)', 'settings.hooksType': '유형 (command/http)', 'settings.hooksCommand': '명령', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': '매치 모드', 'settings.hooksTesterTitle': '정규식 테스터', 'settings.hooksTesterPlaceholder': '예: run_command git push', - 'settings.hooksTestBtn': '테스트', 'settings.hooksTestMatched': '매치됨!', 'settings.hooksTestNotMatched': '매치되지 않음', 'settings.hooksTestError': '오류: {0}', 'settings.addCustomEndpoint': '커스텀 엔드포인트 추가', 'settings.configured': '설정됨', - 'settings.install': '설치:', 'settings.saveLimits': '제한 저장', 'settings.refreshModels': 'API에서 모델 새로고침', 'settings.versionPlaceholder': '버전 문자열...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': '테마', 'settings.themeLight': '밝게', 'settings.themeDark': '어둡게', - 'settings.themeSystem': '시스템', - 'settings.integrationsHint': '도구에 빠르게 접근하기 위한 통합 기능을 활성화합니다.', 'settings.lspHint': '언어 서버 프로토콜(LSP) 서버는 에이전트에 코드 인텔리전스를 제공합니다: 정의로 이동, 참조 찾기, 호버 정보, 진단 등.', 'settings.lspNoServers': '이 작업공간에서 감지된 언어 서버가 없습니다.', 'settings.lspConfigured': '(설정됨)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': '오류 복사', // Permission mode dropdown options - 'mode.supervisedDesc': '감독 (각 도구 확인)', - 'mode.autoDesc': '자동 (안전한 도구만)', - 'mode.planDesc': '계획 (읽기 전용)', - 'mode.bypassDesc': '바이패스 (대부분의 도구 자동 승인)', - 'mode.autopilotDesc': '오토파일럿 (고도 자율)', // Common dropdown placeholders - 'common.chooseVendor': '제공자 선택...', - 'common.chooseEndpoint': '엔드포인트 선택...', 'common.chooseModel': '모델 선택...', - 'common.english': 'English', // ChatView activity descriptions 'chat.activity.reading': '파일 읽는 중...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': '서브 에이전트 실행 중...', 'chat.activity.waiting': '입력 대기 중...', 'chat.activity.saving': '메모리 저장 중...', - 'chat.activity.writingResponse': '응답 작성 중...', 'chat.activity.planMode': '계획 모드 진입 중...', // ChatView UI labels 'chat.findPlaceholder': '대화에서 찾기...', - 'chat.noModel': '모델 없음', - 'chat.selectWorkspace': '작업공간 선택', 'chat.sending': '전송 중...', 'chat.failedToSend': '전송 실패', 'chat.nickname': '닉네임', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': '추론 복사', 'chat.title.editResend': '편집 후 재전송', 'chat.title.copyMessage': '메시지 복사', - 'chat.title.regenerate': '응답 다시 생성', - 'chat.title.copyResult': '결과 복사', - 'chat.title.copyError': '오류 복사', 'chat.title.teamBoard': '팀 보드 열기', - 'chat.title.editIdentity': '클릭하여 닉네임, 역할, 팀 편집', // MCPServers 'mcp.transport': '전송 방식', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': '아직 직접 메시지가 없습니다.', 'lanchat.broadcastPlaceholder': '모두에게 브로드캐스트...', 'lanchat.dmPlaceholder': '{name}님에게 메시지...', - 'lanchat.enterNickname': '새 닉네임 입력:', // ApprovalDialog hints - 'approval.denyHint': '거부', - 'approval.allowHint': '허용', - 'approval.alwaysHint': '항상', - 'approval.copyToClipboard': '클립보드에 복사', - 'approval.ariaLabel': '도구 승인', // AskUserDialog 'askUser.typeAnswer': '답변 입력...', - 'askUser.additionalNotes': '추가 메모 (선택사항)', - 'askUser.close': '대화상자 닫기', - 'askUser.cancel': '취소', // IMManagement 'im.editAdapter': '편집: {name}', - 'im.addTitle': 'IM 어댑터 추가', - 'im.adapterNameRequired': '어댑터 이름을 입력하세요', // FileBrowser 'files.searchPlaceholder': '파일 검색...', 'files.officeDocument': 'Office 문서', 'files.openExternal': '외부 애플리케이션으로 열어 보기', - 'files.renderingMermaid': '다이어그램 렌더링 중...', 'files.htmlPreview': 'HTML 미리보기', // Dialogs / About - 'about.checkUpdates': '업데이트 확인', - 'about.checking': '확인 중...', - 'about.newVersion': '새 버전 사용 가능: v{version}', - 'about.download': '다운로드', // TopDragBar (window controls) - 'window.close': '닫기', - 'window.minimize': '최소화', - 'window.maximize': '최대화', - 'window.restore': '창 복원', // StatusBar 'status.toggleContext': '컨텍스트 패널 전환', // TeamBoard 'team.boardTitle': '팀 보드', - 'team.closeBoard': '팀 보드 닫기', // Common shared 'common.dismiss': '알림 닫기', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': '제공자 선택...', 'settings.chooseEndpoint': '엔드포인트 선택...', 'settings.modeSupervised': '감독 (각 도구 확인)', - 'settings.modeAuto': '자동 (안전한 도구만)', - 'settings.modePlan': '계획 (읽기 전용)', 'settings.modeBypass': '바이패스 (안전한 도구 자동 승인)', 'settings.modeBypassAll': '바이패스 (대부분의 도구 자동 승인)', - 'settings.modeAutopilot': '오토파일럿 (모두 승인)', - 'settings.modeAutopilotHigh': '오토파일럿 (고도 자율)', 'settings.saveModeHint': '이 기본 모드를 유지하려면 저장하세요. 런타임 모드 변경은 앱의 일반적인 모드 처리를 따릅니다.', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': '나중에 설정에서 변경할 수 있습니다', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': '각 도구 실행을 검토하고 승인', - 'settings.modeDescAuto': '안전한 작업만 자동 승인', - 'settings.modeDescPlan': '변경 없이 코드 탐색', - 'settings.modeDescBypass': '대부분의 작업 자동 승인', - 'settings.modeDescAutopilot': '최소한의 중단으로 완전한 자율성', 'settings.agentSafetyHint': '데스크톱 에이전트가 현재 가진 자율성 정도를 확인합니다. 고급 도구 정책을 변경하지 않고 기존 동작을 요약합니다.', 'settings.workspaceAccessHint': '파일 도구는 현재 작업공간과 설정된 허용 디렉토리 내에서 작동합니다. 고급 허용 디렉토리 편집은 안전 경계를 실수로 변경하지 않도록 여기서 아직 노출하지 않습니다.', 'settings.appearanceHint': '시각적 테마를 사용자 지정합니다. 앱은 기본적으로 시스템 설정을 따릅니다.', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': '대부분의 작업이 더 적은 확인과 함께 허용됩니다. 더 빠른 실행에 익숙한 신뢰할 수 있는 작업공간에서만 사용하세요.', 'settings.modeDescFullAutopilot': '에이전트가 높은 자율성을 가지며 여러 단계를 자동으로 진행할 수 있습니다. 중요한 코드에 사용하기 전에 작업공간 상태를 확인하세요.', 'settings.modeDescFullSupervised': '에이전트는 지정되지 않은 도구 작업 전에 묻습니다. 일반적인 데스크톱 사용을 위한 균형 잡힌 기본값입니다.', - 'files.emptyDirectory': '빈 디렉토리', - 'files.noMatchingFiles': '일치하는 파일 없음', - 'files.selectToPreview': '미리볼 파일 선택', 'approval.riskHigh': '고위험', 'approval.riskMedium': '중위험', 'approval.riskLow': '저위험', - 'debug.filterLogs': '디버그 로그 필터', - 'sidebar.ctxOpen': '열기', - 'sidebar.ctxRename': '이름 변경', - 'sidebar.ctxCopyId': 'ID 복사', - 'sidebar.ctxDelete': '삭제', - 'sidebar.ctxPin': '고정', - 'sidebar.ctxUnpin': '고정 해제', - 'sidebar.startConversation': '대화 시작', - 'sidebar.noMatching': '"{search}"와 일치하는 세션 없음', - 'sidebar.clearSearch': '검색 지우기', - 'sidebar.noSessionsYet': '아직 세션이 없습니다', - 'chat.ctxCopy': '복사', - 'chat.ctxEdit': '편집', - 'chat.ctxRegenerate': '재생성', - 'chat.runDuration': '소요 시간', - 'chat.runTools': '도구', - 'chat.runFiles': '파일', - 'chat.runErrors': '오류', - 'chat.runTokens': '토큰', - 'chat.dropImages': '이미지를 드롭하여 첨부', - 'chat.slashHelp': '사용 가능한 명령 표시', - 'chat.slashModel': 'AI 모델 전환/보기', - 'chat.slashMode': '권한 모드 변경 (auto/supervised/plan/bypass)', - 'chat.slashClear': '채팅 기록 지우기', - 'chat.slashCompact': '컨텍스트 창 압축', - 'chat.slashContext': '컨텍스트 사용량 표시', - 'chat.slashCost': '토큰 사용량 및 비용 표시', - 'chat.slashCopy': '대화를 클립보드에 복사', - 'chat.slashExport': '대화를 Markdown으로 다운로드', - 'chat.slashSessions': '세션 탐색 및 전환', - 'chat.slashConfig': '설정 보기 또는 편집', - 'chat.slashStatus': '런타임 상태 표시', - 'chat.slashSkills': '사용 가능한 스킬 탐색', - 'chat.slashMcp': 'MCP 서버 관리', - 'chat.slashReview': '코드 변경 검토 (git diff)', - 'chat.slashDiff': '작업 트리 diff 표시', - 'chat.slashReflect': '자기 성찰 트리거', - 'chat.slashUndo': '마지막 파일 편집 취소', - 'chat.slashRegenerate': '마지막 응답 재생성', - 'chat.slashTodo': '작업 관리', - 'chat.slashInit': '프로젝트 메모리 파일 초기화', - 'chat.slashLang': '인터페이스 언어 변경', - 'chat.slashBug': '버그 신고', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': '릴리스', - 'dialogs.linkIssues': '이슈', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'stdin/stdout을 통한 로컬 프로세스', 'mcp.descHttp': 'HTTP를 통한 원격 서버 (Streamable HTTP / SSE)', 'mcp.descWs': 'WebSocket을 통한 원격 서버', - 'im.qrAuthHint': '이 플랫폼은 QR 코드 인증을 사용합니다. 저장하여 페어링 프로세스를 시작하세요.', - 'im.noConfigurableFields': '이 어댑터에 구성 가능한 필드가 없습니다.', - 'pairing.enterCode': 'IM 채널에 이 코드를 입력하세요:', - 'lanchat.noContactsOnline': '온라인 연락처 없음', - 'context.noImAdapters': '바인딩된 IM 어댑터 없음', - 'settings.maxTokensHint': '0으로 설정하거나 비워두면 모델 사양에서 자동 감지됩니다.', 'askUser.notesPlaceholder': '추가 메모 (선택사항)', 'chat.menuCopy': '복사', 'chat.menuEdit': '편집', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/pt.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/pt.ts index d8d636936..6d5916db8 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/pt.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/pt.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'Servidores MCP', 'nav.settings': 'Configurações', 'nav.debug': 'Console de Depuração', - 'nav.lanchat': 'Chat LAN', 'nav.cron': 'Tarefas Agendadas', 'cron.title': 'Tarefas Agendadas', 'cron.newTask': 'Nova Tarefa', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': 'Nova Sessão', 'sidebar.untitled': 'Sem título', 'sidebar.delete': 'Excluir', - 'sidebar.loading': 'Carregando...', 'sidebar.group.pinned': 'Fixadas', 'sidebar.group.today': 'Hoje', 'sidebar.group.yesterday': 'Ontem', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': 'Pronto', 'status.thinking': 'Pensando...', - 'status.streaming': 'Transmitindo', 'status.offline': 'Offline', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': 'Exportar sessão como JSON', 'cmd.copyMarkdown': 'Copiar sessão como Markdown', 'cmd.searchSessions': 'Buscar Sessões', - 'cmd.clearHistory': 'Limpar Histórico', - 'cmd.compactContext': 'Compactar Contexto', - 'cmd.undoLast': 'Desfazer Último', 'cmd.shareSession': 'Compartilhar Sessão', 'cmd.toggleContext': 'Alternar Painel de Contexto', 'cmd.toggleTheme': 'Alternar Tema', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': 'Contexto', 'context.usage': 'Uso de Contexto', - 'context.permission': 'Modo de Permissão', - 'context.files': 'Arquivos no Contexto', 'context.input': 'Entrada', 'context.output': 'Saída', 'context.cacheRead': 'Leitura de Cache', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'Chave de API', 'settings.apiKeyPlaceholder': 'Digite sua chave de API', 'settings.model': 'Modelo', - 'settings.modelPlaceholder': 'ex. claude-sonnet-4-20250514', 'settings.permissionMode': 'Modo de Permissão', 'settings.language': 'Idioma', 'settings.identity': 'Identidade', - 'settings.identityPlaceholder': 'Seu nome ou apelido', - 'settings.version': 'Versão', 'settings.save': 'Salvar', 'settings.saved': 'Salvo!', 'settings.saving': 'Salvando...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': 'Aplicar', // Onboarding - 'onboarding.title': 'Bem-vindo ao GGCode', - 'onboarding.subtitle': 'Comece em alguns passos', 'onboarding.next': 'Próximo', 'onboarding.back': 'Voltar', 'onboarding.getStarted': 'Começar', - 'onboarding.step.vendor': 'Escolha o Provedor de IA', - 'onboarding.step.apiKey': 'Digite a Chave de API', - 'onboarding.step.configure': 'Configurar', 'onboarding.vendorHint': 'Selecione o provedor de IA que deseja usar', - 'onboarding.apiKeyHint': 'Sua chave de API é armazenada localmente e nunca enviada para nossos servidores', 'onboarding.configHint': 'Ajuste estas configurações ou mantenha os padrões', - 'onboarding.skip': 'Pular Configuração', - 'onboarding.workDir': 'Diretório de Trabalho', - 'onboarding.browse': 'Procurar', - 'onboarding.workDirHint': 'Selecione o diretório do projeto para trabalhar', 'onboarding.welcome': 'Bem-vindo ao GGCode', 'onboarding.selectDirHint': 'Selecione um diretório de projeto para começar', 'onboarding.chooseDir': 'Escolher Diretório', 'onboarding.modeSupervised': 'Supervisionado', 'onboarding.modeSupervisedDesc': 'Revisar e aprovar cada chamada de ferramenta antes da execução', - 'onboarding.modeAuto': 'Automático', - 'onboarding.modeAutoDesc': 'Aprovar automaticamente ferramentas de leitura, confirmar operações destrutivas', 'onboarding.modeBypass': 'Contornar', 'onboarding.modeBypassDesc': 'Aprovar automaticamente todas as ferramentas, sem necessidade de confirmação', - 'onboarding.modeAutopilot': 'Piloto Automático', - 'onboarding.modeAutopilotDesc': 'Totalmente autônomo — o agente executa sem nenhuma confirmação', 'onboarding.fetchingModels': 'Buscando...', 'onboarding.fetchModels': 'Buscar Modelos', 'onboarding.noModelsFound': 'Nenhum modelo encontrado. Digite o nome do modelo manualmente.', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'Sobre o GGCode', - 'about.version': 'Versão', 'about.description': 'Agente de programação com IA para o terminal', - 'about.close': 'Fechar', // PairingCodeDialog 'pairing.title': 'Parear Dispositivo', - 'pairing.code': 'Código de Pareamento', - 'pairing.expiresIn': 'Expira em {n}s', 'pairing.close': 'Fechar', // ShareDialog 'share.title': 'Compartilhar Sessão', - 'share.connectUrl': 'URL de Conexão', - 'share.qrCode': 'Código QR', 'share.copy': 'Copiar', 'share.copied': 'Copiado!', - 'share.openInBrowser': 'Abrir no Navegador', 'share.stopSharing': 'Parar Compartilhamento', 'share.generating': 'Gerando...', - 'share.scanQr': 'Escaneie o código QR para conectar', - 'share.activeDevices': '{n} dispositivo(s) conectado(s)', // IMManagement 'im.title': 'Adaptadores IM', @@ -281,55 +247,23 @@ const en = { 'im.unbound': 'Não vinculado', 'im.online': 'Online', 'im.offline': 'Offline', - 'im.muted': 'Silenciado', 'im.mute': 'Silenciar', 'im.unmute': 'Reativar Som', - 'im.delete': 'Excluir', - 'im.configure': 'Configurar', 'im.platform': 'Plataforma', 'im.name': 'Nome', - 'im.workspace': 'Workspace', - 'im.enabled': 'Ativado', 'im.save': 'Salvar', 'im.cancel': 'Cancelar', 'im.selectPlatform': 'Selecionar plataforma...', - 'im.adapterName': 'Nome do Adaptador', - 'im.adapterNamePlaceholder': 'ex. Meu Slack', - 'im.bindToWorkspace': 'Vincular ao Workspace', - 'im.enabledHint': 'Ativar este adaptador', - 'im.pairing': 'Pareando...', - 'im.paired': 'Pareado', - 'im.notPaired': 'Não Pareado', - 'im.startPairing': 'Iniciar Pareamento', // MCPServers 'mcp.title': 'Servidores MCP', 'mcp.add': 'Adicionar', - 'mcp.noServers': 'Nenhum servidor MCP configurado. Clique em "Adicionar" para adicionar um.', 'mcp.name': 'Nome', - 'mcp.command': 'Comando', - 'mcp.args': 'Argumentos', - 'mcp.url': 'URL', - 'mcp.headers': 'Cabeçalhos', - 'mcp.type': 'Tipo', - 'mcp.typeLocal': 'Local (stdio)', - 'mcp.typeRemote': 'Remoto (HTTP)', - 'mcp.enabled': 'Ativado', - 'mcp.save': 'Salvar', 'mcp.cancel': 'Cancelar', - 'mcp.delete': 'Excluir', - 'mcp.namePlaceholder': 'Nome do servidor', - 'mcp.commandPlaceholder': 'ex. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Argumentos (separados por espaço)', - 'mcp.urlPlaceholder': 'ex. http://localhost:3000/mcp', - 'mcp.selectType': 'Selecionar tipo...', // FileBrowser 'files.fileTooLarge': 'Arquivo muito grande para visualização (>2MB)', 'files.binaryFile': 'Arquivo binário', - 'files.imagePreview': 'Visualização da Imagem', - 'files.noPreview': 'Nenhuma visualização disponível', - 'files.openInEditor': 'Abrir no Editor', // DebugConsole 'debug.title': 'Console de Depuração', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'Agente e Segurança', - 'settings.workspaceAccess': 'Workspace e acesso a arquivos', 'settings.appearance': 'Aparência', 'settings.integrations': 'Integrações', - 'settings.languageServers': 'Servidores de Linguagem', 'settings.diagnostics': 'Diagnósticos', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Hooks de ciclo de vida', 'settings.hooksAdd': '+ Adicionar', 'settings.hooksEdit': 'editar', 'settings.hooksDelete': 'excluir', 'settings.hooksInject': 'injetar', 'settings.hooksNone': '(nenhum)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Correspondência (* para tudo)', 'settings.hooksType': 'Tipo (command/http)', 'settings.hooksCommand': 'Comando', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': 'Modo de correspondência', 'settings.hooksTesterTitle': 'Testador de regex', 'settings.hooksTesterPlaceholder': 'ex: run_command git push', - 'settings.hooksTestBtn': 'Testar', 'settings.hooksTestMatched': 'Correspondência!', 'settings.hooksTestNotMatched': 'Sem correspondência', 'settings.hooksTestError': 'Erro: {0}', 'settings.addCustomEndpoint': 'Adicionar Endpoint Personalizado', 'settings.configured': 'Configurado', - 'settings.install': 'Instalar:', 'settings.saveLimits': 'Salvar limites', 'settings.refreshModels': 'Atualizar modelos da API', 'settings.versionPlaceholder': 'String de versão...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': 'Tema', 'settings.themeLight': 'Claro', 'settings.themeDark': 'Escuro', - 'settings.themeSystem': 'Sistema', - 'settings.integrationsHint': 'Ativar recursos de integração para acesso rápido às ferramentas.', 'settings.lspHint': 'Servidores LSP (Language Server Protocol) fornecem ao agente inteligência de código: ir para definição, buscar referências, informações ao passar o mouse, diagnósticos e mais.', 'settings.lspNoServers': 'Nenhum servidor de linguagem detectado neste workspace.', 'settings.lspConfigured': '(configurado)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': 'Copiar erro', // Permission mode dropdown options - 'mode.supervisedDesc': 'Supervisionado (confirmar cada ferramenta)', - 'mode.autoDesc': 'Automático (apenas ferramentas seguras)', - 'mode.planDesc': 'Planejamento (somente leitura)', - 'mode.bypassDesc': 'Contornar (aprovar a maioria das ferramentas)', - 'mode.autopilotDesc': 'Piloto Automático (alta autonomia)', // Common dropdown placeholders - 'common.chooseVendor': 'Escolher fornecedor...', - 'common.chooseEndpoint': 'Escolher endpoint...', 'common.chooseModel': 'Escolher modelo...', - 'common.english': 'Inglês', // ChatView activity descriptions 'chat.activity.reading': 'Lendo arquivos...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': 'Executando sub-agente...', 'chat.activity.waiting': 'Aguardando entrada...', 'chat.activity.saving': 'Salvando memória...', - 'chat.activity.writingResponse': 'Escrevendo resposta...', 'chat.activity.planMode': 'Entrando no modo de planejamento...', // ChatView UI labels 'chat.findPlaceholder': 'Buscar na conversa...', - 'chat.noModel': 'Sem modelo', - 'chat.selectWorkspace': 'Selecionar workspace', 'chat.sending': 'Enviando...', 'chat.failedToSend': 'Falha ao enviar', 'chat.nickname': 'Apelido', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': 'Copiar raciocínio', 'chat.title.editResend': 'Editar e reenviar', 'chat.title.copyMessage': 'Copiar mensagem', - 'chat.title.regenerate': 'Regenerar resposta', - 'chat.title.copyResult': 'Copiar resultado', - 'chat.title.copyError': 'Copiar erro', 'chat.title.teamBoard': 'Abrir quadro da equipe', - 'chat.title.editIdentity': 'Clique para editar seu apelido, função e equipe', // MCPServers 'mcp.transport': 'Transporte', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': 'Nenhuma mensagem direta ainda.', 'lanchat.broadcastPlaceholder': 'Transmitir para todos...', 'lanchat.dmPlaceholder': 'Mensagem para {name}...', - 'lanchat.enterNickname': 'Digite o novo apelido:', // ApprovalDialog hints - 'approval.denyHint': 'Negar', - 'approval.allowHint': 'Permitir', - 'approval.alwaysHint': 'Sempre', - 'approval.copyToClipboard': 'Copiar para a área de transferência', - 'approval.ariaLabel': 'Aprovação de ferramenta', // AskUserDialog 'askUser.typeAnswer': 'Digite sua resposta...', - 'askUser.additionalNotes': 'Notas adicionais (opcional)', - 'askUser.close': 'Fechar diálogo', - 'askUser.cancel': 'Cancelar', // IMManagement 'im.editAdapter': 'Editar: {name}', - 'im.addTitle': 'Adicionar adaptador IM', - 'im.adapterNameRequired': 'Digite um nome para o adaptador', // FileBrowser 'files.searchPlaceholder': 'Buscar arquivos...', 'files.officeDocument': 'Documento Office', 'files.openExternal': 'Abrir com aplicativo externo para visualizar', - 'files.renderingMermaid': 'Renderizando diagrama...', 'files.htmlPreview': 'Visualização HTML', // Dialogs / About - 'about.checkUpdates': 'Verificar Atualizações', - 'about.checking': 'Verificando...', - 'about.newVersion': 'Nova versão disponível: v{version}', - 'about.download': 'Baixar', // TopDragBar (window controls) - 'window.close': 'Fechar', - 'window.minimize': 'Minimizar', - 'window.maximize': 'Maximizar', - 'window.restore': 'Restaurar janela', // StatusBar 'status.toggleContext': 'Alternar painel de contexto', // TeamBoard 'team.boardTitle': 'Quadro da Equipe', - 'team.closeBoard': 'Fechar quadro da equipe', // Common shared 'common.dismiss': 'Dispensar notificação', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': 'Escolher fornecedor...', 'settings.chooseEndpoint': 'Escolher endpoint...', 'settings.modeSupervised': 'Supervisionado (confirmar cada ferramenta)', - 'settings.modeAuto': 'Automático (apenas ferramentas seguras)', - 'settings.modePlan': 'Planejamento (somente leitura)', 'settings.modeBypass': 'Contornar (aprovar ferramentas seguras automaticamente)', 'settings.modeBypassAll': 'Contornar (aprovar a maioria das ferramentas)', - 'settings.modeAutopilot': 'Piloto Automático (aprovar tudo)', - 'settings.modeAutopilotHigh': 'Piloto Automático (alta autonomia)', 'settings.saveModeHint': 'Salvar para persistir este modo padrão. Alterações de modo em tempo de execução ainda seguem o tratamento de modo normal do aplicativo.', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': 'Você pode alterar isso depois nas Configurações', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Revisar e aprovar cada execução de ferramenta', - 'settings.modeDescAuto': 'Aprovar automaticamente apenas operações seguras', - 'settings.modeDescPlan': 'Explorar código sem fazer alterações', - 'settings.modeDescBypass': 'Aprovar automaticamente a maioria das operações', - 'settings.modeDescAutopilot': 'Autonomia total com interrupções mínimas', 'settings.agentSafetyHint': 'Revise quanta autonomia o agente do desktop possui atualmente. Isso resume o comportamento existente sem alterar políticas avançadas de ferramentas.', 'settings.workspaceAccessHint': 'As ferramentas de arquivo operam dentro do workspace atual e diretórios permitidos configurados. A edição avançada de diretórios permitidos não é intencionalmente exposta aqui ainda para evitar alterar os limites de segurança acidentalmente.', 'settings.appearanceHint': 'Personalize o tema visual. O aplicativo segue sua preferência do sistema por padrão.', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': 'A maioria das operações é permitida com menos prompts. Use isto apenas em workspaces confiáveis onde você está confortável com execução mais rápida.', 'settings.modeDescFullAutopilot': 'O agente tem alta autonomia e pode continuar através de muitos passos automaticamente. Revise o estado do workspace antes de usá-lo em código importante.', 'settings.modeDescFullSupervised': 'O agente pergunta antes de ações de ferramenta não especificadas. Este é um padrão equilibrado para uso normal do desktop.', - 'files.emptyDirectory': 'Diretório vazio', - 'files.noMatchingFiles': 'Nenhum arquivo correspondente', - 'files.selectToPreview': 'Selecione um arquivo para visualizar', 'approval.riskHigh': 'Risco Alto', 'approval.riskMedium': 'Risco Médio', 'approval.riskLow': 'Risco Baixo', - 'debug.filterLogs': 'Filtrar logs de depuração', - 'sidebar.ctxOpen': 'Abrir', - 'sidebar.ctxRename': 'Renomear', - 'sidebar.ctxCopyId': 'Copiar ID', - 'sidebar.ctxDelete': 'Excluir', - 'sidebar.ctxPin': 'Fixar', - 'sidebar.ctxUnpin': 'Desafixar', - 'sidebar.startConversation': 'Iniciar conversa', - 'sidebar.noMatching': 'Nenhuma sessão correspondente a "{search}"', - 'sidebar.clearSearch': 'Limpar pesquisa', - 'sidebar.noSessionsYet': 'Ainda não há sessões', - 'chat.ctxCopy': 'Copiar', - 'chat.ctxEdit': 'Editar', - 'chat.ctxRegenerate': 'Regenerar', - 'chat.runDuration': 'Duração', - 'chat.runTools': 'Ferramentas', - 'chat.runFiles': 'Arquivos', - 'chat.runErrors': 'Erros', - 'chat.runTokens': 'Tokens', - 'chat.dropImages': 'Solte imagens para anexar', - 'chat.slashHelp': 'Mostrar comandos disponíveis', - 'chat.slashModel': 'Alternar ou ver modelo de IA', - 'chat.slashMode': 'Alterar modo de permissão (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Limpar histórico do chat', - 'chat.slashCompact': 'Compactar janela de contexto', - 'chat.slashContext': 'Mostrar detalhes de uso de contexto', - 'chat.slashCost': 'Mostrar uso de tokens e custo', - 'chat.slashCopy': 'Copiar conversa para a área de transferência', - 'chat.slashExport': 'Baixar conversa como Markdown', - 'chat.slashSessions': 'Procurar e alternar sessões', - 'chat.slashConfig': 'Ver ou editar configuração', - 'chat.slashStatus': 'Mostrar status do runtime', - 'chat.slashSkills': 'Procurar skills disponíveis', - 'chat.slashMcp': 'Gerenciar servidores MCP', - 'chat.slashReview': 'Revisar mudanças de código (git diff)', - 'chat.slashDiff': 'Mostrar diff da árvore de trabalho', - 'chat.slashReflect': 'Disparar auto-reflexão', - 'chat.slashUndo': 'Desfazer última edição de arquivo', - 'chat.slashRegenerate': 'Regenerar última resposta', - 'chat.slashTodo': 'Gerenciamento de tarefas', - 'chat.slashInit': 'Inicializar arquivos de memória do projeto', - 'chat.slashLang': 'Alterar idioma da interface', - 'chat.slashBug': 'Reportar um bug', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Lançamentos', - 'dialogs.linkIssues': 'Issues', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'Processo local via stdin/stdout', 'mcp.descHttp': 'Servidor remoto via HTTP (Streamable HTTP / SSE)', 'mcp.descWs': 'Servidor remoto via WebSocket', - 'im.qrAuthHint': 'Esta plataforma usa autenticação por código QR. Salve para iniciar o processo de pareamento.', - 'im.noConfigurableFields': 'Nenhum campo configurável para este adaptador.', - 'pairing.enterCode': 'Digite este código no seu canal de IM:', - 'lanchat.noContactsOnline': 'Nenhum contato online', - 'context.noImAdapters': 'Nenhum adaptador IM vinculado', - 'settings.maxTokensHint': 'Defina como 0 ou deixe vazio para detecção automática das especificações do modelo.', 'askUser.notesPlaceholder': 'Notas adicionais (opcional)', 'chat.menuCopy': 'Copiar', 'chat.menuEdit': 'Editar', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/ru.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/ru.ts index f8e39a756..3d73ce30f 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/ru.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/ru.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'MCP-серверы', 'nav.settings': 'Настройки', 'nav.debug': 'Консоль отладки', - 'nav.lanchat': 'Локальный чат', 'nav.cron': 'Расписание задач', 'cron.title': 'Расписание задач', 'cron.newTask': 'Новая задача', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': 'Новая сессия', 'sidebar.untitled': 'Без названия', 'sidebar.delete': 'Удалить', - 'sidebar.loading': 'Загрузка...', 'sidebar.group.pinned': 'Закреплённые', 'sidebar.group.today': 'Сегодня', 'sidebar.group.yesterday': 'Вчера', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': 'Готово', 'status.thinking': 'Размышление...', - 'status.streaming': 'Поток данных', 'status.offline': 'Не в сети', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': 'Экспорт сессии в JSON', 'cmd.copyMarkdown': 'Копировать сессию как Markdown', 'cmd.searchSessions': 'Поиск сессий', - 'cmd.clearHistory': 'Очистить историю', - 'cmd.compactContext': 'Сжать контекст', - 'cmd.undoLast': 'Отменить последнее', 'cmd.shareSession': 'Поделиться сессией', 'cmd.toggleContext': 'Переключить панель контекста', 'cmd.toggleTheme': 'Переключить тему', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': 'Контекст', 'context.usage': 'Использование контекста', - 'context.permission': 'Режим разрешений', - 'context.files': 'Файлы в контексте', 'context.input': 'Ввод', 'context.output': 'Вывод', 'context.cacheRead': 'Чтение кэша', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'API-ключ', 'settings.apiKeyPlaceholder': 'Введите ваш API-ключ', 'settings.model': 'Модель', - 'settings.modelPlaceholder': 'напр. claude-sonnet-4-20250514', 'settings.permissionMode': 'Режим разрешений', 'settings.language': 'Язык', 'settings.identity': 'Идентификация', - 'settings.identityPlaceholder': 'Ваше имя или псевдоним', - 'settings.version': 'Версия', 'settings.save': 'Сохранить', 'settings.saved': 'Сохранено!', 'settings.saving': 'Сохранение...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': 'Применить', // Onboarding - 'onboarding.title': 'Добро пожаловать в GGCode', - 'onboarding.subtitle': 'Начните за несколько шагов', 'onboarding.next': 'Далее', 'onboarding.back': 'Назад', 'onboarding.getStarted': 'Начать', - 'onboarding.step.vendor': 'Выберите AI-провайдера', - 'onboarding.step.apiKey': 'Введите API-ключ', - 'onboarding.step.configure': 'Настройка', 'onboarding.vendorHint': 'Выберите AI-провайдера, которого хотите использовать', - 'onboarding.apiKeyHint': 'Ваш API-ключ хранится локально и никогда не отправляется на наши серверы', 'onboarding.configHint': 'Настройте параметры или оставьте значения по умолчанию', - 'onboarding.skip': 'Пропустить настройку', - 'onboarding.workDir': 'Рабочая директория', - 'onboarding.browse': 'Обзор', - 'onboarding.workDirHint': 'Выберите директорию проекта для работы', 'onboarding.welcome': 'Добро пожаловать в GGCode', 'onboarding.selectDirHint': 'Выберите директорию проекта, чтобы начать', 'onboarding.chooseDir': 'Выбрать директорию', 'onboarding.modeSupervised': 'Под контролем', 'onboarding.modeSupervisedDesc': 'Просматривать и одобрять каждый вызов инструмента перед выполнением', - 'onboarding.modeAuto': 'Авто', - 'onboarding.modeAutoDesc': 'Автоматически одобрять инструменты только для чтения, подтверждать разрушительные операции', 'onboarding.modeBypass': 'Обход', 'onboarding.modeBypassDesc': 'Автоматически одобрять все инструменты, без подтверждения', - 'onboarding.modeAutopilot': 'Автопилот', - 'onboarding.modeAutopilotDesc': 'Полностью автономный режим — агент работает без подтверждений', 'onboarding.fetchingModels': 'Получение...', 'onboarding.fetchModels': 'Получить модели', 'onboarding.noModelsFound': 'Модели не найдены. Введите имя модели вручную.', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'О программе GGCode', - 'about.version': 'Версия', 'about.description': 'AI-агент для программирования в терминале', - 'about.close': 'Закрыть', // PairingCodeDialog 'pairing.title': 'Сопряжение устройства', - 'pairing.code': 'Код сопряжения', - 'pairing.expiresIn': 'Истекает через {n}с', 'pairing.close': 'Закрыть', // ShareDialog 'share.title': 'Поделиться сессией', - 'share.connectUrl': 'URL подключения', - 'share.qrCode': 'QR-код', 'share.copy': 'Копировать', 'share.copied': 'Скопировано!', - 'share.openInBrowser': 'Открыть в браузере', 'share.stopSharing': 'Остановить передачу', 'share.generating': 'Генерация...', - 'share.scanQr': 'Сканируйте QR-код для подключения', - 'share.activeDevices': 'Подключено устройств: {n}', // IMManagement 'im.title': 'IM-адаптеры', @@ -281,55 +247,23 @@ const en = { 'im.unbound': 'Не привязан', 'im.online': 'В сети', 'im.offline': 'Не в сети', - 'im.muted': 'Приглушён', 'im.mute': 'Приглушить', 'im.unmute': 'Включить звук', - 'im.delete': 'Удалить', - 'im.configure': 'Настроить', 'im.platform': 'Платформа', 'im.name': 'Имя', - 'im.workspace': 'Рабочая область', - 'im.enabled': 'Включён', 'im.save': 'Сохранить', 'im.cancel': 'Отмена', 'im.selectPlatform': 'Выберите платформу...', - 'im.adapterName': 'Имя адаптера', - 'im.adapterNamePlaceholder': 'напр. Мой Slack', - 'im.bindToWorkspace': 'Привязать к рабочей области', - 'im.enabledHint': 'Включить этот адаптер', - 'im.pairing': 'Сопряжение...', - 'im.paired': 'Сопряжён', - 'im.notPaired': 'Не сопряжён', - 'im.startPairing': 'Начать сопряжение', // MCPServers 'mcp.title': 'MCP-серверы', 'mcp.add': 'Добавить', - 'mcp.noServers': 'MCP-серверы не настроены. Нажмите "Добавить", чтобы добавить.', 'mcp.name': 'Имя', - 'mcp.command': 'Команда', - 'mcp.args': 'Аргументы', - 'mcp.url': 'URL', - 'mcp.headers': 'Заголовки', - 'mcp.type': 'Тип', - 'mcp.typeLocal': 'Локальный (stdio)', - 'mcp.typeRemote': 'Удалённый (HTTP)', - 'mcp.enabled': 'Включён', - 'mcp.save': 'Сохранить', 'mcp.cancel': 'Отмена', - 'mcp.delete': 'Удалить', - 'mcp.namePlaceholder': 'Имя сервера', - 'mcp.commandPlaceholder': 'напр. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Аргументы (через пробел)', - 'mcp.urlPlaceholder': 'напр. http://localhost:3000/mcp', - 'mcp.selectType': 'Выберите тип...', // FileBrowser 'files.fileTooLarge': 'Файл слишком большой для предпросмотра (>2МБ)', 'files.binaryFile': 'Бинарный файл', - 'files.imagePreview': 'Предпросмотр изображения', - 'files.noPreview': 'Предпросмотр недоступен', - 'files.openInEditor': 'Открыть в редакторе', // DebugConsole 'debug.title': 'Консоль отладки', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'Агент и безопасность', - 'settings.workspaceAccess': 'Рабочая область и доступ к файлам', 'settings.appearance': 'Внешний вид', 'settings.integrations': 'Интеграции', - 'settings.languageServers': 'Языковые серверы', 'settings.diagnostics': 'Диагностика', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Хуки жизненного цикла', 'settings.hooksAdd': '+ Добавить', 'settings.hooksEdit': 'изменить', 'settings.hooksDelete': 'удалить', 'settings.hooksInject': 'внедрить', 'settings.hooksNone': '(нет)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Совпадение (* для всех)', 'settings.hooksType': 'Тип (command/http)', 'settings.hooksCommand': 'Команда', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': 'Режим совпадения', 'settings.hooksTesterTitle': 'Тестер regex', 'settings.hooksTesterPlaceholder': 'напр: run_command git push', - 'settings.hooksTestBtn': 'Проверить', 'settings.hooksTestMatched': 'Совпадение!', 'settings.hooksTestNotMatched': 'Нет совпадения', 'settings.hooksTestError': 'Ошибка: {0}', 'settings.addCustomEndpoint': 'Добавить пользовательскую конечную точку', 'settings.configured': 'Настроено', - 'settings.install': 'Установить:', 'settings.saveLimits': 'Сохранить лимиты', 'settings.refreshModels': 'Обновить модели из API', 'settings.versionPlaceholder': 'Строка версии...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': 'Тема', 'settings.themeLight': 'Светлая', 'settings.themeDark': 'Тёмная', - 'settings.themeSystem': 'Системная', - 'settings.integrationsHint': 'Включите функции интеграции для быстрого доступа к инструментам.', 'settings.lspHint': 'Серверы Language Server Protocol (LSP) предоставляют агенту интеллектуальные возможности работы с кодом: переход к определению, поиск ссылок, всплывающие подсказки, диагностика и многое другое.', 'settings.lspNoServers': 'В этой рабочей области языковые серверы не обнаружены.', 'settings.lspConfigured': '(настроено)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': 'Копировать ошибку', // Permission mode dropdown options - 'mode.supervisedDesc': 'Под контролем (подтверждать каждый инструмент)', - 'mode.autoDesc': 'Авто (только безопасные инструменты)', - 'mode.planDesc': 'План (только чтение)', - 'mode.bypassDesc': 'Обход (автоодобрение большинства инструментов)', - 'mode.autopilotDesc': 'Автопилот (высокая автономность)', // Common dropdown placeholders - 'common.chooseVendor': 'Выберите поставщика...', - 'common.chooseEndpoint': 'Выберите конечную точку...', 'common.chooseModel': 'Выберите модель...', - 'common.english': 'English', // ChatView activity descriptions 'chat.activity.reading': 'Чтение файлов...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': 'Выполнение саб-агента...', 'chat.activity.waiting': 'Ожидание ввода...', 'chat.activity.saving': 'Сохранение в память...', - 'chat.activity.writingResponse': 'Написание ответа...', 'chat.activity.planMode': 'Вход в режим планирования...', // ChatView UI labels 'chat.findPlaceholder': 'Поиск в разговоре...', - 'chat.noModel': 'Нет модели', - 'chat.selectWorkspace': 'Выберите рабочую область', 'chat.sending': 'Отправка...', 'chat.failedToSend': 'Не удалось отправить', 'chat.nickname': 'Никнейм', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': 'Копировать рассуждения', 'chat.title.editResend': 'Изменить и отправить снова', 'chat.title.copyMessage': 'Копировать сообщение', - 'chat.title.regenerate': 'Перегенерировать ответ', - 'chat.title.copyResult': 'Копировать результат', - 'chat.title.copyError': 'Копировать ошибку', 'chat.title.teamBoard': 'Открыть доску команды', - 'chat.title.editIdentity': 'Нажмите, чтобы изменить никнейм, роль и команду', // MCPServers 'mcp.transport': 'Транспорт', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': 'Личных сообщений пока нет.', 'lanchat.broadcastPlaceholder': 'Отправить всем...', 'lanchat.dmPlaceholder': 'Сообщение для {name}...', - 'lanchat.enterNickname': 'Введите новый никнейм:', // ApprovalDialog hints - 'approval.denyHint': 'Отклонить', - 'approval.allowHint': 'Разрешить', - 'approval.alwaysHint': 'Всегда', - 'approval.copyToClipboard': 'Копировать в буфер обмена', - 'approval.ariaLabel': 'Подтверждение инструмента', // AskUserDialog 'askUser.typeAnswer': 'Введите ответ...', - 'askUser.additionalNotes': 'Дополнительные заметки (необязательно)', - 'askUser.close': 'Закрыть диалог', - 'askUser.cancel': 'Отмена', // IMManagement 'im.editAdapter': 'Изменить: {name}', - 'im.addTitle': 'Добавить IM-адаптер', - 'im.adapterNameRequired': 'Введите имя адаптера', // FileBrowser 'files.searchPlaceholder': 'Поиск файлов...', 'files.officeDocument': 'Документ Office', 'files.openExternal': 'Открыть во внешнем приложении для просмотра', - 'files.renderingMermaid': 'Рендеринг диаграммы...', 'files.htmlPreview': 'HTML-предпросмотр', // Dialogs / About - 'about.checkUpdates': 'Проверить обновления', - 'about.checking': 'Проверка...', - 'about.newVersion': 'Доступна новая версия: v{version}', - 'about.download': 'Скачать', // TopDragBar (window controls) - 'window.close': 'Закрыть', - 'window.minimize': 'Свернуть', - 'window.maximize': 'Развернуть', - 'window.restore': 'Восстановить окно', // StatusBar 'status.toggleContext': 'Переключить панель контекста', // TeamBoard 'team.boardTitle': 'Доска команды', - 'team.closeBoard': 'Закрыть доску команды', // Common shared 'common.dismiss': 'Скрыть уведомление', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': 'Выберите поставщика...', 'settings.chooseEndpoint': 'Выберите конечную точку...', 'settings.modeSupervised': 'Под контролем (подтверждать каждый инструмент)', - 'settings.modeAuto': 'Авто (только безопасные инструменты)', - 'settings.modePlan': 'План (только чтение)', 'settings.modeBypass': 'Обход (автоодобрение безопасных инструментов)', 'settings.modeBypassAll': 'Обход (автоодобрение большинства инструментов)', - 'settings.modeAutopilot': 'Автопилот (одобрять всё)', - 'settings.modeAutopilotHigh': 'Автопилот (высокая автономность)', 'settings.saveModeHint': 'Сохраните, чтобы сохранить этот режим по умолчанию. Изменения режима во время выполнения следуют обычной логике обработки режимов приложения.', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': 'Вы можете изменить это позже в Настройках', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Проверять и одобрять каждое выполнение инструмента', - 'settings.modeDescAuto': 'Автоматически одобрять только безопасные операции', - 'settings.modeDescPlan': 'Изучать код без внесения изменений', - 'settings.modeDescBypass': 'Автоматически одобрять большинство операций', - 'settings.modeDescAutopilot': 'Полная автономность с минимальными прерываниями', 'settings.agentSafetyHint': 'Проверьте, насколько автономен десктоп-агент в данный момент. Это обобщает существующее поведение без изменения расширенных политик инструментов.', 'settings.workspaceAccessHint': 'Файловые инструменты работают в пределах текущей рабочей области и настроенных разрешённых директорий. Расширенное редактирование разрешённых директорий намеренно не доступно здесь, чтобы избежать случайного изменения границ безопасности.', 'settings.appearanceHint': 'Настройте визуальную тему. По умолчанию приложение следует системным настройкам.', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': 'Большинство операций разрешено с меньшим количеством запросов. Используйте только в доверенных рабочих областях, где вам комфортно с более быстрым выполнением.', 'settings.modeDescFullAutopilot': 'Агент обладает высокой автономией и может автоматически проходить множество шагов. Проверьте состояние рабочей области перед использованием на важном коде.', 'settings.modeDescFullSupervised': 'Агент запрашивает разрешение перед незаданными действиями инструментов. Это сбалансированный режим по умолчанию для обычного использования.', - 'files.emptyDirectory': 'Пустая директория', - 'files.noMatchingFiles': 'Нет совпадающих файлов', - 'files.selectToPreview': 'Выберите файл для предпросмотра', 'approval.riskHigh': 'Высокий риск', 'approval.riskMedium': 'Средний риск', 'approval.riskLow': 'Низкий риск', - 'debug.filterLogs': 'Фильтровать отладочные логи', - 'sidebar.ctxOpen': 'Открыть', - 'sidebar.ctxRename': 'Переименовать', - 'sidebar.ctxCopyId': 'Копировать ID', - 'sidebar.ctxDelete': 'Удалить', - 'sidebar.ctxPin': 'Закрепить', - 'sidebar.ctxUnpin': 'Открепить', - 'sidebar.startConversation': 'Начать разговор', - 'sidebar.noMatching': 'Нет сессий, соответствующих "{search}"', - 'sidebar.clearSearch': 'Очистить поиск', - 'sidebar.noSessionsYet': 'Сессий пока нет', - 'chat.ctxCopy': 'Копировать', - 'chat.ctxEdit': 'Изменить', - 'chat.ctxRegenerate': 'Перегенерировать', - 'chat.runDuration': 'Длительность', - 'chat.runTools': 'Инструменты', - 'chat.runFiles': 'Файлы', - 'chat.runErrors': 'Ошибки', - 'chat.runTokens': 'Токены', - 'chat.dropImages': 'Перетащите изображения для прикрепления', - 'chat.slashHelp': 'Показать доступные команды', - 'chat.slashModel': 'Сменить/просмотреть AI-модель', - 'chat.slashMode': 'Изменить режим разрешений (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Очистить историю чата', - 'chat.slashCompact': 'Сжать окно контекста', - 'chat.slashContext': 'Показать детали использования контекста', - 'chat.slashCost': 'Показать использование токенов и стоимость', - 'chat.slashCopy': 'Скопировать разговор в буфер обмена', - 'chat.slashExport': 'Скачать разговор как Markdown', - 'chat.slashSessions': 'Просмотр и переключение сессий', - 'chat.slashConfig': 'Просмотр или изменение конфигурации', - 'chat.slashStatus': 'Показать статус выполнения', - 'chat.slashSkills': 'Просмотр доступных навыков', - 'chat.slashMcp': 'Управление MCP-серверами', - 'chat.slashReview': 'Проверить изменения кода (git diff)', - 'chat.slashDiff': 'Показать diff рабочего дерева', - 'chat.slashReflect': 'Запустить саморефлексию', - 'chat.slashUndo': 'Отменить последнее редактирование файла', - 'chat.slashRegenerate': 'Перегенерировать последний ответ', - 'chat.slashTodo': 'Управление задачами', - 'chat.slashInit': 'Инициализировать файлы памяти проекта', - 'chat.slashLang': 'Изменить язык интерфейса', - 'chat.slashBug': 'Сообщить об ошибке', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Релизы', - 'dialogs.linkIssues': 'Задачи', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'Локальный процесс через stdin/stdout', 'mcp.descHttp': 'Удалённый сервер через HTTP (Streamable HTTP / SSE)', 'mcp.descWs': 'Удалённый сервер через WebSocket', - 'im.qrAuthHint': 'Эта платформа использует QR-код аутентификацию. Сохраните, чтобы начать процесс сопряжения.', - 'im.noConfigurableFields': 'Нет настраиваемых полей для этого адаптера.', - 'pairing.enterCode': 'Введите этот код в вашем IM-канале:', - 'lanchat.noContactsOnline': 'Нет контактов онлайн', - 'context.noImAdapters': 'Нет привязанных IM-адаптеров', - 'settings.maxTokensHint': 'Установите 0 или оставьте пустым для автоопределения из спецификаций модели.', 'askUser.notesPlaceholder': 'Дополнительные заметки (необязательно)', 'chat.menuCopy': 'Копировать', 'chat.menuEdit': 'Изменить', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/tr.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/tr.ts index 7860a4ec2..2399173dc 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/tr.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/tr.ts @@ -6,7 +6,6 @@ const tr = { 'nav.mcp': 'MCP Sunucuları', 'nav.settings': 'Ayarlar', 'nav.debug': 'Hata Ayıklama Konsolu', - 'nav.lanchat': 'LAN Sohbeti', 'nav.cron': 'Zamanlanmış Görevler', 'cron.title': 'Zamanlanmış Görevler', 'cron.newTask': 'Yeni Görev', @@ -61,7 +60,6 @@ const tr = { 'sidebar.newSession': 'Yeni Oturum', 'sidebar.untitled': 'Başlıksız', 'sidebar.delete': 'Sil', - 'sidebar.loading': 'Yükleniyor...', 'sidebar.group.pinned': 'Sabitlenenler', 'sidebar.group.today': 'Bugün', 'sidebar.group.yesterday': 'Dün', @@ -75,7 +73,6 @@ const tr = { // StatusBar 'status.ready': 'Hazır', 'status.thinking': 'Düşünüyor...', - 'status.streaming': 'Akıyor', 'status.offline': 'Cevrimdisi', // ChatView @@ -98,9 +95,6 @@ const tr = { 'cmd.exportJSON': 'Oturumu JSON olarak dışa aktar', 'cmd.copyMarkdown': 'Oturumu Markdown olarak kopyala', 'cmd.searchSessions': 'Oturumları Ara', - 'cmd.clearHistory': 'Geçmişi Temizle', - 'cmd.compactContext': 'Bağlamı Sıkıştır', - 'cmd.undoLast': 'Sonuncuyu Geri Al', 'cmd.shareSession': 'Oturumu Paylaş', 'cmd.toggleContext': 'Bağlam Panelini Aç/Kapat', 'cmd.toggleTheme': 'Temayı Değiştir', @@ -166,8 +160,6 @@ const tr = { // ContextPanel 'context.title': 'Bağlam', 'context.usage': 'Bağlam Kullanımı', - 'context.permission': 'İzin Modu', - 'context.files': 'Bağlamdaki Dosyalar', 'context.input': 'Girdi', 'context.output': 'Çıktı', 'context.cacheRead': 'Önbellek Okuma', @@ -187,12 +179,9 @@ const tr = { 'settings.apiKey': 'API Anahtarı', 'settings.apiKeyPlaceholder': 'API anahtarınızı girin', 'settings.model': 'Model', - 'settings.modelPlaceholder': 'örn. claude-sonnet-4-20250514', 'settings.permissionMode': 'İzin Modu', 'settings.language': 'Dil', 'settings.identity': 'Kimlik', - 'settings.identityPlaceholder': 'Adınız veya rumuzunuz', - 'settings.version': 'Sürüm', 'settings.save': 'Kaydet', 'settings.saved': 'Kaydedildi!', 'settings.saving': 'Kaydediliyor...', @@ -202,32 +191,18 @@ const tr = { 'settings.impersonateApply': 'Uygula', // Onboarding - 'onboarding.title': 'GGCode\'a Hoş Geldiniz', - 'onboarding.subtitle': 'Birkaç adımda başlayın', 'onboarding.next': 'İleri', 'onboarding.back': 'Geri', 'onboarding.getStarted': 'Başla', - 'onboarding.step.vendor': 'AI Sağlayıcısı Seçin', - 'onboarding.step.apiKey': 'API Anahtarını Girin', - 'onboarding.step.configure': 'Yapılandır', 'onboarding.vendorHint': 'Kullanmak istediğiniz AI sağlayıcısını seçin', - 'onboarding.apiKeyHint': 'API anahtarınız yerel olarak saklanır ve asla sunucularımıza gönderilmez', 'onboarding.configHint': 'Bu ayarları düzenleyin veya varsayılanları koruyun', - 'onboarding.skip': 'Kurulumu Atla', - 'onboarding.workDir': 'Çalışma Dizini', - 'onboarding.browse': 'Gözat', - 'onboarding.workDirHint': 'Çalışılacak proje dizinini seçin', 'onboarding.welcome': 'GGCode\'a Hoş Geldiniz', 'onboarding.selectDirHint': 'Başlamak için bir proje dizini seçin', 'onboarding.chooseDir': 'Dizin Seç', 'onboarding.modeSupervised': 'Denetimli', 'onboarding.modeSupervisedDesc': 'Her araç çağrısını yürütmeden önce gözden geçirin ve onaylayın', - 'onboarding.modeAuto': 'Otomatik', - 'onboarding.modeAutoDesc': 'Salt okunur araçları otomatik onayla, yıkıcı işlemleri onayla', 'onboarding.modeBypass': 'Baypas', 'onboarding.modeBypassDesc': 'Tüm araçları otomatik onayla, onay gerekmez', - 'onboarding.modeAutopilot': 'Otopilot', - 'onboarding.modeAutopilotDesc': 'Tamamen otonom — agent hiçbir onay olmadan çalışır', 'onboarding.fetchingModels': 'Getiriliyor...', 'onboarding.fetchModels': 'Modelleri Getir', 'onboarding.noModelsFound': 'Model bulunamadı. Model adını elle girin.', @@ -250,27 +225,18 @@ const tr = { // Dialogs (About) 'about.title': 'GGCode Hakkında', - 'about.version': 'Sürüm', 'about.description': 'Terminal için AI kodlama agentı', - 'about.close': 'Kapat', // PairingCodeDialog 'pairing.title': 'Cihaz Eşle', - 'pairing.code': 'Eşleştirme Kodu', - 'pairing.expiresIn': '{n} sn içinde sona eriyor', 'pairing.close': 'Kapat', // ShareDialog 'share.title': 'Oturumu Paylaş', - 'share.connectUrl': 'Bağlanma URL\'si', - 'share.qrCode': 'QR Kodu', 'share.copy': 'Kopyala', 'share.copied': 'Kopyalandı!', - 'share.openInBrowser': 'Tarayıcıda Aç', 'share.stopSharing': 'Paylaşmayı Durdur', 'share.generating': 'Oluşturuluyor...', - 'share.scanQr': 'Bağlanmak için QR kodunu tarayın', - 'share.activeDevices': '{n} cihaz bağlı', // IMManagement 'im.title': 'IM Adaptrleri', @@ -281,55 +247,23 @@ const tr = { 'im.unbound': 'Bağlanmamış', 'im.online': 'Çevrimiçi', 'im.offline': 'Çevrimdışı', - 'im.muted': 'Sessize Alındı', 'im.mute': 'Sessize Al', 'im.unmute': 'Sessizden Çıkar', - 'im.delete': 'Sil', - 'im.configure': 'Yapılandır', 'im.platform': 'Platform', 'im.name': 'Ad', - 'im.workspace': 'Çalışma Alanı', - 'im.enabled': 'Etkin', 'im.save': 'Kaydet', 'im.cancel': 'İptal', 'im.selectPlatform': 'Platform seç...', - 'im.adapterName': 'Adaptör Adı', - 'im.adapterNamePlaceholder': 'örn. Slack\'im', - 'im.bindToWorkspace': 'Çalışma Alanına Bağla', - 'im.enabledHint': 'Bu adaptörü etkinleştir', - 'im.pairing': 'Eşleştiriliyor...', - 'im.paired': 'Eşleşti', - 'im.notPaired': 'Eşleşmedi', - 'im.startPairing': 'Eşleştirmeyi Başlat', // MCPServers 'mcp.title': 'MCP Sunucuları', 'mcp.add': 'Ekle', - 'mcp.noServers': 'MCP sunucusu yapılandırılmadı. Eklemek için "Ekle"yi tıklayın.', 'mcp.name': 'Ad', - 'mcp.command': 'Komut', - 'mcp.args': 'Argümanlar', - 'mcp.url': 'URL', - 'mcp.headers': 'Başlıklar', - 'mcp.type': 'Tür', - 'mcp.typeLocal': 'Yerel (stdio)', - 'mcp.typeRemote': 'Uzak (HTTP)', - 'mcp.enabled': 'Etkin', - 'mcp.save': 'Kaydet', 'mcp.cancel': 'İptal', - 'mcp.delete': 'Sil', - 'mcp.namePlaceholder': 'Sunucu adı', - 'mcp.commandPlaceholder': 'örn. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Argümanlar (boşlukla ayrılmış)', - 'mcp.urlPlaceholder': 'örn. http://localhost:3000/mcp', - 'mcp.selectType': 'Tür seç...', // FileBrowser 'files.fileTooLarge': 'Dosya önizleme için çok büyük (>2MB)', 'files.binaryFile': 'İkili dosya', - 'files.imagePreview': 'Görüntü Önizleme', - 'files.noPreview': 'Önizleme mevcut değil', - 'files.openInEditor': 'Düzenleyicide Aç', // DebugConsole 'debug.title': 'Hata Ayıklama Konsolu', @@ -359,19 +293,15 @@ const tr = { // SettingsPage sections 'settings.agentSafety': 'Agent ve Güvenlik', - 'settings.workspaceAccess': 'Çalışma Alanı ve dosya erişimi', 'settings.appearance': 'Görünüm', 'settings.integrations': 'Entegrasyonlar', - 'settings.languageServers': 'Dil Sunucuları', 'settings.diagnostics': 'Tanılama', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Yaşam döngüsü kancaları', 'settings.hooksAdd': '+ Ekle', 'settings.hooksEdit': 'düzenle', 'settings.hooksDelete': 'sil', 'settings.hooksInject': 'enjekte et', 'settings.hooksNone': '(yok)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Eşleşme (* hepsi için)', 'settings.hooksType': 'Tür (command/http)', 'settings.hooksCommand': 'Komut', @@ -393,13 +323,11 @@ const tr = { 'settings.hooksMatchMode': 'Eşleşme modu', 'settings.hooksTesterTitle': 'Regex test aracı', 'settings.hooksTesterPlaceholder': 'örn: run_command git push', - 'settings.hooksTestBtn': 'Test et', 'settings.hooksTestMatched': 'Eşleşti!', 'settings.hooksTestNotMatched': 'Eşleşmedi', 'settings.hooksTestError': 'Hata: {0}', 'settings.addCustomEndpoint': 'Özel Uç Nokta Ekle', 'settings.configured': 'Yapılandırıldı', - 'settings.install': 'Yükle:', 'settings.saveLimits': 'Limitleri kaydet', 'settings.refreshModels': 'Modelleri API\'den yenile', 'settings.versionPlaceholder': 'Sürüm dizesi...', @@ -434,8 +362,6 @@ const tr = { 'settings.theme': 'Tema', 'settings.themeLight': 'Açık', 'settings.themeDark': 'Koyu', - 'settings.themeSystem': 'Sistem', - 'settings.integrationsHint': 'Araçlara hızlı erişim için entegrasyon özelliklerini etkinleştirin.', 'settings.lspHint': 'Dil Sunucu Protokolü (LSP) sunucuları, agent\'a kod zekası sağlar: tanıma git, referansları bul, vurgu bilgisi, tanılama ve daha fazlası.', 'settings.lspNoServers': 'Bu çalışma alanında dil sunucusu algılanmadı.', 'settings.lspConfigured': '(yapılandırıldı)', @@ -463,17 +389,9 @@ const tr = { 'chat.copyError': 'Hatayı kopyala', // Permission mode dropdown options - 'mode.supervisedDesc': 'Denetimli (her aracı onayla)', - 'mode.autoDesc': 'Otomatik (yalnızca güvenli araçlar)', - 'mode.planDesc': 'Plan (salt okunur)', - 'mode.bypassDesc': 'Baypas (çoğu aracı otomatik onayla)', - 'mode.autopilotDesc': 'Otopilot (yüksek özerklik)', // Common dropdown placeholders - 'common.chooseVendor': 'Sağlayıcı seç...', - 'common.chooseEndpoint': 'Uç nokta seç...', 'common.chooseModel': 'Model seç...', - 'common.english': 'İngilizce', // ChatView activity descriptions 'chat.activity.reading': 'Dosyalar okunuyor...', @@ -488,13 +406,10 @@ const tr = { 'chat.activity.subagent': 'Alt-agent çalıştırılıyor...', 'chat.activity.waiting': 'Girdi bekleniyor...', 'chat.activity.saving': 'Bellek kaydediliyor...', - 'chat.activity.writingResponse': 'Yanıt yazılıyor...', 'chat.activity.planMode': 'Plan moduna giriliyor...', // ChatView UI labels 'chat.findPlaceholder': 'Konuşmada bul...', - 'chat.noModel': 'Model yok', - 'chat.selectWorkspace': 'Çalışma alanı seç', 'chat.sending': 'Gönderiliyor...', 'chat.failedToSend': 'Gönderme başarısız', 'chat.nickname': 'Rumuz', @@ -518,11 +433,7 @@ const tr = { 'chat.title.copyReasoning': 'Akıl yürütme kopyala', 'chat.title.editResend': 'Düzenle ve yeniden gönder', 'chat.title.copyMessage': 'Mesajı kopyala', - 'chat.title.regenerate': 'Yeniden üret', - 'chat.title.copyResult': 'Sonucu kopyala', - 'chat.title.copyError': 'Hatayı kopyala', 'chat.title.teamBoard': 'Takım panosunu aç', - 'chat.title.editIdentity': 'Rumuzunuzu, rolünüzü ve takımınızı düzenlemek için tıklayın', // MCPServers 'mcp.transport': 'Aktarım', @@ -553,51 +464,30 @@ const tr = { 'lanchat.noMessagesDM': 'Henüz doğrudan mesaj yok.', 'lanchat.broadcastPlaceholder': 'Herkese yayın yap...', 'lanchat.dmPlaceholder': '{name} kişisine mesaj...', - 'lanchat.enterNickname': 'Yeni rumuz girin:', // ApprovalDialog hints - 'approval.denyHint': 'Reddet', - 'approval.allowHint': 'İzin Ver', - 'approval.alwaysHint': 'Her Zaman', - 'approval.copyToClipboard': 'Panoya kopyala', - 'approval.ariaLabel': 'Araç onayı', // AskUserDialog 'askUser.typeAnswer': 'Yanıtınızı yazın...', - 'askUser.additionalNotes': 'Ek notlar (isteğe bağlı)', - 'askUser.close': 'İletişimi kapat', - 'askUser.cancel': 'İptal', // IMManagement 'im.editAdapter': 'Düzenle: {name}', - 'im.addTitle': 'IM adaptörü ekle', - 'im.adapterNameRequired': 'Bir adaptör adı girin', // FileBrowser 'files.searchPlaceholder': 'Dosyalarda ara...', 'files.officeDocument': 'Office belgesi', 'files.openExternal': 'Görüntülemek için harici uygulamayla aç', - 'files.renderingMermaid': 'Diyagram oluşturuluyor...', 'files.htmlPreview': 'HTML Önizleme', // Dialogs / About - 'about.checkUpdates': 'Güncellemeleri Kontrol Et', - 'about.checking': 'Kontrol ediliyor...', - 'about.newVersion': 'Yeni sürüm mevcut: v{version}', - 'about.download': 'İndir', // TopDragBar (window controls) - 'window.close': 'Kapat', - 'window.minimize': 'Küçült', - 'window.maximize': 'Büyült', - 'window.restore': 'Pencereyi geri yükle', // StatusBar 'status.toggleContext': 'Bağlam panelini aç/kapat', // TeamBoard 'team.boardTitle': 'Takım Panosu', - 'team.closeBoard': 'Takım panosunu kapat', // Common shared 'common.dismiss': 'Bildirimi kapat', @@ -650,12 +540,8 @@ const tr = { 'settings.chooseVendor': 'Sağlayıcı seç...', 'settings.chooseEndpoint': 'Uç nokta seç...', 'settings.modeSupervised': 'Denetimli (her aracı onayla)', - 'settings.modeAuto': 'Otomatik (yalnızca güvenli araçlar)', - 'settings.modePlan': 'Plan (salt okunur)', 'settings.modeBypass': 'Baypas (güvenli araçları otomatik onayla)', 'settings.modeBypassAll': 'Baypas (çoğu aracı otomatik onayla)', - 'settings.modeAutopilot': 'Otopilot (her şeyi onayla)', - 'settings.modeAutopilotHigh': 'Otopilot (yüksek özerklik)', 'settings.saveModeHint': 'Bu varsayılan modu kalıcı yapmak için kaydetin. Çalışma zamanı mod değişiklikleri yine de uygulamanın normal mod işlemesini izler.', // Dialogs @@ -689,11 +575,6 @@ const tr = { 'onboarding.languageHint': "Bunu daha sonra Ayarlar'da değiştirebilirsiniz", // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Her araç yürütmeyi gözden geçirin ve onaylayın', - 'settings.modeDescAuto': 'Yalnızca güvenli işlemleri otomatik onayla', - 'settings.modeDescPlan': 'Değişiklik yapmadan kodu keşfetme', - 'settings.modeDescBypass': 'Çoğu işlemi otomatik onayla', - 'settings.modeDescAutopilot': 'Minimal kesintiyle tam özerklik', 'settings.agentSafetyHint': 'Masaüstü agent\'ının ne kadar özerkliğe sahip olduğunu gözden geçirin. Bu, gelişmiş araç politikalarını değiştirmeden mevcut davranışı özetler.', 'settings.workspaceAccessHint': 'Dosya araçları, geçerli çalışma alanı ve yapılandırılmış izin verilen dizinler içinde çalışır. Gelişmiş izin verilen dizin düzenleme, güvenlik sınırlarını yanlışlıkla değiştirmemek için burada henüz kasıtlı olarak gösterilmemektedir.', 'settings.appearanceHint': 'Görsel temayı özelleştirin. Uygulama varsayılan olarak sistem tercihinizi izler.', @@ -752,9 +633,6 @@ const tr = { 'toast.copiedMessages': '{count} mesaj panoya kopyalandı', // FileBrowser - 'files.emptyDirectory': 'Boş dizin', - 'files.noMatchingFiles': 'Eşleşen dosya yok', - 'files.selectToPreview': 'Önizlemek için bir dosya seçin', // ApprovalDialog risk levels 'approval.riskHigh': 'Yüksek Risk', @@ -762,59 +640,12 @@ const tr = { 'approval.riskLow': 'Düşük Risk', // DebugConsole - 'debug.filterLogs': 'Hata ayıklama günlüklerini filtrele', // Sidebar context menu - 'sidebar.ctxOpen': 'Aç', - 'sidebar.ctxRename': 'Yeniden Adlandır', - 'sidebar.ctxCopyId': 'Kimliği Kopyala', - 'sidebar.ctxDelete': 'Sil', - 'sidebar.ctxPin': 'Sabitle', - 'sidebar.ctxUnpin': 'Sabitlemeyi Kaldır', - 'sidebar.startConversation': 'Konuşma başlat', - 'sidebar.noMatching': '"{search}" ile eşleşen oturum yok', - 'sidebar.clearSearch': 'Aramayı temizle', - 'sidebar.noSessionsYet': 'Henüz oturum yok', // ChatView context menu & run stats - 'chat.ctxCopy': 'Kopyala', - 'chat.ctxEdit': 'Düzenle', - 'chat.ctxRegenerate': 'Yeniden Üret', - 'chat.runDuration': 'Süre', - 'chat.runTools': 'Araçlar', - 'chat.runFiles': 'Dosyalar', - 'chat.runErrors': 'Hatalar', - 'chat.runTokens': 'Token', - 'chat.dropImages': 'Eklemek için görüntüleri sürükleyin', - 'chat.slashHelp': 'Mevcut komutları göster', - 'chat.slashModel': 'AI modelini değiştir veya görüntüle', - 'chat.slashMode': 'İzin modunu değiştir (otomatik/denetimli/plan/baypas)', - 'chat.slashClear': 'Sohbet geçmişini temizle', - 'chat.slashCompact': 'Bağlam penceresini sıkıştır', - 'chat.slashContext': 'Bağlam kullanım detaylarını göster', - 'chat.slashCost': 'Token kullanımını ve maliyeti göster', - 'chat.slashCopy': 'Konuşmayı panoya kopyala', - 'chat.slashExport': 'Konuşmayı markdown dosyası olarak indir', - 'chat.slashSessions': 'Oturumlara göz at ve değiştir', - 'chat.slashConfig': 'Yapılandırmayı görüntüle veya düzenle', - 'chat.slashStatus': 'Çalışma zamanı durumunu göster', - 'chat.slashSkills': 'Mevcut becerilere göz at', - 'chat.slashMcp': 'MCP sunucularını yönet', - 'chat.slashReview': 'Kod değişikliklerini incele (git diff)', - 'chat.slashDiff': 'Çalışma ağacı diff\'ini göster', - 'chat.slashReflect': 'Kendi kendini değerlendirmeyi tetikle', - 'chat.slashUndo': 'Son dosya düzenlemesini geri al', - 'chat.slashRegenerate': 'Son yanıtı yeniden üret', - 'chat.slashTodo': 'Görev yönetimi', - 'chat.slashInit': 'Proje bellek dosyalarını başlat', - 'chat.slashLang': 'Arayüz dilini değiştir', - 'chat.slashBug': 'Hata bildir', // Dialogs links - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Sürümler', - 'dialogs.linkIssues': 'Sorunlar', - 'dialogs.linkDiscord': 'Discord', // MCPServers transports 'mcp.transportHttp': 'HTTP / SSE', @@ -823,20 +654,14 @@ const tr = { 'mcp.descWs': 'WebSocket aracılığıyla uzak sunucu', // IMManagement - 'im.qrAuthHint': 'Bu platform QR kodu kimlik doğrulaması kullanır. Eşleştirme işlemini başlatmak için kaydedin.', - 'im.noConfigurableFields': 'Bu adaptör için yapılandırılabilir alan yok.', // PairingCodeDialog - 'pairing.enterCode': 'Bu kodu IM kanalınızda girin:', // LanChatView - 'lanchat.noContactsOnline': 'Çevrimiçi kişi yok', // ContextPanel - 'context.noImAdapters': 'Bağlı IM adaptörü yok', // SettingsPage - 'settings.maxTokensHint': 'Model teknik özelliklerinden otomatik algılama için 0 yapın veya boş bırakın.', 'settings.oauthConnected': 'Bağlı', 'settings.oauthNotConnected': 'Bağlı değil', 'settings.oauthLoggingIn': 'Giriş yapılıyor...', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/vi.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/vi.ts index 5cbe98aa5..220d11013 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/vi.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/vi.ts @@ -6,7 +6,6 @@ const en = { 'nav.mcp': 'Máy chủ MCP', 'nav.settings': 'Cài đặt', 'nav.debug': 'Bảng gỡ lỗi', - 'nav.lanchat': 'Trò chuyện LAN', 'nav.cron': 'Tác Vụ Lịch Trình', 'cron.title': 'Tác Vụ Lịch Trình', 'cron.newTask': 'Tác Vụ Mới', @@ -61,7 +60,6 @@ const en = { 'sidebar.newSession': 'Phiên mới', 'sidebar.untitled': 'Không tiêu đề', 'sidebar.delete': 'Xóa', - 'sidebar.loading': 'Đang tải...', 'sidebar.group.pinned': 'Đã ghim', 'sidebar.group.today': 'Hôm nay', 'sidebar.group.yesterday': 'Hôm qua', @@ -75,7 +73,6 @@ const en = { // StatusBar 'status.ready': 'Sẵn sàng', 'status.thinking': 'Đang suy nghĩ...', - 'status.streaming': 'Đang phát trực tiếp', 'status.offline': 'Ngoại tuyến', // ChatView @@ -98,9 +95,6 @@ const en = { 'cmd.exportJSON': 'Xuất phiên dưới dạng JSON', 'cmd.copyMarkdown': 'Sao chép phiên dưới dạng Markdown', 'cmd.searchSessions': 'Tìm phiên', - 'cmd.clearHistory': 'Xóa lịch sử', - 'cmd.compactContext': 'Nén ngữ cảnh', - 'cmd.undoLast': 'Hoàn tác gần nhất', 'cmd.shareSession': 'Chia sẻ phiên', 'cmd.toggleContext': 'Bật/tắt bảng ngữ cảnh', 'cmd.toggleTheme': 'Bật/tắt giao diện', @@ -166,8 +160,6 @@ const en = { // ContextPanel 'context.title': 'Ngữ cảnh', 'context.usage': 'Mức sử dụng ngữ cảnh', - 'context.permission': 'Chế độ quyền', - 'context.files': 'Tệp trong ngữ cảnh', 'context.input': 'Đầu vào', 'context.output': 'Đầu ra', 'context.cacheRead': 'Đọc bộ nhớ đệm', @@ -187,12 +179,9 @@ const en = { 'settings.apiKey': 'Khóa API', 'settings.apiKeyPlaceholder': 'Nhập khóa API của bạn', 'settings.model': 'Mô hình', - 'settings.modelPlaceholder': 'vd. claude-sonnet-4-20250514', 'settings.permissionMode': 'Chế độ quyền', 'settings.language': 'Ngôn ngữ', 'settings.identity': 'Danh tính', - 'settings.identityPlaceholder': 'Tên hoặc biệt danh của bạn', - 'settings.version': 'Phiên bản', 'settings.save': 'Lưu', 'settings.saved': 'Đã lưu!', 'settings.saving': 'Đang lưu...', @@ -202,32 +191,18 @@ const en = { 'settings.impersonateApply': 'Áp dụng', // Onboarding - 'onboarding.title': 'Chào mừng đến GGCode', - 'onboarding.subtitle': 'Bắt đầu trong vài bước', 'onboarding.next': 'Tiếp theo', 'onboarding.back': 'Quay lại', 'onboarding.getStarted': 'Bắt đầu', - 'onboarding.step.vendor': 'Chọn nhà cung cấp AI', - 'onboarding.step.apiKey': 'Nhập khóa API', - 'onboarding.step.configure': 'Cấu hình', 'onboarding.vendorHint': 'Chọn nhà cung cấp AI bạn muốn sử dụng', - 'onboarding.apiKeyHint': 'Khóa API của bạn được lưu cục bộ và không bao giờ gửi đến máy chủ của chúng tôi', 'onboarding.configHint': 'Điều chỉnh các cài đặt này hoặc giữ nguyên mặc định', - 'onboarding.skip': 'Bỏ qua thiết lập', - 'onboarding.workDir': 'Thư mục làm việc', - 'onboarding.browse': 'Duyệt', - 'onboarding.workDirHint': 'Chọn thư mục dự án để làm việc', 'onboarding.welcome': 'Chào mừng đến GGCode', 'onboarding.selectDirHint': 'Chọn thư mục dự án để bắt đầu', 'onboarding.chooseDir': 'Chọn thư mục', 'onboarding.modeSupervised': 'Có giám sát', 'onboarding.modeSupervisedDesc': 'Xem xét và phê duyệt mọi lệnh công cụ trước khi thực thi', - 'onboarding.modeAuto': 'Tự động', - 'onboarding.modeAutoDesc': 'Tự động phê duyệt công cụ chỉ đọc, xác nhận các thao tác phá hủy', 'onboarding.modeBypass': 'Bỏ qua', 'onboarding.modeBypassDesc': 'Tự động phê duyệt tất cả công cụ, không cần xác nhận', - 'onboarding.modeAutopilot': 'Tự động hoàn toàn', - 'onboarding.modeAutopilotDesc': 'Hoàn toàn tự động — agent chạy mà không cần xác nhận', 'onboarding.fetchingModels': 'Đang tải...', 'onboarding.fetchModels': 'Tải danh sách mô hình', 'onboarding.noModelsFound': 'Không tìm thấy mô hình. Vui lòng nhập tên mô hình thủ công.', @@ -250,27 +225,18 @@ const en = { // Dialogs (About) 'about.title': 'Giới thiệu GGCode', - 'about.version': 'Phiên bản', 'about.description': 'Agent lập trình AI cho terminal', - 'about.close': 'Đóng', // PairingCodeDialog 'pairing.title': 'Ghép nối thiết bị', - 'pairing.code': 'Mã ghép nối', - 'pairing.expiresIn': 'Hết hạn sau {n}s', 'pairing.close': 'Đóng', // ShareDialog 'share.title': 'Chia sẻ phiên', - 'share.connectUrl': 'URL kết nối', - 'share.qrCode': 'Mã QR', 'share.copy': 'Sao chép', 'share.copied': 'Đã sao chép!', - 'share.openInBrowser': 'Mở trong trình duyệt', 'share.stopSharing': 'Dừng chia sẻ', 'share.generating': 'Đang tạo...', - 'share.scanQr': 'Quét mã QR để kết nối', - 'share.activeDevices': '{n} thiết bị đã kết nối', // IMManagement 'im.title': 'Bộ chuyển đổi IM', @@ -281,55 +247,23 @@ const en = { 'im.unbound': 'Chưa liên kết', 'im.online': 'Trực tuyến', 'im.offline': 'Ngoại tuyến', - 'im.muted': 'Đã tắt tiếng', 'im.mute': 'Tắt tiếng', 'im.unmute': 'Bật tiếng', - 'im.delete': 'Xóa', - 'im.configure': 'Cấu hình', 'im.platform': 'Nền tảng', 'im.name': 'Tên', - 'im.workspace': 'Không gian làm việc', - 'im.enabled': 'Đã bật', 'im.save': 'Lưu', 'im.cancel': 'Hủy', 'im.selectPlatform': 'Chọn nền tảng...', - 'im.adapterName': 'Tên bộ chuyển đổi', - 'im.adapterNamePlaceholder': 'vd. Slack của tôi', - 'im.bindToWorkspace': 'Liên kết với không gian làm việc', - 'im.enabledHint': 'Bật bộ chuyển đổi này', - 'im.pairing': 'Đang ghép nối...', - 'im.paired': 'Đã ghép nối', - 'im.notPaired': 'Chưa ghép nối', - 'im.startPairing': 'Bắt đầu ghép nối', // MCPServers 'mcp.title': 'Máy chủ MCP', 'mcp.add': 'Thêm', - 'mcp.noServers': 'Chưa cấu hình máy chủ MCP nào. Nhấp "Thêm" để thêm.', 'mcp.name': 'Tên', - 'mcp.command': 'Lệnh', - 'mcp.args': 'Tham số', - 'mcp.url': 'URL', - 'mcp.headers': 'Tiêu đề', - 'mcp.type': 'Loại', - 'mcp.typeLocal': 'Cục bộ (stdio)', - 'mcp.typeRemote': 'Từ xa (HTTP)', - 'mcp.enabled': 'Đã bật', - 'mcp.save': 'Lưu', 'mcp.cancel': 'Hủy', - 'mcp.delete': 'Xóa', - 'mcp.namePlaceholder': 'Tên máy chủ', - 'mcp.commandPlaceholder': 'vd. npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': 'Tham số (phân tách bằng khoảng trắng)', - 'mcp.urlPlaceholder': 'vd. http://localhost:3000/mcp', - 'mcp.selectType': 'Chọn loại...', // FileBrowser 'files.fileTooLarge': 'Tệp quá lớn để xem trước (>2MB)', 'files.binaryFile': 'Tệp nhị phân', - 'files.imagePreview': 'Xem trước hình ảnh', - 'files.noPreview': 'Không có bản xem trước', - 'files.openInEditor': 'Mở trong trình soạn thảo', // DebugConsole 'debug.title': 'Bảng gỡ lỗi', @@ -359,19 +293,15 @@ const en = { // SettingsPage sections 'settings.agentSafety': 'Agent & An toàn', - 'settings.workspaceAccess': 'Không gian làm việc & truy cập tệp', 'settings.appearance': 'Giao diện', 'settings.integrations': 'Tích hợp', - 'settings.languageServers': 'Máy chủ ngôn ngữ', 'settings.diagnostics': 'Chẩn đoán', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': 'Hook vòng đời', 'settings.hooksAdd': '+ Thêm', 'settings.hooksEdit': 'sửa', 'settings.hooksDelete': 'xóa', 'settings.hooksInject': 'tiêm', 'settings.hooksNone': '(không có)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': 'Khớp (* cho tất cả)', 'settings.hooksType': 'Loại (command/http)', 'settings.hooksCommand': 'Lệnh', @@ -393,13 +323,11 @@ const en = { 'settings.hooksMatchMode': 'Chế độ khớp', 'settings.hooksTesterTitle': 'Trình kiểm tra regex', 'settings.hooksTesterPlaceholder': 'vd: run_command git push', - 'settings.hooksTestBtn': 'Kiểm tra', 'settings.hooksTestMatched': 'Khớp!', 'settings.hooksTestNotMatched': 'Không khớp', 'settings.hooksTestError': 'Lỗi: {0}', 'settings.addCustomEndpoint': 'Thêm điểm cuối tùy chỉnh', 'settings.configured': 'Đã cấu hình', - 'settings.install': 'Cài đặt:', 'settings.saveLimits': 'Lưu giới hạn', 'settings.refreshModels': 'Làm mới mô hình từ API', 'settings.versionPlaceholder': 'Chuỗi phiên bản...', @@ -434,8 +362,6 @@ const en = { 'settings.theme': 'Giao diện', 'settings.themeLight': 'Sáng', 'settings.themeDark': 'Tối', - 'settings.themeSystem': 'Hệ thống', - 'settings.integrationsHint': 'Bật các tính năng tích hợp để truy cập nhanh công cụ.', 'settings.lspHint': 'Máy chủ Language Server Protocol (LSP) cung cấp cho agent trí thông minh mã: đi đến định nghĩa, tìm tham chiếu, thông tin hover, chẩn đoán, v.v.', 'settings.lspNoServers': 'Không phát hiện máy chủ ngôn ngữ nào trong không gian làm việc này.', 'settings.lspConfigured': '(đã cấu hình)', @@ -463,17 +389,9 @@ const en = { 'chat.copyError': 'Sao chép lỗi', // Permission mode dropdown options - 'mode.supervisedDesc': 'Có giám sát (xác nhận từng công cụ)', - 'mode.autoDesc': 'Tự động (chỉ công cụ an toàn)', - 'mode.planDesc': 'Kế hoạch (chỉ đọc)', - 'mode.bypassDesc': 'Bỏ qua (tự động phê duyệt hầu hết công cụ)', - 'mode.autopilotDesc': 'Tự động hoàn toàn (tự chủ cao)', // Common dropdown placeholders - 'common.chooseVendor': 'Chọn nhà cung cấp...', - 'common.chooseEndpoint': 'Chọn điểm cuối...', 'common.chooseModel': 'Chọn mô hình...', - 'common.english': 'Tiếng Anh', // ChatView activity descriptions 'chat.activity.reading': 'Đang đọc tệp...', @@ -488,13 +406,10 @@ const en = { 'chat.activity.subagent': 'Đang chạy sub-agent...', 'chat.activity.waiting': 'Đang chờ nhập liệu...', 'chat.activity.saving': 'Đang lưu bộ nhớ...', - 'chat.activity.writingResponse': 'Đang viết phản hồi...', 'chat.activity.planMode': 'Đang vào chế độ kế hoạch...', // ChatView UI labels 'chat.findPlaceholder': 'Tìm trong hội thoại...', - 'chat.noModel': 'Không có mô hình', - 'chat.selectWorkspace': 'Chọn không gian làm việc', 'chat.sending': 'Đang gửi...', 'chat.failedToSend': 'Gửi thất bại', 'chat.nickname': 'Biệt danh', @@ -518,11 +433,7 @@ const en = { 'chat.title.copyReasoning': 'Sao chép lập luận', 'chat.title.editResend': 'Sửa & gửi lại', 'chat.title.copyMessage': 'Sao chép tin nhắn', - 'chat.title.regenerate': 'Tạo lại phản hồi', - 'chat.title.copyResult': 'Sao chép kết quả', - 'chat.title.copyError': 'Sao chép lỗi', 'chat.title.teamBoard': 'Mở bảng nhóm', - 'chat.title.editIdentity': 'Nhấp để chỉnh sửa biệt danh, vai trò và nhóm của bạn', // MCPServers 'mcp.transport': 'Phương thức truyền', @@ -553,51 +464,30 @@ const en = { 'lanchat.noMessagesDM': 'Chưa có tin nhắn trực tiếp nào.', 'lanchat.broadcastPlaceholder': 'Gửi đến tất cả...', 'lanchat.dmPlaceholder': 'Nhắn tin cho {name}...', - 'lanchat.enterNickname': 'Nhập biệt danh mới:', // ApprovalDialog hints - 'approval.denyHint': 'Từ chối', - 'approval.allowHint': 'Cho phép', - 'approval.alwaysHint': 'Luôn luôn', - 'approval.copyToClipboard': 'Sao chép vào clipboard', - 'approval.ariaLabel': 'Phê duyệt công cụ', // AskUserDialog 'askUser.typeAnswer': 'Nhập câu trả lời của bạn...', - 'askUser.additionalNotes': 'Ghi chú thêm (tùy chọn)', - 'askUser.close': 'Đóng hộp thoại', - 'askUser.cancel': 'Hủy', // IMManagement 'im.editAdapter': 'Chỉnh sửa: {name}', - 'im.addTitle': 'Thêm bộ chuyển đổi IM', - 'im.adapterNameRequired': 'Nhập tên bộ chuyển đổi', // FileBrowser 'files.searchPlaceholder': 'Tìm tệp...', 'files.officeDocument': 'Tài liệu Office', 'files.openExternal': 'Mở bằng ứng dụng bên ngoài để xem', - 'files.renderingMermaid': 'Đang kết xuất sơ đồ...', 'files.htmlPreview': 'Xem trước HTML', // Dialogs / About - 'about.checkUpdates': 'Kiểm tra cập nhật', - 'about.checking': 'Đang kiểm tra...', - 'about.newVersion': 'Đã có phiên bản mới: v{version}', - 'about.download': 'Tải xuống', // TopDragBar (window controls) - 'window.close': 'Đóng', - 'window.minimize': 'Thu nhỏ', - 'window.maximize': 'Phóng to', - 'window.restore': 'Khôi phục cửa sổ', // StatusBar 'status.toggleContext': 'Bật/tắt bảng ngữ cảnh', // TeamBoard 'team.boardTitle': 'Bảng nhóm', - 'team.closeBoard': 'Đóng bảng nhóm', // Common shared 'common.dismiss': 'Bỏ thông báo', @@ -650,12 +540,8 @@ const en = { 'settings.chooseVendor': 'Chọn nhà cung cấp...', 'settings.chooseEndpoint': 'Chọn điểm cuối...', 'settings.modeSupervised': 'Có giám sát (xác nhận từng công cụ)', - 'settings.modeAuto': 'Tự động (chỉ công cụ an toàn)', - 'settings.modePlan': 'Kế hoạch (chỉ đọc)', 'settings.modeBypass': 'Bỏ qua (tự động phê duyệt công cụ an toàn)', 'settings.modeBypassAll': 'Bỏ qua (tự động phê duyệt hầu hết công cụ)', - 'settings.modeAutopilot': 'Tự động hoàn toàn (phê duyệt tất cả)', - 'settings.modeAutopilotHigh': 'Tự động hoàn toàn (tự chủ cao)', 'settings.saveModeHint': 'Lưu để duy trì chế độ mặc định này. Thay đổi chế độ thời gian chạy vẫn tuân theo xử lý chế độ thông thường của ứng dụng.', // Dialogs @@ -689,11 +575,6 @@ const en = { 'onboarding.languageHint': 'Bạn có thể thay đổi sau trong Cài đặt', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': 'Xem xét và phê duyệt từng lần thực thi công cụ', - 'settings.modeDescAuto': 'Tự động phê duyệt chỉ các thao tác an toàn', - 'settings.modeDescPlan': 'Khám phá mã mà không tạo thay đổi', - 'settings.modeDescBypass': 'Tự động phê duyệt hầu hết các thao tác', - 'settings.modeDescAutopilot': 'Tự chủ đầy đủ với ít gián đoạn nhất', 'settings.agentSafetyHint': 'Xem xét mức độ tự chủ hiện tại của agent desktop. Tóm tắt hành vi hiện tại mà không thay đổi chính sách công cụ nâng cao.', 'settings.workspaceAccessHint': 'Công cụ tệp hoạt động trong không gian làm việc hiện tại và các thư mục được phép đã cấu hình. Chỉnh sửa thư mục được phép nâng cao chưa được hiển thị ở đây để tránh vô tình thay đổi ranh giới an toàn.', 'settings.appearanceHint': 'Tùy chỉnh giao diện hiển thị. Ứng dụng mặc định theo tùy chọn hệ thống của bạn.', @@ -714,69 +595,13 @@ const en = { 'settings.modeDescFullBypass': 'Hầu hết các thao tác được cho phép với ít lời nhắc hơn. Chỉ sử dụng trong các không gian làm việc đáng tin cậy khi bạn thoải mái với việc thực thi nhanh hơn.', 'settings.modeDescFullAutopilot': 'Agent có tính tự chủ cao và có thể tiếp tục qua nhiều bước tự động. Xem xét trạng thái không gian làm việc trước khi sử dụng trên mã quan trọng.', 'settings.modeDescFullSupervised': 'Agent sẽ hỏi trước khi thực hiện các thao tác công cụ chưa được chỉ định. Đây là mặc định cân bằng cho sử dụng desktop thông thường.', - 'files.emptyDirectory': 'Thư mục trống', - 'files.noMatchingFiles': 'Không có tệp phù hợp', - 'files.selectToPreview': 'Chọn tệp để xem trước', 'approval.riskHigh': 'Rủi ro Cao', 'approval.riskMedium': 'Rủi ro Trung bình', 'approval.riskLow': 'Rủi ro Thấp', - 'debug.filterLogs': 'Lọc nhật ký gỡ lỗi', - 'sidebar.ctxOpen': 'Mở', - 'sidebar.ctxRename': 'Đổi tên', - 'sidebar.ctxCopyId': 'Sao chép ID', - 'sidebar.ctxDelete': 'Xóa', - 'sidebar.ctxPin': 'Ghim', - 'sidebar.ctxUnpin': 'Bỏ ghim', - 'sidebar.startConversation': 'Bắt đầu trò chuyện', - 'sidebar.noMatching': 'Không có phiên phù hợp với "{search}"', - 'sidebar.clearSearch': 'Xóa tìm kiếm', - 'sidebar.noSessionsYet': 'Chưa có phiên nào', - 'chat.ctxCopy': 'Sao chép', - 'chat.ctxEdit': 'Chỉnh sửa', - 'chat.ctxRegenerate': 'Tạo lại', - 'chat.runDuration': 'Thời gian', - 'chat.runTools': 'Công cụ', - 'chat.runFiles': 'Tệp', - 'chat.runErrors': 'Lỗi', - 'chat.runTokens': 'Token', - 'chat.dropImages': 'Thả ảnh để đính kèm', - 'chat.slashHelp': 'Hiển thị lệnh có sẵn', - 'chat.slashModel': 'Chuyển đổi hoặc xem mô hình AI', - 'chat.slashMode': 'Thay đổi chế độ quyền (auto/supervised/plan/bypass)', - 'chat.slashClear': 'Xóa lịch sử trò chuyện', - 'chat.slashCompact': 'Nén cửa sổ ngữ cảnh', - 'chat.slashContext': 'Hiển thị chi tiết sử dụng ngữ cảnh', - 'chat.slashCost': 'Hiển thị sử dụng token và chi phí', - 'chat.slashCopy': 'Sao chép cuộc trò chuyện vào clipboard', - 'chat.slashExport': 'Tải xuống cuộc trò chuyện dưới dạng Markdown', - 'chat.slashSessions': 'Duyệt và chuyển phiên', - 'chat.slashConfig': 'Xem hoặc chỉnh sửa cấu hình', - 'chat.slashStatus': 'Hiển thị trạng thái runtime', - 'chat.slashSkills': 'Duyệt kỹ năng có sẵn', - 'chat.slashMcp': 'Quản lý máy chủ MCP', - 'chat.slashReview': 'Xem xét thay đổi mã (git diff)', - 'chat.slashDiff': 'Hiển thị diff cây làm việc', - 'chat.slashReflect': 'Kích hoạt tự phản tư', - 'chat.slashUndo': 'Hoàn tác chỉnh sửa tệp cuối cùng', - 'chat.slashRegenerate': 'Tạo lại phản hồi cuối cùng', - 'chat.slashTodo': 'Quản lý tác vụ', - 'chat.slashInit': 'Khởi tạo tệp bộ nhớ dự án', - 'chat.slashLang': 'Thay đổi ngôn ngữ giao diện', - 'chat.slashBug': 'Báo cáo lỗi', - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': 'Bản phát hành', - 'dialogs.linkIssues': 'Vấn đề', - 'dialogs.linkDiscord': 'Discord', 'mcp.transportHttp': 'HTTP / SSE', 'mcp.descStdio': 'Tiến trình cục bộ qua stdin/stdout', 'mcp.descHttp': 'Máy chủ từ xa qua HTTP (Streamable HTTP / SSE)', 'mcp.descWs': 'Máy chủ từ xa qua WebSocket', - 'im.qrAuthHint': 'Nền tảng này sử dụng xác thực mã QR. Lưu để bắt đầu quá trình ghép nối.', - 'im.noConfigurableFields': 'Không có trường có thể cấu hình cho bộ chuyển đổi này.', - 'pairing.enterCode': 'Nhập mã này vào kênh IM của bạn:', - 'lanchat.noContactsOnline': 'Không có liên hệ trực tuyến', - 'context.noImAdapters': 'Không có bộ chuyển đổi IM liên kết', - 'settings.maxTokensHint': 'Đặt thành 0 hoặc để trống để tự động phát hiện từ thông số mô hình.', 'askUser.notesPlaceholder': 'Ghi chú bổ sung (tùy chọn)', 'chat.menuCopy': 'Sao chép', 'chat.menuEdit': 'Chỉnh sửa', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/zh-TW.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/zh-TW.ts index 8fd8425c0..695370b48 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/zh-TW.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/zh-TW.ts @@ -8,7 +8,6 @@ const zh: Record = { 'nav.mcp': 'MCP 服務器', 'nav.settings': '設置', 'nav.debug': '調試控制台', - 'nav.lanchat': '局域網聊天', 'nav.cron': '定時任務', 'cron.title': '定時任務', 'cron.newTask': '新增任務', @@ -63,7 +62,6 @@ const zh: Record = { 'sidebar.newSession': '新建會話', 'sidebar.untitled': '未命名', 'sidebar.delete': '刪除', - 'sidebar.loading': '加載中...', 'sidebar.group.pinned': '已置頂', 'sidebar.group.today': '今天', 'sidebar.group.yesterday': '昨天', @@ -77,7 +75,6 @@ const zh: Record = { // StatusBar 'status.ready': '就绪', 'status.thinking': '思考中...', - 'status.streaming': '輸出中', 'status.offline': '離線', 'status.zoomIn': '放大 (Cmd+)', 'status.zoomOut': '縮小 (Cmd-)', @@ -103,9 +100,6 @@ const zh: Record = { 'cmd.exportJSON': '匯出會話為 JSON', 'cmd.copyMarkdown': '復制會話為 Markdown', 'cmd.searchSessions': '搜索會話', - 'cmd.clearHistory': '清除歷史', - 'cmd.compactContext': '壓縮上下文', - 'cmd.undoLast': '撤銷上次操作', 'cmd.shareSession': '分享會話', 'cmd.toggleContext': '切換上下文面板', 'cmd.toggleTheme': '切換主題', @@ -177,8 +171,6 @@ const zh: Record = { // ContextPanel 'context.title': '上下文', 'context.usage': '上下文使用量', - 'context.permission': '權限模式', - 'context.files': '上下文中的文件', 'context.input': '輸入', 'context.output': '輸出', 'context.cacheRead': '緩存讀取', @@ -198,12 +190,9 @@ const zh: Record = { 'settings.apiKey': 'API 密钥', 'settings.apiKeyPlaceholder': '请輸入 API 密钥', 'settings.model': '模型', - 'settings.modelPlaceholder': '例如 claude-sonnet-4-20250514', 'settings.permissionMode': '權限模式', 'settings.language': '語言', 'settings.identity': '身份', - 'settings.identityPlaceholder': '你的名字或別名', - 'settings.version': '版本', 'settings.save': '保存', 'settings.saved': '已保存!', 'settings.saving': '保存中...', @@ -213,32 +202,18 @@ const zh: Record = { 'settings.impersonateApply': '應用', // Onboarding - 'onboarding.title': '歡迎使用 GGCode', - 'onboarding.subtitle': '几步即可開始', 'onboarding.next': '下一步', 'onboarding.back': '上一步', 'onboarding.getStarted': '開始使用', - 'onboarding.step.vendor': '選擇 AI 服務商', - 'onboarding.step.apiKey': '輸入 API 密钥', - 'onboarding.step.configure': '配置', 'onboarding.vendorHint': '選擇你要使用的 AI 服務商', - 'onboarding.apiKeyHint': '你的 API 密钥保存在本地,不會發送到我們的服務器', 'onboarding.configHint': '調整這些設置,或保持默認值', - 'onboarding.skip': '跳過設置', - 'onboarding.workDir': '工作目錄', - 'onboarding.browse': '瀏覽', - 'onboarding.workDirHint': '選擇要工作的項目目錄', 'onboarding.welcome': '歡迎使用 GGCode', 'onboarding.selectDirHint': '選擇一個項目目錄開始使用', 'onboarding.chooseDir': '選擇目錄', 'onboarding.modeSupervised': '監督模式', 'onboarding.modeSupervisedDesc': '執行前審查并批準每個工具調用', - 'onboarding.modeAuto': '自動模式', - 'onboarding.modeAutoDesc': '自動批準只讀工具,確認危險操作', 'onboarding.modeBypass': '繞過模式', 'onboarding.modeBypassDesc': '自動批準所有工具,无需確認', - 'onboarding.modeAutopilot': '自動驾驶', - 'onboarding.modeAutopilotDesc': '完全自主 — 无需任何確認即可運行', 'onboarding.fetchingModels': '獲取中...', 'onboarding.fetchModels': '獲取模型', 'onboarding.noModelsFound': '未找到模型。请手動輸入模型名稱。', @@ -261,27 +236,18 @@ const zh: Record = { // Dialogs (About) 'about.title': '關於 GGCode', - 'about.version': '版本', 'about.description': '終端 AI 編程助手', - 'about.close': '關閉', // PairingCodeDialog 'pairing.title': '配對設備', - 'pairing.code': '配對碼', - 'pairing.expiresIn': '{n}秒后過期', 'pairing.close': '關閉', // ShareDialog 'share.title': '分享會話', - 'share.connectUrl': '連接 URL', - 'share.qrCode': '二維碼', 'share.copy': '復制', 'share.copied': '已復制!', - 'share.openInBrowser': '在瀏覽器中打開', 'share.stopSharing': '停止分享', 'share.generating': '生成中...', - 'share.scanQr': '掃描二維碼連接', - 'share.activeDevices': '{n} 個設備已連接', // IMManagement 'im.title': 'IM 适配器', @@ -292,55 +258,23 @@ const zh: Record = { 'im.unbound': '未綁定', 'im.online': '在線', 'im.offline': '離線', - 'im.muted': '已静音', 'im.mute': '静音', 'im.unmute': '取消静音', - 'im.delete': '刪除', - 'im.configure': '配置', 'im.platform': '平台', 'im.name': '名稱', - 'im.workspace': '工作區', - 'im.enabled': '已啟用', 'im.save': '保存', 'im.cancel': '取消', 'im.selectPlatform': '選擇平台...', - 'im.adapterName': '适配器名稱', - 'im.adapterNamePlaceholder': '例如 我的 Slack', - 'im.bindToWorkspace': '綁定工作區', - 'im.enabledHint': '啟用此适配器', - 'im.pairing': '配對中...', - 'im.paired': '已配對', - 'im.notPaired': '未配對', - 'im.startPairing': '開始配對', // MCPServers 'mcp.title': 'MCP 服務器', 'mcp.add': '添加', - 'mcp.noServers': '未配置 MCP 服務器。點擊"添加"添加一個。', 'mcp.name': '名稱', - 'mcp.command': '命令', - 'mcp.args': '參數', - 'mcp.url': 'URL', - 'mcp.headers': '请求頭', - 'mcp.type': '類型', - 'mcp.typeLocal': '本地 (stdio)', - 'mcp.typeRemote': '遠程 (HTTP)', - 'mcp.enabled': '已啟用', - 'mcp.save': '保存', 'mcp.cancel': '取消', - 'mcp.delete': '刪除', - 'mcp.namePlaceholder': '服務器名稱', - 'mcp.commandPlaceholder': '例如 npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': '參數(空格分隔)', - 'mcp.urlPlaceholder': '例如 http://localhost:3000/mcp', - 'mcp.selectType': '選擇類型...', // FileBrowser 'files.fileTooLarge': '文件過大无法預覽 (>2MB)', 'files.binaryFile': '二進制文件', - 'files.imagePreview': '圖片預覽', - 'files.noPreview': '无預覽', - 'files.openInEditor': '在編輯器中打開', // DebugConsole 'debug.title': '調試控制台', @@ -370,19 +304,15 @@ const zh: Record = { // SettingsPage sections 'settings.agentSafety': 'Agent 與安全', - 'settings.workspaceAccess': '工作區與文件访問', 'settings.appearance': '外觀', 'settings.integrations': '集成', - 'settings.languageServers': '語言服務器', 'settings.diagnostics': '診斷', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': '生命週期鉤子', 'settings.hooksAdd': '+ 新增', 'settings.hooksEdit': '編輯', 'settings.hooksDelete': '刪除', 'settings.hooksInject': '注入', 'settings.hooksNone': '(無)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': '匹配 (* 符合全部)', 'settings.hooksType': '類型 (command/http)', 'settings.hooksCommand': '命令', @@ -404,13 +334,11 @@ const zh: Record = { 'settings.hooksMatchMode': '匹配模式', 'settings.hooksTesterTitle': '正則測試器', 'settings.hooksTesterPlaceholder': '例如 run_command git push', - 'settings.hooksTestBtn': '測試', 'settings.hooksTestMatched': '匹配成功!', 'settings.hooksTestNotMatched': '不匹配', 'settings.hooksTestError': '錯誤: {0}', 'settings.addCustomEndpoint': '添加自定義端點', 'settings.configured': '已配置', - 'settings.install': '安裝:', 'settings.saveLimits': '保存限制', 'settings.refreshModels': '從 API 刷新模型', 'settings.versionPlaceholder': '版本號...', @@ -445,8 +373,6 @@ const zh: Record = { 'settings.theme': '主題', 'settings.themeLight': '浅色', 'settings.themeDark': '深色', - 'settings.themeSystem': '跟随系統', - 'settings.integrationsHint': '啟用集成功能以便快速访問工具。', 'settings.lspHint': '語言服務器協議(LSP)為 Agent 提供代碼智能功能:轉到定義、查找引用、懸停信息、診斷等。', 'settings.lspNoServers': '此工作區未檢測到語言服務器。', 'settings.lspConfigured': '(已配置)', @@ -474,17 +400,9 @@ const zh: Record = { 'chat.copyError': '復制錯誤', // Permission mode dropdown options - 'mode.supervisedDesc': '監督(每個工具需確認)', - 'mode.autoDesc': '自動(僅安全工具)', - 'mode.planDesc': '計劃(只讀)', - 'mode.bypassDesc': '繞過(自動批準大部分工具)', - 'mode.autopilotDesc': '自動驾驶(高度自主)', // Common dropdown placeholders - 'common.chooseVendor': '選擇服務商...', - 'common.chooseEndpoint': '選擇端點...', 'common.chooseModel': '選擇模型...', - 'common.english': '英文', // ChatView activity descriptions 'chat.activity.reading': '讀取文件中...', @@ -499,13 +417,10 @@ const zh: Record = { 'chat.activity.subagent': '運行子 Agent...', 'chat.activity.waiting': '等待輸入...', 'chat.activity.saving': '保存記憶中...', - 'chat.activity.writingResponse': '編寫回復中...', 'chat.activity.planMode': '進入計劃模式...', // ChatView UI labels 'chat.findPlaceholder': '在對話中查找...', - 'chat.noModel': '无模型', - 'chat.selectWorkspace': '選擇工作區', 'chat.sending': '發送中...', 'chat.failedToSend': '發送失敗', 'chat.nickname': '暱稱', @@ -529,11 +444,7 @@ const zh: Record = { 'chat.title.copyReasoning': '復制推理過程', 'chat.title.editResend': '編輯并重發', 'chat.title.copyMessage': '復制消息', - 'chat.title.regenerate': '重新生成回復', - 'chat.title.copyResult': '復制結果', - 'chat.title.copyError': '復制錯誤', 'chat.title.teamBoard': '打開任務面板', - 'chat.title.editIdentity': '點擊編輯暱稱、角色和團隊', // MCPServers 'mcp.transport': '傳輸方式', @@ -564,51 +475,30 @@ const zh: Record = { 'lanchat.noMessagesDM': '暂无私信。', 'lanchat.broadcastPlaceholder': '廣播给所有人...', 'lanchat.dmPlaceholder': '给 {name} 發消息...', - 'lanchat.enterNickname': '輸入新暱稱:', // ApprovalDialog hints - 'approval.denyHint': '拒絕', - 'approval.allowHint': '允許', - 'approval.alwaysHint': '始終', - 'approval.copyToClipboard': '復制到剪貼板', - 'approval.ariaLabel': '工具審批', // AskUserDialog 'askUser.typeAnswer': '輸入你的回答...', - 'askUser.additionalNotes': '附加備注(可選)', - 'askUser.close': '關閉對話框', - 'askUser.cancel': '取消', // IMManagement 'im.editAdapter': '編輯: {name}', - 'im.addTitle': '添加 IM 适配器', - 'im.adapterNameRequired': '请輸入适配器名稱', // FileBrowser 'files.searchPlaceholder': '搜索文件...', 'files.officeDocument': 'Office 文檔', 'files.openExternal': '使用外部應用打開查看', - 'files.renderingMermaid': '渲染圖錶中...', 'files.htmlPreview': 'HTML 預覽', // Dialogs / About - 'about.checkUpdates': '檢查更新', - 'about.checking': '檢查中...', - 'about.newVersion': '發現新版本: v{version}', - 'about.download': '下載', // TopDragBar (window controls) - 'window.close': '關閉', - 'window.minimize': '最小化', - 'window.maximize': '最大化', - 'window.restore': '恢復窗口', // StatusBar 'status.toggleContext': '切換上下文面板', // TeamBoard 'team.boardTitle': '任務面板', - 'team.closeBoard': '關閉任務面板', // Common shared 'common.dismiss': '關閉通知', @@ -661,12 +551,8 @@ const zh: Record = { 'settings.chooseVendor': '選擇供應商...', 'settings.chooseEndpoint': '選擇端點...', 'settings.modeSupervised': '受控模式(逐個確認工具)', - 'settings.modeAuto': '自動模式(僅安全工具)', - 'settings.modePlan': '計劃模式(只讀)', 'settings.modeBypass': '繞過模式(自動批準安全工具)', 'settings.modeBypassAll': '繞過模式(自動批準大部分工具)', - 'settings.modeAutopilot': '自動驾驶(批準所有操作)', - 'settings.modeAutopilotHigh': '自動驾驶(高度自主)', 'settings.saveModeHint': '保存以持久化此默認模式。運行時模式更改仍遵循應用程序的正常模式處理。', // Dialogs @@ -700,11 +586,6 @@ const zh: Record = { 'onboarding.languageHint': '稍後可以在設定中更改', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': '審查并批準每次工具執行', - 'settings.modeDescAuto': '自動僅批準安全操作', - 'settings.modeDescPlan': '探索代碼而不做更改', - 'settings.modeDescBypass': '自動批準大部分操作', - 'settings.modeDescAutopilot': '完全自主,最少干預', 'settings.agentSafetyHint': '查看桌面端 agent 当前的自主權限。此處僅匯總現有行為,不更改高級工具策略。', 'settings.workspaceAccessHint': '文件工具在当前工作區和配置的允許目錄內操作。高級目錄編輯目前不在此處開放,以避免意外更改安全邊界。', 'settings.appearanceHint': '自定義視觉主題。應用默認跟随系統偏好設置。', @@ -763,9 +644,6 @@ const zh: Record = { 'toast.copiedMessages': '已復制 {count} 條消息到剪貼板', // FileBrowser - 'files.emptyDirectory': '空目錄', - 'files.noMatchingFiles': '没有匹配的文件', - 'files.selectToPreview': '選擇文件預覽', // ApprovalDialog risk levels 'approval.riskHigh': '高風險', @@ -773,59 +651,12 @@ const zh: Record = { 'approval.riskLow': '低風險', // DebugConsole - 'debug.filterLogs': '過濾調試日志', // Sidebar context menu - 'sidebar.ctxOpen': '打開', - 'sidebar.ctxRename': '重命名', - 'sidebar.ctxCopyId': '復制 ID', - 'sidebar.ctxDelete': '刪除', - 'sidebar.ctxPin': '置頂', - 'sidebar.ctxUnpin': '取消置頂', - 'sidebar.startConversation': '開始對話', - 'sidebar.noMatching': '没有匹配"{search}"的會話', - 'sidebar.clearSearch': '清除搜索', - 'sidebar.noSessionsYet': '還没有會話', // ChatView context menu & run stats - 'chat.ctxCopy': '復制', - 'chat.ctxEdit': '編輯', - 'chat.ctxRegenerate': '重新生成', - 'chat.runDuration': '耗時', - 'chat.runTools': '工具', - 'chat.runFiles': '文件', - 'chat.runErrors': '錯誤', - 'chat.runTokens': '令牌', - 'chat.dropImages': '拖放圖片以附加', - 'chat.slashHelp': '顯示可用命令', - 'chat.slashModel': '切換或查看 AI 模型', - 'chat.slashMode': '更改權限模式(auto/supervised/plan/bypass)', - 'chat.slashClear': '清空聊天歷史', - 'chat.slashCompact': '壓縮上下文窗口', - 'chat.slashContext': '顯示上下文使用詳情', - 'chat.slashCost': '顯示令牌用量和费用', - 'chat.slashCopy': '復制對話到剪貼板', - 'chat.slashExport': '下載對話為 Markdown 文件', - 'chat.slashSessions': '瀏覽并切換會話', - 'chat.slashConfig': '查看或編輯配置', - 'chat.slashStatus': '顯示運行狀態', - 'chat.slashSkills': '瀏覽可用技能', - 'chat.slashMcp': '管理 MCP 服務器', - 'chat.slashReview': '審查代碼變更(git diff)', - 'chat.slashDiff': '顯示工作树差異', - 'chat.slashReflect': '觸發自我反思', - 'chat.slashUndo': '撤銷上次文件編輯', - 'chat.slashRegenerate': '重新生成上次回復', - 'chat.slashTodo': '任務管理', - 'chat.slashInit': '初始化項目記憶文件', - 'chat.slashLang': '更改界面語言', - 'chat.slashBug': '報告 Bug', // Dialogs links - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': '版本發布', - 'dialogs.linkIssues': '問題反饋', - 'dialogs.linkDiscord': 'Discord', // MCPServers transports 'mcp.transportHttp': 'HTTP / SSE', @@ -834,20 +665,14 @@ const zh: Record = { 'mcp.descWs': '通過 WebSocket 的遠程服務器', // IMManagement - 'im.qrAuthHint': '此平台使用二維碼認證。保存以啟動配對流程。', - 'im.noConfigurableFields': '此适配器无可配置字段。', // PairingCodeDialog - 'pairing.enterCode': '在你的 IM 頻道中輸入此代碼:', // LanChatView - 'lanchat.noContactsOnline': '没有聯系人在線', // ContextPanel - 'context.noImAdapters': '没有綁定的 IM 适配器', // SettingsPage - 'settings.maxTokensHint': '設為 0 或留空以從模型規格自動檢測。', 'settings.oauthConnected': '已連接', 'settings.oauthNotConnected': '未連接', 'settings.oauthLoggingIn': '正在登錄...', diff --git a/desktop/ggcode-desktop-wails/frontend/src/i18n/zh.ts b/desktop/ggcode-desktop-wails/frontend/src/i18n/zh.ts index 412e4f9af..938cd5c97 100644 --- a/desktop/ggcode-desktop-wails/frontend/src/i18n/zh.ts +++ b/desktop/ggcode-desktop-wails/frontend/src/i18n/zh.ts @@ -8,7 +8,6 @@ const zh: Record = { 'nav.mcp': 'MCP 服务器', 'nav.settings': '设置', 'nav.debug': '调试控制台', - 'nav.lanchat': '局域网聊天', 'nav.cron': '定时任务', 'cron.title': '定时任务', 'cron.newTask': '新建任务', @@ -63,7 +62,6 @@ const zh: Record = { 'sidebar.newSession': '新建会话', 'sidebar.untitled': '未命名', 'sidebar.delete': '删除', - 'sidebar.loading': '加载中...', 'sidebar.group.pinned': '已置顶', 'sidebar.group.today': '今天', 'sidebar.group.yesterday': '昨天', @@ -77,7 +75,6 @@ const zh: Record = { // StatusBar 'status.ready': '就绪', 'status.thinking': '思考中...', - 'status.streaming': '输出中', 'status.offline': '离线', 'status.zoomIn': '放大 (Cmd+)', 'status.zoomOut': '缩小 (Cmd-)', @@ -100,9 +97,6 @@ const zh: Record = { 'cmd.noResults': '没有匹配的命令', 'cmd.newSession': '新建会话', 'cmd.searchSessions': '搜索会话', - 'cmd.clearHistory': '清除历史', - 'cmd.compactContext': '压缩上下文', - 'cmd.undoLast': '撤销上次操作', 'cmd.shareSession': '分享会话', 'cmd.exportMarkdown': '导出会话为 Markdown', 'cmd.exportJSON': '导出会话为 JSON', @@ -177,8 +171,6 @@ const zh: Record = { // ContextPanel 'context.title': '上下文', 'context.usage': '上下文使用量', - 'context.permission': '权限模式', - 'context.files': '上下文中的文件', 'context.input': '输入', 'context.output': '输出', 'context.cacheRead': '缓存读取', @@ -198,12 +190,9 @@ const zh: Record = { 'settings.apiKey': 'API 密钥', 'settings.apiKeyPlaceholder': '请输入 API 密钥', 'settings.model': '模型', - 'settings.modelPlaceholder': '例如 claude-sonnet-4-20250514', 'settings.permissionMode': '权限模式', 'settings.language': '语言', 'settings.identity': '身份', - 'settings.identityPlaceholder': '你的名字或别名', - 'settings.version': '版本', 'settings.save': '保存', 'settings.saved': '已保存!', 'settings.saving': '保存中...', @@ -213,32 +202,18 @@ const zh: Record = { 'settings.impersonateApply': '应用', // Onboarding - 'onboarding.title': '欢迎使用 GGCode', - 'onboarding.subtitle': '几步即可开始', 'onboarding.next': '下一步', 'onboarding.back': '上一步', 'onboarding.getStarted': '开始使用', - 'onboarding.step.vendor': '选择 AI 服务商', - 'onboarding.step.apiKey': '输入 API 密钥', - 'onboarding.step.configure': '配置', 'onboarding.vendorHint': '选择你要使用的 AI 服务商', - 'onboarding.apiKeyHint': '你的 API 密钥保存在本地,不会发送到我们的服务器', 'onboarding.configHint': '调整这些设置,或保持默认值', - 'onboarding.skip': '跳过设置', - 'onboarding.workDir': '工作目录', - 'onboarding.browse': '浏览', - 'onboarding.workDirHint': '选择要工作的项目目录', 'onboarding.welcome': '欢迎使用 GGCode', 'onboarding.selectDirHint': '选择一个项目目录开始使用', 'onboarding.chooseDir': '选择目录', 'onboarding.modeSupervised': '监督模式', 'onboarding.modeSupervisedDesc': '执行前审查并批准每个工具调用', - 'onboarding.modeAuto': '自动模式', - 'onboarding.modeAutoDesc': '自动批准只读工具,确认危险操作', 'onboarding.modeBypass': '绕过模式', 'onboarding.modeBypassDesc': '自动批准所有工具,无需确认', - 'onboarding.modeAutopilot': '自动驾驶', - 'onboarding.modeAutopilotDesc': '完全自主 — 无需任何确认即可运行', 'onboarding.fetchingModels': '获取中...', 'onboarding.fetchModels': '获取模型', 'onboarding.noModelsFound': '未找到模型。请手动输入模型名称。', @@ -261,27 +236,18 @@ const zh: Record = { // Dialogs (About) 'about.title': '关于 GGCode', - 'about.version': '版本', 'about.description': '终端 AI 编程助手', - 'about.close': '关闭', // PairingCodeDialog 'pairing.title': '配对设备', - 'pairing.code': '配对码', - 'pairing.expiresIn': '{n}秒后过期', 'pairing.close': '关闭', // ShareDialog 'share.title': '分享会话', - 'share.connectUrl': '连接 URL', - 'share.qrCode': '二维码', 'share.copy': '复制', 'share.copied': '已复制!', - 'share.openInBrowser': '在浏览器中打开', 'share.stopSharing': '停止分享', 'share.generating': '生成中...', - 'share.scanQr': '扫描二维码连接', - 'share.activeDevices': '{n} 个设备已连接', // IMManagement 'im.title': 'IM 适配器', @@ -292,55 +258,23 @@ const zh: Record = { 'im.unbound': '未绑定', 'im.online': '在线', 'im.offline': '离线', - 'im.muted': '已静音', 'im.mute': '静音', 'im.unmute': '取消静音', - 'im.delete': '删除', - 'im.configure': '配置', 'im.platform': '平台', 'im.name': '名称', - 'im.workspace': '工作区', - 'im.enabled': '已启用', 'im.save': '保存', 'im.cancel': '取消', 'im.selectPlatform': '选择平台...', - 'im.adapterName': '适配器名称', - 'im.adapterNamePlaceholder': '例如 我的 Slack', - 'im.bindToWorkspace': '绑定工作区', - 'im.enabledHint': '启用此适配器', - 'im.pairing': '配对中...', - 'im.paired': '已配对', - 'im.notPaired': '未配对', - 'im.startPairing': '开始配对', // MCPServers 'mcp.title': 'MCP 服务器', 'mcp.add': '添加', - 'mcp.noServers': '未配置 MCP 服务器。点击"添加"添加一个。', 'mcp.name': '名称', - 'mcp.command': '命令', - 'mcp.args': '参数', - 'mcp.url': 'URL', - 'mcp.headers': '请求头', - 'mcp.type': '类型', - 'mcp.typeLocal': '本地 (stdio)', - 'mcp.typeRemote': '远程 (HTTP)', - 'mcp.enabled': '已启用', - 'mcp.save': '保存', 'mcp.cancel': '取消', - 'mcp.delete': '删除', - 'mcp.namePlaceholder': '服务器名称', - 'mcp.commandPlaceholder': '例如 npx @modelcontextprotocol/server', - 'mcp.argsPlaceholder': '参数(空格分隔)', - 'mcp.urlPlaceholder': '例如 http://localhost:3000/mcp', - 'mcp.selectType': '选择类型...', // FileBrowser 'files.fileTooLarge': '文件过大无法预览 (>2MB)', 'files.binaryFile': '二进制文件', - 'files.imagePreview': '图片预览', - 'files.noPreview': '无预览', - 'files.openInEditor': '在编辑器中打开', // DebugConsole 'debug.title': '调试控制台', @@ -370,19 +304,15 @@ const zh: Record = { // SettingsPage sections 'settings.agentSafety': 'Agent 与安全', - 'settings.workspaceAccess': '工作区与文件访问', 'settings.appearance': '外观', 'settings.integrations': '集成', - 'settings.languageServers': '语言服务器', 'settings.diagnostics': '诊断', - 'settings.hooks': 'Hooks', 'settings.hooksTitle': '生命周期钩子', 'settings.hooksAdd': '+ 添加', 'settings.hooksEdit': '编辑', 'settings.hooksDelete': '删除', 'settings.hooksInject': '注入', 'settings.hooksNone': '(无)', - 'settings.hooksEditTitle': '{0} Hook — {1}', 'settings.hooksMatch': '匹配 (* 匹配全部)', 'settings.hooksType': '类型 (command/http)', 'settings.hooksCommand': '命令', @@ -404,13 +334,11 @@ const zh: Record = { 'settings.hooksMatchMode': '匹配模式', 'settings.hooksTesterTitle': '正则测试器', 'settings.hooksTesterPlaceholder': '例如 run_command git push', - 'settings.hooksTestBtn': '测试', 'settings.hooksTestMatched': '匹配成功!', 'settings.hooksTestNotMatched': '不匹配', 'settings.hooksTestError': '错误: {0}', 'settings.addCustomEndpoint': '添加自定义端点', 'settings.configured': '已配置', - 'settings.install': '安装:', 'settings.saveLimits': '保存限制', 'settings.refreshModels': '从 API 刷新模型', 'settings.versionPlaceholder': '版本号...', @@ -445,8 +373,6 @@ const zh: Record = { 'settings.theme': '主题', 'settings.themeLight': '浅色', 'settings.themeDark': '深色', - 'settings.themeSystem': '跟随系统', - 'settings.integrationsHint': '启用集成功能以便快速访问工具。', 'settings.lspHint': '语言服务器协议(LSP)为 Agent 提供代码智能功能:转到定义、查找引用、悬停信息、诊断等。', 'settings.lspNoServers': '此工作区未检测到语言服务器。', 'settings.lspConfigured': '(已配置)', @@ -474,17 +400,9 @@ const zh: Record = { 'chat.copyError': '复制错误', // Permission mode dropdown options - 'mode.supervisedDesc': '监督(每个工具需确认)', - 'mode.autoDesc': '自动(仅安全工具)', - 'mode.planDesc': '计划(只读)', - 'mode.bypassDesc': '绕过(自动批准大部分工具)', - 'mode.autopilotDesc': '自动驾驶(高度自主)', // Common dropdown placeholders - 'common.chooseVendor': '选择服务商...', - 'common.chooseEndpoint': '选择端点...', 'common.chooseModel': '选择模型...', - 'common.english': '英文', // ChatView activity descriptions 'chat.activity.reading': '读取文件中...', @@ -499,13 +417,10 @@ const zh: Record = { 'chat.activity.subagent': '运行子 Agent...', 'chat.activity.waiting': '等待输入...', 'chat.activity.saving': '保存记忆中...', - 'chat.activity.writingResponse': '编写回复中...', 'chat.activity.planMode': '进入计划模式...', // ChatView UI labels 'chat.findPlaceholder': '在对话中查找...', - 'chat.noModel': '无模型', - 'chat.selectWorkspace': '选择工作区', 'chat.sending': '发送中...', 'chat.failedToSend': '发送失败', 'chat.nickname': '昵称', @@ -529,11 +444,7 @@ const zh: Record = { 'chat.title.copyReasoning': '复制推理过程', 'chat.title.editResend': '编辑并重发', 'chat.title.copyMessage': '复制消息', - 'chat.title.regenerate': '重新生成回复', - 'chat.title.copyResult': '复制结果', - 'chat.title.copyError': '复制错误', 'chat.title.teamBoard': '打开任务面板', - 'chat.title.editIdentity': '点击编辑昵称、角色和团队', // MCPServers 'mcp.transport': '传输方式', @@ -564,51 +475,30 @@ const zh: Record = { 'lanchat.noMessagesDM': '暂无私信。', 'lanchat.broadcastPlaceholder': '广播给所有人...', 'lanchat.dmPlaceholder': '给 {name} 发消息...', - 'lanchat.enterNickname': '输入新昵称:', // ApprovalDialog hints - 'approval.denyHint': '拒绝', - 'approval.allowHint': '允许', - 'approval.alwaysHint': '始终', - 'approval.copyToClipboard': '复制到剪贴板', - 'approval.ariaLabel': '工具审批', // AskUserDialog 'askUser.typeAnswer': '输入你的回答...', - 'askUser.additionalNotes': '附加备注(可选)', - 'askUser.close': '关闭对话框', - 'askUser.cancel': '取消', // IMManagement 'im.editAdapter': '编辑: {name}', - 'im.addTitle': '添加 IM 适配器', - 'im.adapterNameRequired': '请输入适配器名称', // FileBrowser 'files.searchPlaceholder': '搜索文件...', 'files.officeDocument': 'Office 文档', 'files.openExternal': '使用外部应用打开查看', - 'files.renderingMermaid': '渲染图表中...', 'files.htmlPreview': 'HTML 预览', // Dialogs / About - 'about.checkUpdates': '检查更新', - 'about.checking': '检查中...', - 'about.newVersion': '发现新版本: v{version}', - 'about.download': '下载', // TopDragBar (window controls) - 'window.close': '关闭', - 'window.minimize': '最小化', - 'window.maximize': '最大化', - 'window.restore': '恢复窗口', // StatusBar 'status.toggleContext': '切换上下文面板', // TeamBoard 'team.boardTitle': '任务面板', - 'team.closeBoard': '关闭任务面板', // Common shared 'common.dismiss': '关闭通知', @@ -661,12 +551,8 @@ const zh: Record = { 'settings.chooseVendor': '选择供应商...', 'settings.chooseEndpoint': '选择端点...', 'settings.modeSupervised': '受控模式(逐个确认工具)', - 'settings.modeAuto': '自动模式(仅安全工具)', - 'settings.modePlan': '计划模式(只读)', 'settings.modeBypass': '绕过模式(自动批准安全工具)', 'settings.modeBypassAll': '绕过模式(自动批准大部分工具)', - 'settings.modeAutopilot': '自动驾驶(批准所有操作)', - 'settings.modeAutopilotHigh': '自动驾驶(高度自主)', 'settings.saveModeHint': '保存以持久化此默认模式。运行时模式更改仍遵循应用程序的正常模式处理。', // Dialogs @@ -700,11 +586,6 @@ const zh: Record = { 'onboarding.languageHint': '稍后可以在设置中更改', // SettingsPage mode descriptions (FeatureCard) - 'settings.modeDescSupervised': '审查并批准每次工具执行', - 'settings.modeDescAuto': '自动仅批准安全操作', - 'settings.modeDescPlan': '探索代码而不做更改', - 'settings.modeDescBypass': '自动批准大部分操作', - 'settings.modeDescAutopilot': '完全自主,最少干预', 'settings.agentSafetyHint': '查看桌面端 agent 当前的自主权限。此处仅汇总现有行为,不更改高级工具策略。', 'settings.workspaceAccessHint': '文件工具在当前工作区和配置的允许目录内操作。高级目录编辑目前不在此处开放,以避免意外更改安全边界。', 'settings.appearanceHint': '自定义视觉主题。应用默认跟随系统偏好设置。', @@ -763,9 +644,6 @@ const zh: Record = { 'toast.copiedMessages': '已复制 {count} 条消息到剪贴板', // FileBrowser - 'files.emptyDirectory': '空目录', - 'files.noMatchingFiles': '没有匹配的文件', - 'files.selectToPreview': '选择文件预览', // ApprovalDialog risk levels 'approval.riskHigh': '高风险', @@ -773,59 +651,12 @@ const zh: Record = { 'approval.riskLow': '低风险', // DebugConsole - 'debug.filterLogs': '过滤调试日志', // Sidebar context menu - 'sidebar.ctxOpen': '打开', - 'sidebar.ctxRename': '重命名', - 'sidebar.ctxCopyId': '复制 ID', - 'sidebar.ctxDelete': '删除', - 'sidebar.ctxPin': '置顶', - 'sidebar.ctxUnpin': '取消置顶', - 'sidebar.startConversation': '开始对话', - 'sidebar.noMatching': '没有匹配"{search}"的会话', - 'sidebar.clearSearch': '清除搜索', - 'sidebar.noSessionsYet': '还没有会话', // ChatView context menu & run stats - 'chat.ctxCopy': '复制', - 'chat.ctxEdit': '编辑', - 'chat.ctxRegenerate': '重新生成', - 'chat.runDuration': '耗时', - 'chat.runTools': '工具', - 'chat.runFiles': '文件', - 'chat.runErrors': '错误', - 'chat.runTokens': '令牌', - 'chat.dropImages': '拖放图片以附加', - 'chat.slashHelp': '显示可用命令', - 'chat.slashModel': '切换或查看 AI 模型', - 'chat.slashMode': '更改权限模式(auto/supervised/plan/bypass)', - 'chat.slashClear': '清空聊天历史', - 'chat.slashCompact': '压缩上下文窗口', - 'chat.slashContext': '显示上下文使用详情', - 'chat.slashCost': '显示令牌用量和费用', - 'chat.slashCopy': '复制对话到剪贴板', - 'chat.slashExport': '下载对话为 Markdown 文件', - 'chat.slashSessions': '浏览并切换会话', - 'chat.slashConfig': '查看或编辑配置', - 'chat.slashStatus': '显示运行状态', - 'chat.slashSkills': '浏览可用技能', - 'chat.slashMcp': '管理 MCP 服务器', - 'chat.slashReview': '审查代码变更(git diff)', - 'chat.slashDiff': '显示工作树差异', - 'chat.slashReflect': '触发自我反思', - 'chat.slashUndo': '撤销上次文件编辑', - 'chat.slashRegenerate': '重新生成上次回复', - 'chat.slashTodo': '任务管理', - 'chat.slashInit': '初始化项目记忆文件', - 'chat.slashLang': '更改界面语言', - 'chat.slashBug': '报告 Bug', // Dialogs links - 'dialogs.linkGitHub': 'GitHub', - 'dialogs.linkReleases': '版本发布', - 'dialogs.linkIssues': '问题反馈', - 'dialogs.linkDiscord': 'Discord', // MCPServers transports 'mcp.transportHttp': 'HTTP / SSE', @@ -834,20 +665,14 @@ const zh: Record = { 'mcp.descWs': '通过 WebSocket 的远程服务器', // IMManagement - 'im.qrAuthHint': '此平台使用二维码认证。保存以启动配对流程。', - 'im.noConfigurableFields': '此适配器无可配置字段。', // PairingCodeDialog - 'pairing.enterCode': '在你的 IM 频道中输入此代码:', // LanChatView - 'lanchat.noContactsOnline': '没有联系人在线', // ContextPanel - 'context.noImAdapters': '没有绑定的 IM 适配器', // SettingsPage - 'settings.maxTokensHint': '设为 0 或留空以从模型规格自动检测。', 'settings.oauthConnected': '已连接', 'settings.oauthNotConnected': '未连接', 'settings.oauthLoggingIn': '正在登录...',