From d8a0423c0716f874c7858db9c1ec05b51fb208bc Mon Sep 17 00:00:00 2001 From: Harry He <20519290+Harry19081@users.noreply.github.com> Date: Tue, 15 Sep 2026 14:25:55 +0800 Subject: [PATCH] style(ui-copy): remove terminal punctuation from secondary copy --- .../GitConnectionWizard.md | 0 src/i18n/locales/de/common.json | 16 ++-- src/i18n/locales/de/integrations.json | 92 +++++++++---------- src/i18n/locales/de/navigation.json | 18 ++-- src/i18n/locales/de/onboarding.json | 24 ++--- src/i18n/locales/de/projects.json | 38 ++++---- src/i18n/locales/de/sessions.json | 8 +- src/i18n/locales/de/settings.json | 16 ++-- src/i18n/locales/en/common.json | 16 ++-- src/i18n/locales/en/integrations.json | 90 +++++++++--------- src/i18n/locales/en/mobileRemote.json | 2 +- src/i18n/locales/en/navigation.json | 18 ++-- src/i18n/locales/en/onboarding.json | 24 ++--- src/i18n/locales/en/projects.json | 38 ++++---- src/i18n/locales/en/sessions.json | 8 +- src/i18n/locales/en/settings.json | 16 ++-- src/i18n/locales/es/common.json | 16 ++-- src/i18n/locales/es/integrations.json | 92 +++++++++---------- src/i18n/locales/es/navigation.json | 18 ++-- src/i18n/locales/es/onboarding.json | 24 ++--- src/i18n/locales/es/projects.json | 38 ++++---- src/i18n/locales/es/sessions.json | 8 +- src/i18n/locales/es/settings.json | 16 ++-- src/i18n/locales/fr/common.json | 16 ++-- src/i18n/locales/fr/integrations.json | 92 +++++++++---------- src/i18n/locales/fr/navigation.json | 18 ++-- src/i18n/locales/fr/onboarding.json | 24 ++--- src/i18n/locales/fr/projects.json | 38 ++++---- src/i18n/locales/fr/sessions.json | 8 +- src/i18n/locales/fr/settings.json | 16 ++-- src/i18n/locales/ja/common.json | 16 ++-- src/i18n/locales/ja/integrations.json | 92 +++++++++---------- src/i18n/locales/ja/navigation.json | 18 ++-- src/i18n/locales/ja/onboarding.json | 22 ++--- src/i18n/locales/ja/projects.json | 38 ++++---- src/i18n/locales/ja/sessions.json | 8 +- src/i18n/locales/ja/settings.json | 16 ++-- src/i18n/locales/ko/common.json | 16 ++-- src/i18n/locales/ko/integrations.json | 92 +++++++++---------- src/i18n/locales/ko/navigation.json | 18 ++-- src/i18n/locales/ko/onboarding.json | 24 ++--- src/i18n/locales/ko/projects.json | 38 ++++---- src/i18n/locales/ko/sessions.json | 8 +- src/i18n/locales/ko/settings.json | 16 ++-- src/i18n/locales/pl/common.json | 16 ++-- src/i18n/locales/pl/integrations.json | 92 +++++++++---------- src/i18n/locales/pl/navigation.json | 18 ++-- src/i18n/locales/pl/onboarding.json | 24 ++--- src/i18n/locales/pl/projects.json | 38 ++++---- src/i18n/locales/pl/sessions.json | 8 +- src/i18n/locales/pl/settings.json | 16 ++-- src/i18n/locales/pt/common.json | 16 ++-- src/i18n/locales/pt/integrations.json | 92 +++++++++---------- src/i18n/locales/pt/navigation.json | 18 ++-- src/i18n/locales/pt/onboarding.json | 24 ++--- src/i18n/locales/pt/projects.json | 38 ++++---- src/i18n/locales/pt/sessions.json | 8 +- src/i18n/locales/pt/settings.json | 16 ++-- src/i18n/locales/ru/common.json | 16 ++-- src/i18n/locales/ru/integrations.json | 92 +++++++++---------- src/i18n/locales/ru/navigation.json | 18 ++-- src/i18n/locales/ru/onboarding.json | 24 ++--- src/i18n/locales/ru/projects.json | 38 ++++---- src/i18n/locales/ru/sessions.json | 8 +- src/i18n/locales/ru/settings.json | 16 ++-- src/i18n/locales/tr/common.json | 16 ++-- src/i18n/locales/tr/integrations.json | 92 +++++++++---------- src/i18n/locales/tr/navigation.json | 18 ++-- src/i18n/locales/tr/onboarding.json | 24 ++--- src/i18n/locales/tr/projects.json | 38 ++++---- src/i18n/locales/tr/sessions.json | 8 +- src/i18n/locales/tr/settings.json | 16 ++-- src/i18n/locales/vi/common.json | 16 ++-- src/i18n/locales/vi/integrations.json | 92 +++++++++---------- src/i18n/locales/vi/navigation.json | 18 ++-- src/i18n/locales/vi/onboarding.json | 24 ++--- src/i18n/locales/vi/projects.json | 38 ++++---- src/i18n/locales/vi/sessions.json | 8 +- src/i18n/locales/vi/settings.json | 16 ++-- src/i18n/locales/zh-Hant/common.json | 16 ++-- src/i18n/locales/zh-Hant/integrations.json | 92 +++++++++---------- src/i18n/locales/zh-Hant/navigation.json | 18 ++-- src/i18n/locales/zh-Hant/onboarding.json | 24 ++--- src/i18n/locales/zh-Hant/projects.json | 38 ++++---- src/i18n/locales/zh-Hant/sessions.json | 8 +- src/i18n/locales/zh-Hant/settings.json | 14 +-- src/i18n/locales/zh/common.json | 16 ++-- src/i18n/locales/zh/integrations.json | 90 +++++++++--------- src/i18n/locales/zh/mobileRemote.json | 2 +- src/i18n/locales/zh/navigation.json | 18 ++-- src/i18n/locales/zh/onboarding.json | 24 ++--- src/i18n/locales/zh/projects.json | 38 ++++---- src/i18n/locales/zh/sessions.json | 8 +- src/i18n/locales/zh/settings.json | 14 +-- .../variants/Channel/ChannelSections.tsx | 12 +-- .../variants/Channel/ChannelWizard.tsx | 4 +- 96 files changed, 1383 insertions(+), 1383 deletions(-) create mode 100644 docs/frontend-ui-audit-2026-09-15/GitConnectionWizard.md diff --git a/docs/frontend-ui-audit-2026-09-15/GitConnectionWizard.md b/docs/frontend-ui-audit-2026-09-15/GitConnectionWizard.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/i18n/locales/de/common.json b/src/i18n/locales/de/common.json index ba3e4b8f06..1ec386456d 100644 --- a/src/i18n/locales/de/common.json +++ b/src/i18n/locales/de/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Token erstellen", "openGitSettingsButton": "Einstellungen öffnen", "configureInSettings": "Git in den Einstellungen konfigurieren", - "configureInSettingsDesc": "Füge GitHub App-Zugriff hinzu, speichere ein Token oder scanne lokale Zugangsdaten unter Einstellungen → Verbindungen und versuche diese Git-Operation erneut." + "configureInSettingsDesc": "Füge GitHub App-Zugriff hinzu, speichere ein Token oder scanne lokale Zugangsdaten unter Einstellungen → Verbindungen und versuche diese Git-Operation erneut" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Repository-Name konnte nicht aus dem origin-Remote ermittelt werden", "authRequired": { "title": "GitHub verbinden", - "description": "Gehe zu Einstellungen → Verbindungen, um dein GitHub-Konto zu verbinden." + "description": "Gehe zu Einstellungen → Verbindungen, um dein GitHub-Konto zu verbinden" }, "navigationTrail": "Pull-Request-Navigation", "failedToLoad": "Pull Requests konnten nicht geladen werden", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Issue beschreiben (optional)…", "authRequired": { "title": "GitHub verbinden", - "description": "Gehe zu Einstellungen → Verbindungen, um dein GitHub-Konto zu verbinden." + "description": "Gehe zu Einstellungen → Verbindungen, um dein GitHub-Konto zu verbinden" }, "reAuthRequired": "GitHub-Autorisierung erforderlich", - "reAuthDescription": "Dein GitHub-Token ist abgelaufen. Gehe zu Einstellungen → Verbindungen, um die Verbindung zu erneuern.", + "reAuthDescription": "Dein GitHub-Token ist abgelaufen. Gehe zu Einstellungen → Verbindungen, um die Verbindung zu erneuern", "goToSettings": "Zu den Einstellungen", "loadingTimeline": "Aktivität wird geladen…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "ORG2 beenden?", - "subtitle": "Laufende Sitzungen behalten ihren aktuellen Zustand. Sie können ORG2 später erneut öffnen.", + "subtitle": "Laufende Sitzungen behalten ihren aktuellen Zustand. Sie können ORG2 später erneut öffnen", "cancel": "Abbrechen", "confirm": "Beenden" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari speichert Cookies in einem von macOS geschützten Ordner. Erlaube ORG2 unter Festplattenvollzugriff in den Systemeinstellungen und prüfe dann erneut.", + "explain": "Safari speichert Cookies in einem von macOS geschützten Ordner. Erlaube ORG2 unter Festplattenvollzugriff in den Systemeinstellungen und prüfe dann erneut", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/de/integrations.json b/src/i18n/locales/de/integrations.json index 6f6d351749..e9a8fa4745 100644 --- a/src/i18n/locales/de/integrations.json +++ b/src/i18n/locales/de/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "Lokal entfernen", "unlist": "Entfernen", "confirmRemoveTitle": "\"{{name}}\" entfernen?", - "confirmRemoveMessage": "Die lokalen Anmeldedaten werden entfernt. Diese Aktion kann nicht rückgängig gemacht werden.", + "confirmRemoveMessage": "Die lokalen Anmeldedaten werden entfernt. Diese Aktion kann nicht rückgängig gemacht werden", "toasts": { "refreshed": "{{name}} erfolgreich aktualisiert", "refreshError": "{{name}} konnte nicht aktualisiert werden: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "Konto-E-Mail" }, "customModels": { - "manualSetupHint": "Gib die exakte Modell-ID deines Endpunkts und optional einen Anzeigenamen ein. Die Modellsuche ist optional; Aktivieren prüft keine Kompatibilität.", + "manualSetupHint": "Gib die exakte Modell-ID deines Endpunkts und optional einen Anzeigenamen ein. Die Modellsuche ist optional; Aktivieren prüft keine Kompatibilität", "modelNamePlaceholder": "Modell-id eingeben...", "displayNamePlaceholder": "Optionale Bezeichnung", - "emptyHint": "Noch keine benutzerdefinierten Modelle hinzugefügt.", + "emptyHint": "Noch keine benutzerdefinierten Modelle hinzugefügt", "addModel": "Modell hinzufügen", "testRequiresEndpoint": "Gib einen Endpunkt und einen API-Schlüssel ein, um dieses Modell zu testen", "invalidModelId": "Modell-IDs müssen 1–256 Byte lang sein und dürfen keine Leer- oder Steuerzeichen enthalten.", @@ -145,7 +145,7 @@ "keysVerified": "Anmeldedaten verifiziert", "failedMessage": "Ihr API Key und Session Token scheinen nicht zum selben Cursor-Konto zu gehören.", "failedError": "Fehler: {{error}}", - "failedHint": "Bitte erstellen Sie ein neues Angebot mit übereinstimmenden Anmeldedaten aus demselben Cursor-Konto.", + "failedHint": "Bitte erstellen Sie ein neues Angebot mit übereinstimmenden Anmeldedaten aus demselben Cursor-Konto", "listingRejected": "Angebot abgelehnt", "rejectedByAdmin": "Dieses Angebot wurde von einem Administrator abgelehnt." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "Verwenden Sie den internen Browser, um Ihr Cursor-Konto zu verbinden.", "loggedIn": "Angemeldet", "loginStep": "Anmelden", - "signInToCursorHint": "Melden Sie sich bei Ihrem Cursor-Konto an. Dieses Fenster schließt sich nach der Anmeldung automatisch.", + "signInToCursorHint": "Melden Sie sich bei Ihrem Cursor-Konto an. Dieses Fenster schließt sich nach der Anmeldung automatisch", "copilotCreatePat": "GitHub Personal Access Token erstellen", "copilotCreatePatDesc": "Öffnet den internen Browser zur GitHub-PAT-Erstellung", "copilotTokenValidated": "Token validiert", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Cursor-Anmeldung", "modelCount": "{{count}} Modelle", "cursorLoginReadyTitle": "Cursor-Konto verbunden", - "cursorLoginReadyDesc": "Erstellen Sie unten einen Cursor API Key und fügen Sie ihn ein. Cursor agent funktioniert ohne diesen API Key nicht.", + "cursorLoginReadyDesc": "Erstellen Sie unten einen Cursor API Key und fügen Sie ihn ein. Cursor agent funktioniert ohne diesen API Key nicht", "cursorApiKeyBrowserHint": "Nach der Anmeldung öffnet ORG2 das Cursor dashboard. Erstellen Sie dort einen User API Key und fügen Sie ihn unten ein", "cursorApiKeyRecommendedTitle": "Cursor API Key empfohlen", "cursorApiKeyRecommendedDesc": "Sie können ohne Cursor API Key fortfahren, wenn Sie Cursor nur mit den Rust agents von ORG2 verwenden möchten; melden Sie sich einfach mit dem internen Browser an oder geben Sie ein session token an", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Das Gateway leitet eingehende Nachrichten von allen Kanälen weiter. Wählen Sie einen API-Schlüssel und ein Modell für das semantische Routing.", + "description": "Das Gateway leitet eingehende Nachrichten von allen Kanälen weiter. Wählen Sie einen API-Schlüssel und ein Modell für das semantische Routing", "statusReady": "Konfiguriert", "statusUnconfigured": "Nicht konfiguriert", "account": "API-Schlüssel-Konto", @@ -581,7 +581,7 @@ "model": "Modell", "modelPlaceholder": "Modell auswählen", "groupPerUser": "Gruppenchat-Sitzungen pro Benutzer isolieren", - "groupPerUserDesc": "Jeder Teilnehmer in einem Gruppenchat erhält seinen eigenen Sitzungskontext." + "groupPerUserDesc": "Jeder Teilnehmer in einem Gruppenchat erhält seinen eigenen Sitzungskontext" }, "emailProtocol": "Protokoll", "matrixDeviceNamePlaceholder": "ORG2-Bot" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Öffne die Verifizierungs-URL und gib diesen Code ein, um GitHub zu autorisieren.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "Nichts erkannt", - "scanEmptyDesc": "Es wurden keine gh-CLI-Tokens, Credential-Helpers oder SSH-Schlüssel gefunden. Wähle oben eine andere Methode.", + "scanEmptyDesc": "Es wurden keine gh-CLI-Tokens, Credential-Helpers oder SSH-Schlüssel gefunden. Wähle oben eine andere Methode", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Erkannte Zugangsdaten", - "scanResultsDesc": "Wähle eine Option zum Importieren. Tokens werden vor dem Speichern gegen GitHub validiert.", + "scanResultsDesc": "Wähle eine Option zum Importieren. Tokens werden vor dem Speichern gegen GitHub validiert", "scanSshKey": "SSH-Schlüssel — {{name}}", "scanning": "Wird gescannt…", - "scanningDesc": "Sucht auf diesem Gerät nach gh-CLI-Tokens, Credential-Helpers und SSH-Schlüsseln.", + "scanningDesc": "Sucht auf diesem Gerät nach gh-CLI-Tokens, Credential-Helpers und SSH-Schlüsseln", "sshKeyPath": "Pfad zum SSH-Schlüssel", "sshKeyPathDesc": "Absoluter Pfad zum privaten Schlüssel (z. B. ~/.ssh/id_ed25519). Der zugehörige öffentliche Schlüssel muss bereits auf GitHub hinterlegt sein.", "scanSelectRequired": "Wähle erkannte Zugangsdaten zum Importieren aus.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Nach dem Ändern des Browser CLI-Anbieters muss ORG2 neu gestartet werden, bevor Agents das ausgewählte Tool sehen. Jetzt neu starten?", "sidecarDownloadsSectionTitle": "Sidecar-Downloads", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Lädt die Agent Browser-Binärdatei für diese Plattform nach ~/.orgii/bin herunter. ORG2 lädt sie nie beim Start herunter.", + "sidecarAgentBrowserDesc": "Lädt die Agent Browser-Binärdatei für diese Plattform nach ~/.orgii/bin herunter. ORG2 lädt sie nie beim Start herunter", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Lädt die macOS-Peekaboo-Binärdatei für Desktop-Automatisierung nach ~/.orgii/bin herunter. Nicht unterstützte Plattformen bleiben deaktiviert.", + "sidecarPeekabooDesc": "Lädt die macOS-Peekaboo-Binärdatei für Desktop-Automatisierung nach ~/.orgii/bin herunter. Nicht unterstützte Plattformen bleiben deaktiviert", "sidecarUnsupported": "Nicht unterstützt", "sidecarInstalled": "Installiert", "sidecarNotInstalled": "Nicht installiert", @@ -874,7 +874,7 @@ "connectMethodDesc": "Wählen Sie, wie Sie Ihr GitHub-Konto verbinden möchten", "githubApp": "GitHub App", "detectFromSystem": "Vom System erkennen", - "detectFromSystemDesc": "Verwende gh CLI, SSH-Schlüssel oder Git-Credential-Helpers.", + "detectFromSystemDesc": "Verwende gh CLI, SSH-Schlüssel oder Git-Credential-Helpers", "credentialsDetected": "Anmeldedaten erkannt", "detectedVia": "Erkannt über {{source}}", "sshKeyLabel": "SSH-Schlüssel", @@ -894,7 +894,7 @@ "noCredentialsFound": "Keine GitHub-Anmeldedaten gefunden", "noCredentialsHint": "Installieren Sie die GitHub CLI (gh) oder richten Sie SSH-Schlüssel ein", "manuallyAddToken": "Token manuell hinzufügen", - "manualTokenDesc": "Füge ein GitHub PAT für HTTPS-Git-Operationen ein.", + "manualTokenDesc": "Füge ein GitHub PAT für HTTPS-Git-Operationen ein", "autoDetect": "Automatisch erkennen", "autoDetectTokenSaved": "GitHub-Token gespeichert", "autoDetectSshSwitched": "Remote auf SSH umgestellt", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "{{name}} <{{email}}> zu Git-Commits hinzufügen, die aus ORG2 erstellt werden", "noTokenYet": "Token benötigt?", - "createTokenDesc": "Öffne GitHub und erstelle ein PAT mit repo-Zugriff.", + "createTokenDesc": "Öffne GitHub und erstelle ein PAT mit repo-Zugriff", "accountConnected": "GitHub-Konto verbunden", "disconnectMsg": "Möchten Sie wirklich trennen? Dadurch wird der Zugriff auf alle Repos dieses Kontos entfernt.", "disconnectTitle": "GitHub-Konto trennen", @@ -929,7 +929,7 @@ "connectRepoDesc": "GitHub-Konto verbinden, um auf Repos zuzugreifen", "github": "GitHub", "signInWithGithub": "Mit GitHub anmelden", - "signInWithGithubDesc": "ORG2 über den GitHub Device Flow autorisieren. Kein Server-Hosting nötig.", + "signInWithGithubDesc": "ORG2 über den GitHub Device Flow autorisieren. Kein Server-Hosting nötig", "oauthWaiting": "Warten auf Autorisierung", "oauthDeviceCodeDesc": "Öffne die URL unten und gib diesen Code ein", "oauthOpenGithub": "GitHub öffnen", @@ -985,7 +985,7 @@ "filePathPlaceholder": "z. B. scripts/validate.py", "removeFile": "Datei entfernen", "editorNoDraftTitle": "Kein Skill-Entwurf in Bearbeitung", - "editorNoDraftDesc": "Klicken Sie auf der Skills-Seite auf „Erstellen“ oder wählen Sie ein Skill zum Bearbeiten aus.", + "editorNoDraftDesc": "Klicken Sie auf der Skills-Seite auf „Erstellen“ oder wählen Sie ein Skill zum Bearbeiten aus", "scopeWorkspace": "Repo-spezifisch", "deleteConfirmTitle": "Skill „{{name}}“ löschen?", "deleteConfirmMessage": "Dadurch werden der Skill und alle zugehörigen Dateien entfernt. Diese Aktion kann nicht rückgängig gemacht werden." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "MCP-Server suchen...", "noServers": "Keine MCP-Server konfiguriert", - "noServersDesc": "Fügen Sie einen MCP-Server hinzu, um die Agent-Fähigkeiten mit externen Tools zu erweitern.", + "noServersDesc": "Fügen Sie einen MCP-Server hinzu, um die Agent-Fähigkeiten mit externen Tools zu erweitern", "addServer": "MCP-Server hinzufügen", "editServer": "MCP-Server bearbeiten", "serverName": "Servername", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "Provenienz-Hooks", - "masterToggleDesc": "Wenn deaktiviert, werden alle verwalteten Hooks deinstalliert und keine Signale erfasst; die Auswahl pro Plattform bleibt erhalten und wird beim erneuten Aktivieren wiederhergestellt.", + "masterToggleDesc": "Wenn deaktiviert, werden alle verwalteten Hooks deinstalliert und keine Signale erfasst; die Auswahl pro Plattform bleibt erhalten und wird beim erneuten Aktivieren wiederhergestellt", "liveStatusToggle": "Live-Agent-Status", - "liveStatusToggleDesc": "Zeigt, ob laufende CLI-Agenten arbeiten oder warten. Aus lässt die Provenienzerfassung aktiv.", + "liveStatusToggleDesc": "Zeigt, ob laufende CLI-Agenten arbeiten oder warten. Aus lässt die Provenienzerfassung aktiv", "title": "Sitzungsherkunft", "capture": "Dateiinteraktionen erfassen", - "description": "Erfasst Lese- und Schreibzugriffe auf Dateien als Metadaten. Prompts, Werkzeugausgaben und Dateiinhalte werden nicht gespeichert.", + "description": "Erfasst Lese- und Schreibzugriffe auf Dateien als Metadaten. Prompts, Werkzeugausgaben und Dateiinhalte werden nicht gespeichert", "installDrift": "Gespeicherte Einstellung und installierter Hook stimmen nicht überein. Schalten Sie die Erfassung um, um den verwalteten Hook zu reparieren. Konfiguration: {{path}}", "copyPath": "Kopieren", "col": { @@ -1185,7 +1185,7 @@ "addMember": "Mitglied hinzufügen", "noMembers": "Füge Mitglieder hinzu, um die Org-Hierarchie aufzubauen", "membersLabel": "Teammitglieder", - "membersDesc": "Jede Zeile ist ein Mitglied mit einer unabhängigen Writer-Berechtigung und Kommunikationseinstellungen. Namen müssen eindeutig sein; die Rolle ist nur ein Hinweis auf die Spezialisierung.", + "membersDesc": "Jede Zeile ist ein Mitglied mit einer unabhängigen Writer-Berechtigung und Kommunikationseinstellungen. Namen müssen eindeutig sein; die Rolle ist nur ein Hinweis auf die Spezialisierung", "memberName": "Name", "memberNamePlaceholder": "Eindeutiger Routing-Name (z.B. SDE-1)", "memberNameDuplicate": "Ein anderes Mitglied verwendet diesen Namen bereits. Namen müssen innerhalb der Org eindeutig sein.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "Was macht dieser Agent? (optional)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Gleichzeitige Tool-Aufrufe pro Nachricht. Standard: 10.", + "maxToolUseConcurrencyDesc": "Gleichzeitige Tool-Aufrufe pro Nachricht. Standard: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "In einem temporären Git Worktree ausführen (isolierter Datei- und Shell-Zugriff).", + "subAgentWorktreeIsolationDesc": "In einem temporären Git Worktree ausführen (isolierter Datei- und Shell-Zugriff)", "addSubAgent": "Sub-Agent hinzufügen...", "noSubAgents": "Keine Sub-Agents konfiguriert." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "Auf welche Agents diese Regel angewendet wird (leer = alle)", "selectAgents": "Agents auswählen…", "ruleSource": "Quelle", - "ruleSourceDesc": "Wählen Sie User für alle Repos oder Repo für eine repo-spezifische Richtlinie.", + "ruleSourceDesc": "Wählen Sie User für alle Repos oder Repo für eine repo-spezifische Richtlinie", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Eine Benutzerpräferenz, die in allen Repos verfügbar ist.", + "ruleSourceUserDesc": "Eine Benutzerpräferenz, die in allen Repos verfügbar ist", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Eine Richtlinie, die für ein ausgewähltes Repo gespeichert wird.", + "ruleSourceRepoDesc": "Eine Richtlinie, die für ein ausgewähltes Repo gespeichert wird", "ruleRepo": "Repo", "ruleRepoDesc": "Das einzelne Repo, für das diese Richtlinie gilt", "selectRepo": "Repo auswählen…", "ruleSourcePersonal": "Persönlich", - "ruleSourcePersonalDesc": "Gespeichert in ~/.orgii/personal/rules/. Nur OS-Agent-/Channel-Sessions.", + "ruleSourcePersonalDesc": "Gespeichert in ~/.orgii/personal/rules/. Nur OS-Agent-/Channel-Sessions", "findSkills": { "title": "Skills suchen", "placeholder": "Skills suchen...", "installs": "Installs", "emptyTitle": "Skills suchen", - "emptySubtitle": "Gib mindestens 2 Zeichen ein und drücke Enter, um Skills zu finden.", + "emptySubtitle": "Gib mindestens 2 Zeichen ein und drücke Enter, um Skills zu finden", "noResults": "Keine Skills gefunden", - "noResultsDesc": "Versuche einen anderen Suchbegriff." + "noResultsDesc": "Versuche einen anderen Suchbegriff" }, "importAgentTitle": "Agents aus anderen Apps importieren", "importAgentColumn": "Agent", "importedItemAgents": "Agents", "emptySelectionTitle": "Wählen Sie ein Mitglied oder ein Agent-Team aus", - "emptySelectionSubtitle": "Wählen Sie in der Seitenleiste einen Agent oder ein Agent-Team aus, um ihn anzuzeigen und zu konfigurieren.", + "emptySelectionSubtitle": "Wählen Sie in der Seitenleiste einen Agent oder ein Agent-Team aus, um ihn anzuzeigen und zu konfigurieren", "applicableWorkspace": "Anwendbarer Workspace", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "CLI-Konfigurationsumschalter", "modeLabel": "Modus", - "modeDesc": "Standard stellt die eigene Konfiguration der CLI wieder her. ORG2-verwaltet schreibt eine gesicherte Proxy-Konfiguration.", + "modeDesc": "Standard stellt die eigene Konfiguration der CLI wieder her. ORG2-verwaltet schreibt eine gesicherte Proxy-Konfiguration", "modeDefault": "Standard", "modeOrgii": "ORG2-verwaltet", "conflict": "Externe Änderung", "conflictTitle": "Konflikt", - "conflictDesc": "Die aktive CLI-Konfiguration wurde geändert, nachdem ORG2 sie geschrieben hat.", + "conflictDesc": "Die aktive CLI-Konfiguration wurde geändert, nachdem ORG2 sie geschrieben hat", "proxyStatus": "Proxy", "proxyDefault": "Standardmodus", "proxyReady": "Proxy bereit", "proxyNotReady": "Proxy nicht bereit", "keyLabel": "Key", - "keyDesc": "Es werden nur API Keys angezeigt, die mit dieser CLI und dem verwalteten Proxy kompatibel sind.", + "keyDesc": "Es werden nur API Keys angezeigt, die mit dieser CLI und dem verwalteten Proxy kompatibel sind", "selectKey": "Key auswählen", "modelLabel": "Modell", "selectModel": "Modell auswählen", @@ -1356,7 +1356,7 @@ "forceRestore": "Wiederherstellen erzwingen", "applySuccess": "ORG2-verwaltete Konfiguration angewendet", "restoreSuccess": "Standardkonfiguration wiederhergestellt", - "proxyLifecycleDesc": "Lass ORG2 in diesem Modus laufen. Beim Schließen des Fensters bleibt der Proxy in der Menüleiste aktiv; beim Beenden von ORG2 wird sicher der Standard wiederhergestellt, sofern die Konfiguration nicht extern geändert wurde." + "proxyLifecycleDesc": "Lass ORG2 in diesem Modus laufen. Beim Schließen des Fensters bleibt der Proxy in der Menüleiste aktiv; beim Beenden von ORG2 wird sicher der Standard wiederhergestellt, sofern die Konfiguration nicht extern geändert wurde" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Gesamtzeit: {{value}}s" }, "title": "Lokaler Housekeeper", - "description": "Das lokale MiniCPM übernimmt Prompt-Verfeinerung, kurze Schritt-Erklärungen und leichtgewichtige UI-Steuerung. Coding-Aufgaben und komplexe ADE-Einrichtung verwenden weiterhin das Haupt-Agent-Modell.", + "description": "Das lokale MiniCPM übernimmt Prompt-Verfeinerung, kurze Schritt-Erklärungen und leichtgewichtige UI-Steuerung. Coding-Aufgaben und komplexe ADE-Einrichtung verwenden weiterhin das Haupt-Agent-Modell", "autoAccount": "MiniCPM-vLLM-Konto automatisch auswählen", "tiles": { "model": "Modell", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Housekeeper aktivieren", - "description": "Wenn deaktiviert, verwenden Prompt-Verfeinerung, Schritt-Erklärungen und leichtgewichtige UI-Steuerung kein MiniCPM." + "description": "Wenn deaktiviert, verwenden Prompt-Verfeinerung, Schritt-Erklärungen und leichtgewichtige UI-Steuerung kein MiniCPM" }, "account": { "title": "vLLM-MiniCPM-Konto", - "description": "Verwendet ein vorhandenes vllm_api-Konto aus dem Key Vault; es wird kein separater Zugangsdatenspeicher angelegt." + "description": "Verwendet ein vorhandenes vllm_api-Konto aus dem Key Vault; es wird kein separater Zugangsdatenspeicher angelegt" }, "model": { "title": "Modell-ID", - "description": "Docker vLLM MiniCPM5-1B verwendet standardmäßig openbmb/MiniCPM5-1B." + "description": "Docker vLLM MiniCPM5-1B verwendet standardmäßig openbmb/MiniCPM5-1B" }, "context": { "title": "Sicheres Kontextbudget", - "description": "Verwendet auf 4-GB-GPUs ein konservatives Budget von 10000 Tokens, statt dem theoretischen 32k-Limit zu vertrauen." + "description": "Verwendet auf 4-GB-GPUs ein konservatives Budget von 10000 Tokens, statt dem theoretischen 32k-Limit zu vertrauen" } }, "features": { "promptPolish": { "title": "Prompt-Verfeinerung", - "description": "Verfeinert die Eingabe manuell, bevor sie an das stärkere Coding-Modell gesendet wird." + "description": "Verfeinert die Eingabe manuell, bevor sie an das stärkere Coding-Modell gesendet wird" }, "stepExplain": { "title": "Erklärungen zu Agent-Schritten", - "description": "Erzeugt ein bis zwei kurze chinesische Erklärungen für Schritte der Session-Wiedergabe." + "description": "Erzeugt ein bis zwei kurze chinesische Erklärungen für Schritte der Session-Wiedergabe" }, "uiControl": { "title": "Leichtgewichtige ADE/UI-Steuerung", - "description": "MiniCPM darf Anfragen nur in eine strikte lokale Aktions-Whitelist einordnen." + "description": "MiniCPM darf Anfragen nur in eine strikte lokale Aktions-Whitelist einordnen" }, "contextCompact": { "title": "Automatische Kontextpflege", - "description": "Lässt MiniCPM eine isolierte fortlaufende Zusammenfassung des älteren Kontexts pflegen, während aktivierte Sitzungen inaktiv sind." + "description": "Lässt MiniCPM eine isolierte fortlaufende Zusammenfassung des älteren Kontexts pflegen, während aktivierte Sitzungen inaktiv sind" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Mit Organisation teilen", "share": "Teilen", "sharedToOrg": "Skill mit der Organisation geteilt", - "shareToOrgHint": "Mitglieder der Organisation erhalten den aktuellen Snapshot dieses Skills; teile ihn nach dem Bearbeiten erneut, um ein Update zu veröffentlichen.", + "shareToOrgHint": "Mitglieder der Organisation erhalten den aktuellen Snapshot dieses Skills; teile ihn nach dem Bearbeiten erneut, um ein Update zu veröffentlichen", "shareOrgPlaceholder": "Organisation" } } diff --git a/src/i18n/locales/de/navigation.json b/src/i18n/locales/de/navigation.json index f0e3440879..f96e1a6564 100644 --- a/src/i18n/locales/de/navigation.json +++ b/src/i18n/locales/de/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "Das Modell {{model}} des Besitzers ist mit deinen Schlüsseln nicht verfügbar — dieser Fork verwendet stattdessen {{fallback}}.", "forkModelUnavailable": "Das Modell {{model}} des Besitzers ist mit deinen Schlüsseln nicht verfügbar — wähle ein Modell, bevor du diesen Fork ausführst.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Abbrechen", "deleteRoleOk": "Löschen", "deleteRoleTitle": "Rolle löschen?", - "followUpSuggestionsDesc": "Schlägt nach einer abgeschlossenen Arbeitselement-Runde mögliche nächste Schritte vor. Dies verwendet eine zusätzliche Modellanfrage.", + "followUpSuggestionsDesc": "Schlägt nach einer abgeschlossenen Arbeitselement-Runde mögliche nächste Schritte vor. Dies verwendet eine zusätzliche Modellanfrage", "followUpSuggestionsLabel": "Folgevorschläge des Agents", - "goalMaxTurnsDesc": "Arbeitet nach dem normalen Stopp des Agents bis zu N zusätzliche Runden an meiner letzten Anfrage weiter (0 = aus).", + "goalMaxTurnsDesc": "Arbeitet nach dem normalen Stopp des Agents bis zu N zusätzliche Runden an meiner letzten Anfrage weiter (0 = aus)", "goalMaxTurnsLabel": "Budget für Zielfortsetzung", "guidanceLabel": "Agent-Anleitung", "guidancePlaceholder": "Wie soll der Agent sein Verhalten anpassen, wenn diese Rolle aktiv ist?", - "modeSwitchAutoPlanDesc": "Wechselt ausstehende Vorschläge für den Plan-Modus automatisch, wenn ihr Bestätigungs-Timer abläuft.", + "modeSwitchAutoPlanDesc": "Wechselt ausstehende Vorschläge für den Plan-Modus automatisch, wenn ihr Bestätigungs-Timer abläuft", "modeSwitchAutoPlanLabel": "Automatischer Wechsel in den Plan-Modus", "newRoleDefaultLabel": "Eigene Rolle", - "pageDescription": "Lege fest, welche Rolle du gerade spielst. Der Agent liest die Anleitung der aktiven Rolle und passt sein Verhalten entsprechend an — zum Beispiel stellt er weniger Rückfragen, wenn du konzentriert arbeitest, oder bündelt Zusammenfassungen, wenn du abwesend bist.", + "pageDescription": "Lege fest, welche Rolle du gerade spielst. Der Agent liest die Anleitung der aktiven Rolle und passt sein Verhalten entsprechend an — zum Beispiel stellt er weniger Rückfragen, wenn du konzentriert arbeitest, oder bündelt Zusammenfassungen, wenn du abwesend bist", "pageTitle": "Meine Rollen", - "planAutoApproveDesc": "Genehmigt ausstehende Pläne automatisch nach N Sekunden (0 = auf mich warten).", + "planAutoApproveDesc": "Genehmigt ausstehende Pläne automatisch nach N Sekunden (0 = auf mich warten)", "planAutoApproveLabel": "Automatische Plan-Genehmigung", - "questionAutoSkipDesc": "Überspringt ausstehende Agent-Fragen automatisch nach N Sekunden (0 = auf mich warten).", + "questionAutoSkipDesc": "Überspringt ausstehende Agent-Fragen automatisch nach N Sekunden (0 = auf mich warten)", "questionAutoSkipLabel": "Fragen automatisch überspringen", "roleNameLabel": "Name", "roleNamePlaceholder": "Rollenname", "stanceAutonomous": "Autonom — nie auf mich warten", "stanceDeferAndBatch": "Aufschieben & bündeln — erst arbeiten, später fragen", - "stanceDesc": "Wie der Agent mit blockierenden Entscheidungen umgeht, während diese Rolle aktiv ist.", + "stanceDesc": "Wie der Agent mit blockierenden Entscheidungen umgeht, während diese Rolle aktiv ist", "stanceInteractive": "Interaktiv — jederzeit nachfragen", "stanceLabel": "Verhaltenshaltung" }, diff --git a/src/i18n/locales/de/onboarding.json b/src/i18n/locales/de/onboarding.json index bfafd77ae4..0c9849596a 100644 --- a/src/i18n/locales/de/onboarding.json +++ b/src/i18n/locales/de/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Allgemeine Layout-Tour", - "description": "Lerne Chat-Panel, Runtime, Stationsmodus-Umschalter und Dock kennen.", + "description": "Lerne Chat-Panel, Runtime, Stationsmodus-Umschalter und Dock kennen", "duration": "1 Minute", "steps": { "chat-panel": { "title": "Chat-Panel", - "body": "Hier führen Benutzer Gespräche mit Agenten, überprüfen Aktivitäten und senden Folgeanweisungen." + "body": "Hier führen Benutzer Gespräche mit Agenten, überprüfen Aktivitäten und senden Folgeanweisungen" }, "runtime": { "title": "Laufzeit", - "body": "Hier siehst du deine Nutzung und den Laufzeitstatus. In einem Arbeitsbereich kannst du außerdem den Synchronisierungsstatus der Mitglieder prüfen und ihre Codex-, Claude- und Cursor-Nutzung öffnen." + "body": "Hier siehst du deine Nutzung und den Laufzeitstatus. In einem Arbeitsbereich kannst du außerdem den Synchronisierungsstatus der Mitglieder prüfen und ihre Codex-, Claude- und Cursor-Nutzung öffnen" }, "station-mode-pill": { "title": "Wechseln Sie die Station Modi", - "body": "Verwenden Sie dieses Tablet, um den Sendermodus zu wechseln. Desktop bedeutet „Meine Station“, Ihr Arbeitsplatz. Infinity bedeutet Agent Station, die Agentenaktivitätsansicht." + "body": "Verwenden Sie dieses Tablet, um den Sendermodus zu wechseln. Desktop bedeutet „Meine Station“, Ihr Arbeitsplatz. Infinity bedeutet Agent Station, die Agentenaktivitätsansicht" }, "dock": { "title": "Agent Station-Dock", - "body": "Das Dock wechselt zwischen Apps innerhalb der Station. Die Tour deaktiviert vorübergehend das automatische Ausblenden, sodass diese Steuerelemente sichtbar bleiben." + "body": "Das Dock wechselt zwischen Apps innerhalb der Station. Die Tour deaktiviert vorübergehend das automatische Ausblenden, sodass diese Steuerelemente sichtbar bleiben" } } }, "codeEditor": { "title": "Code-Editor-Tour", - "description": "Lerne Tabs, Editor-Arbeitsbereich, Quellcodeverwaltung und Git-Verlauf kennen.", + "description": "Lerne Tabs, Editor-Arbeitsbereich, Quellcodeverwaltung und Git-Verlauf kennen", "duration": "2 Minuten", "steps": { "tabs": { "title": "Code-Editor-Registerkarten", - "body": "Tabs sammeln die Dateien, Unterschiede, Terminals, Quellcodeverwaltungsansichten und Dashboards, die Sie während der Arbeit öffnen im Repo." + "body": "Tabs sammeln die Dateien, Unterschiede, Terminals, Quellcodeverwaltungsansichten und Dashboards, die Sie während der Arbeit öffnen im Repo" }, "editor-surface": { "title": "Editor-Arbeitsbereich", - "body": "Dies ist die Hauptoberfläche des Code-Editors. Öffnen Sie hier Dateien, überprüfen Sie Unterschiede, führen Sie Terminals aus und überprüfen Sie generierte Änderungen." + "body": "Dies ist die Hauptoberfläche des Code-Editors. Öffnen Sie hier Dateien, überprüfen Sie Unterschiede, führen Sie Terminals aus und überprüfen Sie generierte Änderungen" }, "create-tabs": { "title": "Neue Registerkarten erstellen", - "body": "Verwenden Sie das Plus-Menü in „Alle Registerkarten“, um Terminals, Browser-Registerkarten, Dateien, Dashboards und Repo-Dienstprogramme zu erstellen." + "body": "Verwenden Sie das Plus-Menü in „Alle Registerkarten“, um Terminals, Browser-Registerkarten, Dateien, Dashboards und Repo-Dienstprogramme zu erstellen" }, "source-control": { "title": "Git-Änderungen", - "body": "Open Source Control, um geänderte Dateien zu überprüfen, Arbeit bereitzustellen oder aufzuheben, festzuschreiben, zu ziehen, zu pushen, abzurufen und Mit der Fernbedienung synchronisieren." + "body": "Open Source Control, um geänderte Dateien zu überprüfen, Arbeit bereitzustellen oder aufzuheben, festzuschreiben, zu ziehen, zu pushen, abzurufen und Mit der Fernbedienung synchronisieren" }, "git-history": { "title": "Git-Verlauf", - "body": "Git-Verlauf schaltet die Quellcodeverwaltung in den Commit-Verlaufsmodus, sodass Sie frühere Commits und damit verbundene Änderungen überprüfen können." + "body": "Git-Verlauf schaltet die Quellcodeverwaltung in den Commit-Verlaufsmodus, sodass Sie frühere Commits und damit verbundene Änderungen überprüfen können" } } } @@ -68,6 +68,6 @@ "getStarted": "Erste Schritte", "newFeatures": "Neue Funktionen", "branchesTitle": "Repository-Branches", - "branchesDescription": "Wechsle Repository-Branches direkt in Spotlight." + "branchesDescription": "Wechsle Repository-Branches direkt in Spotlight" } } diff --git a/src/i18n/locales/de/projects.json b/src/i18n/locales/de/projects.json index ae315b3556..7fc8a956b5 100644 --- a/src/i18n/locales/de/projects.json +++ b/src/i18n/locales/de/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "GitHub-Verbindungen werden geladen...", "noConnectionTitle": "Keine GitHub-Verbindung gefunden", - "noConnectionDescription": "Fügen Sie zuerst unter Integrations eine GitHub-Verbindung hinzu und kehren Sie dann hierher zurück, um GitHub Issues zu importieren.", + "noConnectionDescription": "Fügen Sie zuerst unter Integrations eine GitHub-Verbindung hinzu und kehren Sie dann hierher zurück, um GitHub Issues zu importieren", "linkedRepoHint": "Dieses Project wird auch mit dem aktuellen Workspace repo verknüpft: {{repoName}}", "errors": { "invalidRepo": "Verwenden Sie owner/repo oder eine GitHub-Repository-URL." @@ -80,7 +80,7 @@ "importLinearOrgs": "Linear-Arbeitsbereiche importieren", "gitFolderPath": "Git-Ordnerpfad (optional)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Verbinden Sie diesen Arbeitsbereich mit einem vorhandenen Git-Arbeitsbaum für die Ordnersynchronisierung.", + "gitFolderPathHint": "Verbinden Sie diesen Arbeitsbereich mit einem vorhandenen Git-Arbeitsbaum für die Ordnersynchronisierung", "gitFolderBadge": "Git", "gitFolderSynced": "Mit einem Git-Ordner synchronisiert", "pendingSync": "Synchronisierung ausstehend", @@ -123,7 +123,7 @@ "addTeams": "Teams hinzufügen", "addLabels": "Labels hinzufügen", "addRepos": "Repos verknüpfen", - "noReposHint": "Keine Repos verfügbar. Fügen Sie zuerst ein Repo zum Workspace hinzu.", + "noReposHint": "Keine Repos verfügbar. Fügen Sie zuerst ein Repo zum Workspace hinzu", "addDate": "Datum hinzufügen", "clearDate": "Datum löschen", "noStatus": "Kein Status", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "Keine Dateiänderungen", - "fileDiffCleanHint": "Keine Dateiänderungen erkannt.", + "fileDiffCleanHint": "Keine Dateiänderungen erkannt", "costSummary": "Kostenübersicht", "totalCost": "Gesamt", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Work Items anzeigen", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Gilt für {{count}} ausgewählte Elemente." + "hint": "Gilt für {{count}} ausgewählte Elemente" }, "batchStatus": { "title": "Status setzen" @@ -457,7 +457,7 @@ "save": "Aktuelle Ansicht speichern", "saveTitle": "Ansicht speichern", "namePlaceholder": "Name der Ansicht", - "saveHint": "Speichert die aktuellen Filter; das Layout wird beim ersten Öffnen übernommen.", + "saveHint": "Speichert die aktuellen Filter; das Layout wird beim ersten Öffnen übernommen", "delete": "Ansicht löschen" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Eigenschaft setzen", - "hint": "Wendet einen Eigenschaftswert auf {{count}} ausgewählte Elemente an. Lass den Wert leer, um ihn zu löschen.", + "hint": "Wendet einen Eigenschaftswert auf {{count}} ausgewählte Elemente an. Lass den Wert leer, um ihn zu löschen", "propertyPlaceholder": "Eigenschaft", "valuePlaceholder": "Wert", "applied": "{{count}} Elemente aktualisiert" }, "revisionConflict": { "title": "Bearbeitungskonflikt auflösen", - "description": "{{field}} wurde nach Revision {{expected}} geändert. Vergleiche deine Bearbeitung mit Revision {{actual}} und wähle dann, welche Version behalten werden soll.", + "description": "{{field}} wurde nach Revision {{expected}} geändert. Vergleiche deine Bearbeitung mit Revision {{actual}} und wähle dann, welche Version behalten werden soll", "mine": "Meine Version", "latest": "Neueste Version", "useLatest": "Neueste verwenden", @@ -573,7 +573,7 @@ "sidebarSync": "Synchronisierung", "sync": { "title": "Externe Synchronisierung", - "description": "Spiegele die Arbeitselemente dieser Project in ein externes System wie Linear oder GitHub.", + "description": "Spiegele die Arbeitselemente dieser Project in ein externes System wie Linear oder GitHub", "adapterPicker": { "title": "Adapter", "notAttached": "Nicht verbunden", @@ -582,7 +582,7 @@ "changeWarning": "Trennen Sie den aktuellen Adapter, bevor Sie einen neuen verbinden.", "detachProjectMenuLabel": "GitHub-Verknüpfung aufheben", "detachProjectTitle": "GitHub-Verknüpfung mit {{project}} aufheben?", - "detachProjectDescription": "Die Synchronisierung mit GitHub Issues wird beendet. Das lokale Projekt und die importierten Arbeitselemente bleiben in ORG2 erhalten.", + "detachProjectDescription": "Die Synchronisierung mit GitHub Issues wird beendet. Das lokale Projekt und die importierten Arbeitselemente bleiben in ORG2 erhalten", "detachProjectAction": "GitHub-Verknüpfung mit {{project}} aufheben", "detachProjectSuccess": "GitHub-Verknüpfung mit {{project}} aufgehoben" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Webhook-Status wird geladen…", - "notInstalledDescription": "Installieren Sie ein Webhook-Geheimnis, damit dieser Anbieter Änderungen direkt sendet, statt auf den nächsten Abruf zu warten.", + "notInstalledDescription": "Installieren Sie ein Webhook-Geheimnis, damit dieser Anbieter Änderungen direkt sendet, statt auf den nächsten Abruf zu warten", "install": "Webhook installieren", - "installedDescription": "Fügen Sie die URL in die Webhook-Konfiguration Ihres Anbieters ein und verwenden Sie das Geheimnis unten zum Signieren der Zustellungen.", + "installedDescription": "Fügen Sie die URL in die Webhook-Konfiguration Ihres Anbieters ein und verwenden Sie das Geheimnis unten zum Signieren der Zustellungen", "indicatorFresh": "Kürzliche Zustellung", "indicatorStale": "Keine kürzliche Zustellung", "lastDeliveryNever": "Noch keine Zustellungen", @@ -627,7 +627,7 @@ "copyUrl": "URL kopieren", "rotate": "Geheimnis rotieren", "secretTitle": "Kopieren Sie dieses Geheimnis jetzt — es wird nicht erneut angezeigt", - "secretDescription": "Fügen Sie dieses Signatur-Geheimnis in die Webhook-Konfiguration Ihres Anbieters ein. Nach dem Schließen dieses Panels speichern wir den Klartext nicht.", + "secretDescription": "Fügen Sie dieses Signatur-Geheimnis in die Webhook-Konfiguration Ihres Anbieters ein. Nach dem Schließen dieses Panels speichern wir den Klartext nicht", "copySecret": "Geheimnis kopieren", "dismissSecret": "Ich habe es gespeichert", "secretCopied": "Geheimnis in die Zwischenablage kopiert", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Status", "statusesBuiltin": "Integrierte Status", - "statusesBuiltinDescription": "Die Standard-Workflow-Kategorien. Immer verfügbar.", + "statusesBuiltinDescription": "Die Standard-Workflow-Kategorien. Immer verfügbar", "statusesCustom": "Benutzerdefinierte Status", - "statusesCustomDescription": "Benannte Aliasse für eine integrierte Kategorie. Filter, Zähler und Boards behandeln sie wie ihre Kategorie.", + "statusesCustomDescription": "Benannte Aliasse für eine integrierte Kategorie. Filter, Zähler und Boards behandeln sie wie ihre Kategorie", "statusNamePlaceholder": "Statusname", "noCustomStatuses": "Noch keine benutzerdefinierten Status.", "statusArchive": "Status archivieren", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/de/sessions.json b/src/i18n/locales/de/sessions.json index f9ca729c16..9563a6eedb 100644 --- a/src/i18n/locales/de/sessions.json +++ b/src/i18n/locales/de/sessions.json @@ -896,10 +896,10 @@ "exportJson": "JSON exportieren", "importAction": "Session importieren", "exportDescription": "Exportiert die aktive Session als portablen JSON-Snapshot", - "importDescription": "Importiert einen Session-JSON-Snapshot in die Seitenleiste.", + "importDescription": "Importiert einen Session-JSON-Snapshot in die Seitenleiste", "jsonSnapshotNote": "Importierte Sessions sind schreibgeschützte Snapshots und behalten den ursprünglichen Ereignisverlauf", "chooseJson": "JSON-Datei auswählen", - "chooseJsonHint": "Wähle eine .orgii-session.json-Exportdatei aus.", + "chooseJsonHint": "Wähle eine .orgii-session.json-Exportdatei aus", "loadingPreview": "Session-Ereignisse werden gezählt…", "noActiveSession": "Keine aktive Session ausgewählt.", "importedName": "Importierte Session: {{name}}", @@ -1908,7 +1908,7 @@ "start": "Starten", "missingGit": { "title": "Git fehlt", - "body": "Git ist nicht installiert oder konnte nicht gefunden werden. Bitte ADE Manager oder SDE Agent bitten, Git auf diesem Gerät zu installieren, und ORG2 anschließend neu starten." + "body": "Git ist nicht installiert oder konnte nicht gefunden werden. Bitte ADE Manager oder SDE Agent bitten, Git auf diesem Gerät zu installieren, und ORG2 anschließend neu starten" }, "model": "Modell", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "Archiviert, aber {{count}} Laufzeit konnte nicht freigegeben werden. Löschen bleibt gesperrt.", "archiveTeardownQuiesced": "Archiviert und vollständig beendet. Dauerhaftes Löschen ist jetzt möglich.", "dangerZone": "Gefahrenbereich", - "deleteDescription": "Dieses Team mit allen Sitzungen und Verläufen dauerhaft löschen.", + "deleteDescription": "Dieses Team mit allen Sitzungen und Verläufen dauerhaft löschen", "deleteTeam": "Team löschen", "deleteTitle": "Dieses Team dauerhaft löschen?", "deleteWarning": "Alle Teamsitzungen und Verläufe werden dauerhaft gelöscht. Dies kann nicht rückgängig gemacht werden.", diff --git a/src/i18n/locales/de/settings.json b/src/i18n/locales/de/settings.json index 27bd6f2573..414ddd33fc 100644 --- a/src/i18n/locales/de/settings.json +++ b/src/i18n/locales/de/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "ORG2 während der Desktop-Steuerung ausblenden", - "hideBeforeActionHelper": "Blendet das ORG2-Hauptfenster aus, während Peekaboo arbeitet, und zeigt die Wingman-Leiste mit schwebender Beschriftung, damit der Agent den Fokus nicht verwalten muss.", + "hideBeforeActionHelper": "Blendet das ORG2-Hauptfenster aus, während Peekaboo arbeitet, und zeigt die Wingman-Leiste mit schwebender Beschriftung, damit der Agent den Fokus nicht verwalten muss", "antiDetection": "HID-Anti-Automatisierungs-Härtung", - "antiDetectionHelper": "Lässt Peekaboo echte CGEvent-(HID-)Eingaben für Klicks und Tastenanschläge senden statt reiner Accessibility-Aktionen, sodass Apps mit Automatisierungserkennung (z. B. WeChat) die Desktop-Steuerung seltener blockieren.", + "antiDetectionHelper": "Lässt Peekaboo echte CGEvent-(HID-)Eingaben für Klicks und Tastenanschläge senden statt reiner Accessibility-Aktionen, sodass Apps mit Automatisierungserkennung (z. B. WeChat) die Desktop-Steuerung seltener blockieren", "humanInputProfile": "Menschliche Tipp-Kadenz", - "humanInputProfileHelper": "Wendet ein menschenähnliches Timing-Profil auf synthetisierte Tastenanschläge an. Deaktivieren, um mit maximaler Geschwindigkeit zu tippen.", + "humanInputProfileHelper": "Wendet ein menschenähnliches Timing-Profil auf synthetisierte Tastenanschläge an. Deaktivieren, um mit maximaler Geschwindigkeit zu tippen", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Fehlt: {{bins}}", "skillMissingEnv": "Fehlende Umgebungsvariablen: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Pull-Strategie", "pullStrategyDesc": "Wie git pull Änderungen von remote bei der Synchronisierung integriert", - "pullStrategyHint": "Rebase (Standard): Replays Ihre commits auf remote. Erstellt linear history.\n\nMerge: Erstellt einen merge commit, wenn branches diverged sind. Bewahrt die vollständige history.\n\nFast-forward only: Erlaubt pull nur, wenn kein merge nötig ist. Lehnt ab, wenn branches diverged sind.", + "pullStrategyHint": "Rebase (Standard): Replays Ihre commits auf remote. Erstellt linear history.\n\nMerge: Erstellt einen merge commit, wenn branches diverged sind. Bewahrt die vollständige history.\n\nFast-forward only: Erlaubt pull nur, wenn kein merge nötig ist. Lehnt ab, wenn branches diverged sind", "strategyMerge": "Merge", "strategyRebase": "Rebase (Standard)", "strategyFfOnly": "Nur Fast-forward (strikt)", @@ -602,7 +602,7 @@ "checkFailed": "Update-Prüfung fehlgeschlagen", "checking": "Updates werden gesucht…", "officialInstalled": "Offizielle App installiert", - "officialInstalledDesc": "{{version}} wurde unter {{path}} installiert. Dieser lokale Build läuft unverändert weiter.", + "officialInstalledDesc": "{{version}} wurde unter {{path}} installiert. Dieser lokale Build läuft unverändert weiter", "downloadFailed": "Update-Download fehlgeschlagen", "retryNow": "Jetzt erneut versuchen", "downloadTimeout": "Zeitüberschreitung beim Download. Prüfe Netzwerk oder Proxy und versuche es erneut.", @@ -738,7 +738,7 @@ "tableVersion": "Version", "tableStatus": "Status", "installSection": "Installieren", - "installHintNote": "Vorgeschlagener Installationsbefehl für deine Plattform. Die meisten Systemabhängigkeiten benötigen Administratorrechte, daher führen wir sie nicht automatisch aus — kopiere ihn in dein terminal." + "installHintNote": "Vorgeschlagener Installationsbefehl für deine Plattform. Die meisten Systemabhängigkeiten benötigen Administratorrechte, daher führen wir sie nicht automatisch aus — kopiere ihn in dein terminal" }, "storage": { "dataDirectory": "Datenverzeichnis", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Evolution für {{agentName}} aktivieren", "noAgentsTitle": "Keine Agents verfügbar", - "noAgentsSubtitle": "Erstellen oder importieren Sie einen Agent, um Evolution zu konfigurieren." + "noAgentsSubtitle": "Erstellen oder importieren Sie einen Agent, um Evolution zu konfigurieren" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/en/common.json b/src/i18n/locales/en/common.json index f3c6dd83ab..fcf4a3ec43 100644 --- a/src/i18n/locales/en/common.json +++ b/src/i18n/locales/en/common.json @@ -924,7 +924,7 @@ "createTokenButton": "Create Token", "openGitSettingsButton": "Open Settings", "configureInSettings": "Configure Git in Settings", - "configureInSettingsDesc": "Add GitHub App access, save a token, or scan local credentials in Settings → Connections, then retry this Git operation." + "configureInSettingsDesc": "Add GitHub App access, save a token, or scan local credentials in Settings → Connections, then retry this Git operation" }, "actions": { "publish": "Publish", @@ -1169,7 +1169,7 @@ }, "authRequired": { "title": "Connect GitHub", - "description": "Go to Settings → Connections to connect your GitHub account." + "description": "Go to Settings → Connections to connect your GitHub account" }, "flow": { "wantsToMergeCommitsInto_one": "wants to merge {{count}} commit into", @@ -1314,10 +1314,10 @@ }, "authRequired": { "title": "Connect GitHub", - "description": "Go to Settings → Connections to connect your GitHub account." + "description": "Go to Settings → Connections to connect your GitHub account" }, "reAuthRequired": "GitHub Authorization Required", - "reAuthDescription": "Your GitHub token has expired. Go to Settings → Connections to reconnect.", + "reAuthDescription": "Your GitHub token has expired. Go to Settings → Connections to reconnect", "goToSettings": "Go to Settings", "timelineErrorTitle": "GitHub activity unavailable", "tabs": { @@ -2203,7 +2203,7 @@ }, "quitConfirmation": { "title": "Quit ORG2?", - "subtitle": "Any running sessions will keep their current state. You can reopen ORG2 later.", + "subtitle": "Any running sessions will keep their current state. You can reopen ORG2 later", "cancel": "Cancel", "confirm": "Quit" }, @@ -2215,7 +2215,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari keeps its cookies in a folder macOS protects. Allow ORG2 under Full Disk Access in System Settings, then check again.", + "explain": "Safari keeps its cookies in a folder macOS protects. Allow ORG2 under Full Disk Access in System Settings, then check again", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2240,7 +2240,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2249,7 +2249,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/en/integrations.json b/src/i18n/locales/en/integrations.json index a8fb766da4..84c9524207 100644 --- a/src/i18n/locales/en/integrations.json +++ b/src/i18n/locales/en/integrations.json @@ -18,7 +18,7 @@ "removeLocal": "Remove Local", "unlist": "Unlist", "confirmRemoveTitle": "Remove \"{{name}}\"?", - "confirmRemoveMessage": "This will remove the locally saved key. This action cannot be undone.", + "confirmRemoveMessage": "This will remove the locally saved key. This action cannot be undone", "confirmRemoveActiveSessions_one": "{{count}} active session still uses this account and will fail on its next turn:", "confirmRemoveActiveSessions_other": "{{count}} active sessions still use this account and will fail on their next turn:", "toasts": { @@ -71,10 +71,10 @@ "noCliAgentSupport": "No CLI agent support for this provider" }, "customModels": { - "manualSetupHint": "Add the exact model ID your endpoint accepts and an optional display name. Model discovery is optional; enabling a model does not verify endpoint compatibility.", + "manualSetupHint": "Add the exact model ID your endpoint accepts and an optional display name. Model discovery is optional; enabling a model does not verify endpoint compatibility", "modelNamePlaceholder": "Enter model id...", "displayNamePlaceholder": "Optional label", - "emptyHint": "No custom models added yet.", + "emptyHint": "No custom models added yet", "addModel": "Add Model", "testRequiresEndpoint": "Enter an endpoint and API key to test this model", "invalidModelId": "Model IDs must be 1–256 bytes without spaces or control characters.", @@ -148,7 +148,7 @@ "keysVerified": "Keys verified", "failedMessage": "Your API key and session token don't appear to belong to the same Cursor account.", "failedError": "Error: {{error}}", - "failedHint": "Please create a new listing with matching keys from the same Cursor account.", + "failedHint": "Please create a new listing with matching keys from the same Cursor account", "listingRejected": "Listing Rejected", "rejectedByAdmin": "This listing was rejected by an administrator." }, @@ -270,7 +270,7 @@ "opensEmbeddedBrowser": "Use the internal browser to connect your Cursor account.", "loggedIn": "Logged in", "loginStep": "Login", - "signInToCursorHint": "Sign in to your Cursor account. This window closes automatically after login.", + "signInToCursorHint": "Sign in to your Cursor account. This window closes automatically after login", "loadingText": "Loading...", "failedToLoadBrowser": "Failed to load browser", "copilotCreatePat": "Create GitHub Personal Access Token", @@ -305,7 +305,7 @@ "cursorLoginBrowserTitle": "Cursor sign-in", "modelCount": "{{count}} models", "cursorLoginReadyTitle": "Cursor account connected", - "cursorLoginReadyDesc": "Generate and paste a Cursor API key below. Cursor agent will not work without it.", + "cursorLoginReadyDesc": "Generate and paste a Cursor API key below. Cursor agent will not work without it", "cursorApiKeyBrowserHint": "After sign-in, ORG2 opens Cursor's dashboard. Generate a User API Key there, then paste it below", "cursorApiKeyRecommendedTitle": "Cursor API key recommended", "cursorApiKeyRecommendedDesc": "You can continue without a Cursor API key if you only want to use Cursor with ORG2's Rust agents; just sign in with the internal browser or provide a session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "The Gateway routes inbound messages from every channel. Pick an API key + model it should use for semantic routing.", + "description": "The Gateway routes inbound messages from every channel. Pick an API key + model it should use for semantic routing", "statusReady": "Ready", "statusUnconfigured": "Not configured", "account": "API Key Account", @@ -581,7 +581,7 @@ "model": "Model", "modelPlaceholder": "Select a model", "groupPerUser": "Isolate group chat sessions per user", - "groupPerUserDesc": "Each participant in a group chat gets their own session context." + "groupPerUserDesc": "Each participant in a group chat gets their own session context" }, "emailProtocol": "Protocol", "matrixDeviceNamePlaceholder": "ORG2 Bot" @@ -781,13 +781,13 @@ "oauthDeviceDesc": "Open the verification URL and enter this code to authorize GitHub.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "Nothing detected", - "scanEmptyDesc": "No gh CLI tokens, credential helpers, or SSH keys were found. Pick another method above.", + "scanEmptyDesc": "No gh CLI tokens, credential helpers, or SSH keys were found. Pick another method above", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Detected credentials", - "scanResultsDesc": "Pick one to import. We validate tokens against GitHub before saving.", + "scanResultsDesc": "Pick one to import. We validate tokens against GitHub before saving", "scanSshKey": "SSH key — {{name}}", "scanning": "Scanning…", - "scanningDesc": "Looking for gh CLI tokens, credential helpers, and SSH keys on this machine.", + "scanningDesc": "Looking for gh CLI tokens, credential helpers, and SSH keys on this machine", "sshKeyPath": "SSH key path", "sshKeyPathDesc": "Absolute path to the private key (e.g. ~/.ssh/id_ed25519). The matching public key must already be registered on GitHub.", "scanSelectRequired": "Pick a detected credential to import.", @@ -821,9 +821,9 @@ "agentBrowserRestartPromptMessage": "Changing the Browser CLI provider requires restarting ORG2 before agents see the selected tool. Restart now?", "sidecarDownloadsSectionTitle": "Sidecar Downloads", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Download the Agent Browser binary for this platform into ~/.orgii/bin. ORG2 never downloads it during startup.", + "sidecarAgentBrowserDesc": "Download the Agent Browser binary for this platform into ~/.orgii/bin. ORG2 never downloads it during startup", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Download the macOS Peekaboo desktop automation binary into ~/.orgii/bin. Unsupported platforms stay disabled.", + "sidecarPeekabooDesc": "Download the macOS Peekaboo desktop automation binary into ~/.orgii/bin. Unsupported platforms stay disabled", "sidecarUnsupported": "Unsupported", "sidecarInstalled": "Installed", "sidecarNotInstalled": "Not installed", @@ -879,7 +879,7 @@ "connectMethodDesc": "Choose how to connect your GitHub account", "githubApp": "GitHub App", "detectFromSystem": "Detect from System", - "detectFromSystemDesc": "Use gh CLI, SSH keys, or Git credential helpers.", + "detectFromSystemDesc": "Use gh CLI, SSH keys, or Git credential helpers", "credentialsDetected": "Credentials detected", "detectedVia": "Detected via {{source}}", "sshKeyLabel": "SSH Key", @@ -899,7 +899,7 @@ "noCredentialsFound": "No GitHub credentials found", "noCredentialsHint": "Install the GitHub CLI (gh) or set up SSH keys to use local detection", "manuallyAddToken": "Manually Add Token", - "manualTokenDesc": "Paste a GitHub PAT for HTTPS Git operations.", + "manualTokenDesc": "Paste a GitHub PAT for HTTPS Git operations", "autoDetect": "Auto Detect", "autoDetectTokenSaved": "GitHub token saved", "autoDetectSshSwitched": "Remote switched to SSH", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Add {{name}} <{{email}}> to Git commits made from ORG2", "noTokenYet": "Need a token?", - "createTokenDesc": "Open GitHub and create a PAT with repo access.", + "createTokenDesc": "Open GitHub and create a PAT with repo access", "accountConnected": "GitHub account connected", "disconnectMsg": "Are you sure you want to disconnect? This will remove access to all repos from this account.", "disconnectTitle": "Disconnect GitHub Account", @@ -929,7 +929,7 @@ "connectRepoDesc": "Connect a GitHub account to access repos", "github": "GitHub", "signInWithGithub": "Sign in with GitHub", - "signInWithGithubDesc": "Authorize ORG2 via GitHub's device flow. No server hosting required.", + "signInWithGithubDesc": "Authorize ORG2 via GitHub's device flow. No server hosting required", "oauthWaiting": "Waiting for authorization", "oauthDeviceCodeDesc": "Open the URL below and enter this code", "oauthOpenGithub": "Open GitHub", @@ -990,7 +990,7 @@ "filePathPlaceholder": "e.g. scripts/validate.py", "removeFile": "Remove file", "editorNoDraftTitle": "No skill draft in progress", - "editorNoDraftDesc": "Start by clicking Create on the Skills page, or pick a skill to edit.", + "editorNoDraftDesc": "Start by clicking Create on the Skills page, or pick a skill to edit", "scopeWorkspace": "Repo-specific", "deleteConfirmTitle": "Delete skill \"​{{name}}\"?", "deleteConfirmMessage": "This will remove the skill and all its files. This action cannot be undone." @@ -999,7 +999,7 @@ "tab": "MCP", "searchPlaceholder": "Search MCP servers...", "noServers": "No MCP servers configured", - "noServersDesc": "Add an MCP server to extend agent capabilities with external tools.", + "noServersDesc": "Add an MCP server to extend agent capabilities with external tools", "addServer": "Add MCP Server", "editServer": "Edit MCP Server", "serverName": "Server Name", @@ -1157,7 +1157,7 @@ } }, "membersLabel": "Team Members", - "membersDesc": "Each row is a Member with an independent Writer grant and communication settings. Names must be unique; role is only a specialty hint.", + "membersDesc": "Each row is a Member with an independent Writer grant and communication settings. Names must be unique; role is only a specialty hint", "memberName": "Name", "memberNamePlaceholder": "Unique routing name (e.g. SDE-1)", "memberNameDuplicate": "Another member already uses this name. Names must be unique within the team.", @@ -1194,9 +1194,9 @@ "descriptionPlaceholder": "What does this agent do? (optional)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Concurrent tool calls per assistant message. Default: 10.", + "maxToolUseConcurrencyDesc": "Concurrent tool calls per assistant message. Default: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "Run in a temporary git worktree (isolated file and shell access).", + "subAgentWorktreeIsolationDesc": "Run in a temporary git worktree (isolated file and shell access)", "addSubAgent": "Add Sub-Agent...", "noSubAgents": "No sub-agents configured." }, @@ -1229,30 +1229,30 @@ "applicableAgentsDesc": "Which agents this rule applies to (leave empty for all)", "selectAgents": "Select agents…", "ruleSource": "Source", - "ruleSourceDesc": "Choose User for all repos or Repo for one repo-specific guideline.", + "ruleSourceDesc": "Choose User for all repos or Repo for one repo-specific guideline", "ruleSourceUser": "User", - "ruleSourceUserDesc": "A user preference available across repos.", + "ruleSourceUserDesc": "A user preference available across repos", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "A guideline stored for one selected repo.", + "ruleSourceRepoDesc": "A guideline stored for one selected repo", "ruleRepo": "Repo", "ruleRepoDesc": "The single repo this guideline applies to", "selectRepo": "Select repo…", "ruleSourcePersonal": "Personal", - "ruleSourcePersonalDesc": "Stored at ~/.orgii/personal/rules/. OS Agent / channel sessions only.", + "ruleSourcePersonalDesc": "Stored at ~/.orgii/personal/rules/. OS Agent / channel sessions only", "findSkills": { "title": "Search Skills", "placeholder": "Search Skills...", "installs": "Installs", "emptyTitle": "Search Skills", - "emptySubtitle": "Enter at least 2 characters, then press Enter to find Skills.", + "emptySubtitle": "Enter at least 2 characters, then press Enter to find Skills", "noResults": "No Skills found", - "noResultsDesc": "Try a different search term." + "noResultsDesc": "Try a different search term" }, "importAgentTitle": "Import agents from other apps", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "Select a member or an Agent Team", - "emptySelectionSubtitle": "Choose an Agent or Agent Team from the sidebar to view and configure it.", + "emptySelectionSubtitle": "Choose an Agent or Agent Team from the sidebar to view and configure it", "applicableWorkspace": "Applicable Workspace", "tableTabs": { "agents": "Agents", @@ -1281,18 +1281,18 @@ "cliManagedConfig": { "title": "CLI config switch", "modeLabel": "Mode", - "modeDesc": "Default restores the CLI's own config. ORG2 Managed writes a backed-up proxy config.", + "modeDesc": "Default restores the CLI's own config. ORG2 Managed writes a backed-up proxy config", "modeDefault": "Default", "modeOrgii": "ORG2 Managed", "conflict": "External change", "conflictTitle": "Conflict", - "conflictDesc": "The active CLI config changed after ORG2 wrote it.", + "conflictDesc": "The active CLI config changed after ORG2 wrote it", "proxyStatus": "Proxy", "proxyDefault": "Default mode", "proxyReady": "Proxy ready", "proxyNotReady": "Proxy not ready", "keyLabel": "Key", - "keyDesc": "Only API keys compatible with this CLI and managed proxy are shown.", + "keyDesc": "Only API keys compatible with this CLI and managed proxy are shown", "selectKey": "Select key", "modelLabel": "Model", "selectModel": "Select model", @@ -1305,12 +1305,12 @@ "forceRestore": "Force Restore", "applySuccess": "ORG2 managed config applied", "restoreSuccess": "Default config restored", - "proxyLifecycleDesc": "Keep ORG2 running while using this mode. Closing the window keeps the proxy in the tray; quitting ORG2 safely restores Default unless the config changed externally." + "proxyLifecycleDesc": "Keep ORG2 running while using this mode. Closing the window keeps the proxy in the tray; quitting ORG2 safely restores Default unless the config changed externally" }, "sessionProvenance": { "title": "Session Provenance", "capture": "Capture file interactions", - "description": "Records file reads and writes as metadata. Prompts, tool output, and file contents are not stored.", + "description": "Records file reads and writes as metadata. Prompts, tool output, and file contents are not stored", "installDrift": "The saved preference and installed hook differ. Toggle capture to repair the managed hook. Config: {{path}}", "copyPath": "Copy", "col": { @@ -1354,7 +1354,7 @@ "masterToggle": "Provenance hooks", "masterToggleDesc": "When off, all managed hooks are uninstalled and no signals are captured; per-platform choices are kept and restored on re-enable", "liveStatusToggle": "Live agent status", - "liveStatusToggleDesc": "Shows when running CLI agents are working or waiting. Off keeps provenance capture on.", + "liveStatusToggleDesc": "Shows when running CLI agents are working or waiting. Off keeps provenance capture on", "codexApproval": { "title": "Verify ORG2 hooks in Codex", "description": "Waiting for Codex to approve and execute the current ORG2 hooks.", @@ -1519,7 +1519,7 @@ }, "housekeeper": { "title": "Resident Housekeeper", - "description": "Local MiniCPM handles prompt polishing, short step explanations, and lightweight UI control. Coding tasks and complex ADE setup still use the main agent model.", + "description": "Local MiniCPM handles prompt polishing, short step explanations, and lightweight UI control. Coding tasks and complex ADE setup still use the main agent model", "addModel": "Add model", "autoAccount": "Auto-select MiniCPM vLLM account", "tiles": { @@ -1535,37 +1535,37 @@ "settings": { "enabled": { "title": "Enable housekeeper", - "description": "When disabled, prompt polishing, step explanations, and lightweight UI control will not use MiniCPM." + "description": "When disabled, prompt polishing, step explanations, and lightweight UI control will not use MiniCPM" }, "account": { "title": "vLLM MiniCPM account", - "description": "Reuses an existing KeyVault vllm_api account; no separate credential store is created." + "description": "Reuses an existing KeyVault vllm_api account; no separate credential store is created" }, "model": { "title": "Model ID", - "description": "Docker vLLM MiniCPM5-1B defaults to openbmb/MiniCPM5-1B." + "description": "Docker vLLM MiniCPM5-1B defaults to openbmb/MiniCPM5-1B" }, "context": { "title": "Safe context budget", - "description": "Use a conservative 10000 token budget on 4GB GPUs instead of trusting the theoretical 32k limit." + "description": "Use a conservative 10000 token budget on 4GB GPUs instead of trusting the theoretical 32k limit" } }, "features": { "promptPolish": { "title": "Prompt polishing", - "description": "Manually polish the input before sending it to the stronger coding model." + "description": "Manually polish the input before sending it to the stronger coding model" }, "stepExplain": { "title": "Agent step explanations", - "description": "Generate one or two short Chinese explanations for session replay steps." + "description": "Generate one or two short Chinese explanations for session replay steps" }, "uiControl": { "title": "Lightweight ADE/UI control", - "description": "MiniCPM may only classify requests into a strict local action whitelist." + "description": "MiniCPM may only classify requests into a strict local action whitelist" }, "contextCompact": { "title": "Automatic context maintenance", - "description": "Let MiniCPM maintain an isolated rolling summary of older context while enabled sessions are idle." + "description": "Let MiniCPM maintain an isolated rolling summary of older context while enabled sessions are idle" } }, "health": { @@ -1663,7 +1663,7 @@ "shareToOrg": "Share to organization", "share": "Share", "sharedToOrg": "Skill shared with the organization", - "shareToOrgHint": "Members of the organization receive this skill's current snapshot; share again after editing to publish an update.", + "shareToOrgHint": "Members of the organization receive this skill's current snapshot; share again after editing to publish an update", "shareOrgPlaceholder": "Organization" } } diff --git a/src/i18n/locales/en/mobileRemote.json b/src/i18n/locales/en/mobileRemote.json index 8cdfa614f2..20b46d8fb8 100644 --- a/src/i18n/locales/en/mobileRemote.json +++ b/src/i18n/locales/en/mobileRemote.json @@ -94,7 +94,7 @@ "stopConfirm": { "failed": "Could not stop the turn. It may still be running. Try again or check the desktop.", "title": "Stop current Agent turn?", - "body": "Sends a cancel command to the desktop. Whether running shell processes terminate depends on Agent policy.", + "body": "Sends a cancel command to the desktop. Whether running shell processes terminate depends on Agent policy", "cancel": "Cancel", "confirm": "Stop" }, diff --git a/src/i18n/locales/en/navigation.json b/src/i18n/locales/en/navigation.json index 600a019590..501d4ef28b 100644 --- a/src/i18n/locales/en/navigation.json +++ b/src/i18n/locales/en/navigation.json @@ -213,11 +213,11 @@ "forkModelFallback": "The owner's model {{model}} isn't available with your keys — this fork will use {{fallback}} instead.", "forkModelUnavailable": "The owner's model {{model}} isn't available with your keys — choose a model before running this fork.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -265,26 +265,26 @@ "deleteRoleCancel": "Cancel", "deleteRoleOk": "Delete", "deleteRoleTitle": "Delete role?", - "followUpSuggestionsDesc": "Suggest possible next steps after a completed Work Item turn. This uses an additional model request.", + "followUpSuggestionsDesc": "Suggest possible next steps after a completed Work Item turn. This uses an additional model request", "followUpSuggestionsLabel": "Agent follow-up suggestions", - "goalMaxTurnsDesc": "Keep working toward my last request for up to N extra turns after the agent would normally stop (0 = off).", + "goalMaxTurnsDesc": "Keep working toward my last request for up to N extra turns after the agent would normally stop (0 = off)", "goalMaxTurnsLabel": "Goal continuation budget", "guidanceLabel": "Agent guidance", "guidancePlaceholder": "How should the agent adapt its behavior when this role is active?", - "modeSwitchAutoPlanDesc": "Auto-switch pending Plan mode suggestions when their confirmation timer expires.", + "modeSwitchAutoPlanDesc": "Auto-switch pending Plan mode suggestions when their confirmation timer expires", "modeSwitchAutoPlanLabel": "Mode switch auto-plan", "newRoleDefaultLabel": "Custom role", - "pageDescription": "Define the role you're playing right now. The agent reads the active role's guidance and adapts its behavior accordingly — for example, asking fewer clarifying questions when you're heads-down, or batching summaries when you're away.", + "pageDescription": "Define the role you're playing right now. The agent reads the active role's guidance and adapts its behavior accordingly — for example, asking fewer clarifying questions when you're heads-down, or batching summaries when you're away", "pageTitle": "My Roles", - "planAutoApproveDesc": "Auto-approve pending plans after N seconds (0 = wait for me).", + "planAutoApproveDesc": "Auto-approve pending plans after N seconds (0 = wait for me)", "planAutoApproveLabel": "Plan auto-approve", - "questionAutoSkipDesc": "Auto-skip pending agent questions after N seconds (0 = wait for me).", + "questionAutoSkipDesc": "Auto-skip pending agent questions after N seconds (0 = wait for me)", "questionAutoSkipLabel": "Question auto-skip", "roleNameLabel": "Name", "roleNamePlaceholder": "Role name", "stanceAutonomous": "Autonomous — never wait for me", "stanceDeferAndBatch": "Defer & batch — work first, ask later", - "stanceDesc": "How the agent treats blocking decisions while this role is active.", + "stanceDesc": "How the agent treats blocking decisions while this role is active", "stanceInteractive": "Interactive — ask me freely", "stanceLabel": "Behavior stance" }, diff --git a/src/i18n/locales/en/onboarding.json b/src/i18n/locales/en/onboarding.json index b115323675..522ce826fa 100644 --- a/src/i18n/locales/en/onboarding.json +++ b/src/i18n/locales/en/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "General layout tour", - "description": "Learn the Chat Panel, Runtime, station mode switcher, and dock.", + "description": "Learn the Chat Panel, Runtime, station mode switcher, and dock", "duration": "1 min", "steps": { "chat-panel": { "title": "Chat Panel", - "body": "This is where users have conversations with agents, review activity, and send follow-up instructions." + "body": "This is where users have conversations with agents, review activity, and send follow-up instructions" }, "runtime": { "title": "Runtime", - "body": "View your own usage and runtime status here. In a workspace, you can also inspect member sync status and open a member to review Codex, Claude, and Cursor usage." + "body": "View your own usage and runtime status here. In a workspace, you can also inspect member sync status and open a member to review Codex, Claude, and Cursor usage" }, "station-mode-pill": { "title": "Switch station modes", - "body": "Use this pill to switch station modes. Desktop means My Station, your workspace. Infinity means Agent Station, the agent activity view." + "body": "Use this pill to switch station modes. Desktop means My Station, your workspace. Infinity means Agent Station, the agent activity view" }, "dock": { "title": "Agent Station dock", - "body": "The dock switches apps inside the station. The tour temporarily disables auto-hide so these controls stay visible." + "body": "The dock switches apps inside the station. The tour temporarily disables auto-hide so these controls stay visible" } } }, "codeEditor": { "title": "Code Editor tour", - "description": "Learn tabs, the editor workspace, Source Control, and Git History.", + "description": "Learn tabs, the editor workspace, Source Control, and Git History", "duration": "2 min", "steps": { "tabs": { "title": "Code Editor tabs", - "body": "Tabs collect the files, diffs, terminals, source control views, and dashboards you open while working in the repo." + "body": "Tabs collect the files, diffs, terminals, source control views, and dashboards you open while working in the repo" }, "editor-surface": { "title": "Editor workspace", - "body": "This is the main Code Editor surface. Open files, inspect diffs, run terminals, and review generated changes here." + "body": "This is the main Code Editor surface. Open files, inspect diffs, run terminals, and review generated changes here" }, "create-tabs": { "title": "Create new tabs", - "body": "Use the plus menu in All Tabs to create terminals, browser tabs, files, dashboards, and repo utilities." + "body": "Use the plus menu in All Tabs to create terminals, browser tabs, files, dashboards, and repo utilities" }, "source-control": { "title": "Git changes", - "body": "Open Source Control to review changed files, stage or unstage work, commit, pull, push, fetch, and sync with the remote." + "body": "Open Source Control to review changed files, stage or unstage work, commit, pull, push, fetch, and sync with the remote" }, "git-history": { "title": "Git history", - "body": "Git History switches Source Control into commit history mode so you can inspect previous commits and related changes." + "body": "Git History switches Source Control into commit history mode so you can inspect previous commits and related changes" } } } @@ -68,6 +68,6 @@ "getStarted": "Get started", "newFeatures": "New features", "branchesTitle": "Repository branches", - "branchesDescription": "Switch repository branches directly from Spotlight." + "branchesDescription": "Switch repository branches directly from Spotlight" } } diff --git a/src/i18n/locales/en/projects.json b/src/i18n/locales/en/projects.json index a1109b76db..0284bd7050 100644 --- a/src/i18n/locales/en/projects.json +++ b/src/i18n/locales/en/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Loading GitHub connections...", "noConnectionTitle": "No GitHub connection found", - "noConnectionDescription": "Add a GitHub connection in Integrations first, then return here to import GitHub Issues.", + "noConnectionDescription": "Add a GitHub connection in Integrations first, then return here to import GitHub Issues", "linkedRepoHint": "This project will also be linked to the current workspace repo: {{repoName}}", "errors": { "invalidRepo": "Use owner/repo or a GitHub repository URL." @@ -80,7 +80,7 @@ "importLinearOrgs": "Import Linear Workspaces", "gitFolderPath": "Git folder path (optional)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Bind this workspace to an existing Git working tree for folder sync.", + "gitFolderPathHint": "Bind this workspace to an existing Git working tree for folder sync", "gitFolderBadge": "Git", "gitFolderSynced": "Synced with a Git folder", "pendingSync": "Sync pending", @@ -123,7 +123,7 @@ "addTeams": "Add teams", "addLabels": "Add labels", "addRepos": "Link repos", - "noReposHint": "No repos available. Add a repo to your workspace first.", + "noReposHint": "No repos available. Add a repo to your workspace first", "addDate": "Add date", "clearDate": "Clear date", "noStatus": "No status", @@ -416,7 +416,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "File diff is clean", - "fileDiffCleanHint": "No file changes detected.", + "fileDiffCleanHint": "No file changes detected", "costSummary": "Cost Summary", "totalCost": "Total", "tokens": "tokens", @@ -445,7 +445,7 @@ "save": "Save current view", "saveTitle": "Save view", "namePlaceholder": "View name", - "saveHint": "Captures the current filters; layout seeds the first open.", + "saveHint": "Captures the current filters; layout seeds the first open", "delete": "Delete view" }, "table": { @@ -463,13 +463,13 @@ }, "batchProperty": { "title": "Set property", - "hint": "Applies one property value to {{count}} selected items. Leave the value empty to clear it.", + "hint": "Applies one property value to {{count}} selected items. Leave the value empty to clear it", "propertyPlaceholder": "Property", "valuePlaceholder": "Value", "applied": "Updated {{count}} items" }, "batchField": { - "hint": "Applies to {{count}} selected items." + "hint": "Applies to {{count}} selected items" }, "batchStatus": { "title": "Set status" @@ -482,7 +482,7 @@ }, "revisionConflict": { "title": "Resolve edit conflict", - "description": "{{field}} changed after revision {{expected}}. Compare your edit with revision {{actual}}, then choose which version to keep.", + "description": "{{field}} changed after revision {{expected}}. Compare your edit with revision {{actual}}, then choose which version to keep", "mine": "My version", "latest": "Latest version", "useLatest": "Use latest", @@ -573,7 +573,7 @@ "confirmDelete": "I understand, delete this project", "sync": { "title": "External Sync", - "description": "Mirror this project's work items to an external system like Linear or GitHub.", + "description": "Mirror this project's work items to an external system like Linear or GitHub", "adapterPicker": { "title": "Adapter", "notAttached": "Not attached", @@ -581,7 +581,7 @@ "detach": "Detach", "detachProjectMenuLabel": "Unlink GitHub", "detachProjectTitle": "Unlink GitHub from {{project}}?", - "detachProjectDescription": "GitHub Issues sync will stop. The local project and imported work items will stay in ORG2.", + "detachProjectDescription": "GitHub Issues sync will stop. The local project and imported work items will stay in ORG2", "detachProjectAction": "Unlink GitHub from {{project}}", "detachProjectSuccess": "GitHub unlinked from {{project}}", "changeWarning": "Detach the current adapter before attaching a new one." @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Loading webhook status…", - "notInstalledDescription": "Install a webhook secret to let this provider push changes directly instead of waiting for the next poll.", + "notInstalledDescription": "Install a webhook secret to let this provider push changes directly instead of waiting for the next poll", "install": "Install webhook", - "installedDescription": "Paste the URL into your provider's webhook configuration and use the secret below to sign deliveries.", + "installedDescription": "Paste the URL into your provider's webhook configuration and use the secret below to sign deliveries", "indicatorFresh": "Recent delivery", "indicatorStale": "No recent delivery", "lastDeliveryNever": "No deliveries yet", @@ -627,7 +627,7 @@ "copyUrl": "Copy URL", "rotate": "Rotate secret", "secretTitle": "Copy this secret now — it won't be shown again", - "secretDescription": "Paste this signing secret into your provider's webhook configuration. We don't store the plaintext value once you dismiss this panel.", + "secretDescription": "Paste this signing secret into your provider's webhook configuration. We don't store the plaintext value once you dismiss this panel", "copySecret": "Copy secret", "dismissSecret": "I've saved it", "secretCopied": "Secret copied to clipboard", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Statuses", "statusesBuiltin": "Built-in statuses", - "statusesBuiltinDescription": "The standard workflow buckets. Always available.", + "statusesBuiltinDescription": "The standard workflow buckets. Always available", "statusesCustom": "Custom statuses", - "statusesCustomDescription": "Named aliases over a built-in bucket. Filters, counts, and boards treat them as their bucket.", + "statusesCustomDescription": "Named aliases over a built-in bucket. Filters, counts, and boards treat them as their bucket", "statusNamePlaceholder": "Status name", "noCustomStatuses": "No custom statuses yet.", "statusArchive": "Archive status", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/en/sessions.json b/src/i18n/locales/en/sessions.json index 50bd0bb9b2..85d8286821 100644 --- a/src/i18n/locales/en/sessions.json +++ b/src/i18n/locales/en/sessions.json @@ -901,10 +901,10 @@ "exportJson": "Export JSON", "importAction": "Import Session", "exportDescription": "Export the active Session as a portable JSON snapshot", - "importDescription": "Import a Session JSON snapshot into the sidebar.", + "importDescription": "Import a Session JSON snapshot into the sidebar", "jsonSnapshotNote": "Imported Sessions are read-only snapshots and keep the original event history", "chooseJson": "Choose JSON file", - "chooseJsonHint": "Select an .orgii-session.json export file.", + "chooseJsonHint": "Select an .orgii-session.json export file", "loadingPreview": "Counting Session events…", "noActiveSession": "No active Session selected.", "importedName": "Imported Session: {{name}}", @@ -1927,7 +1927,7 @@ "start": "Start", "missingGit": { "title": "Git is missing", - "body": "Git is not installed or could not be found. Ask ADE Manager or SDE Agent to install Git for this machine, then restart ORG2." + "body": "Git is not installed or could not be found. Ask ADE Manager or SDE Agent to install Git for this machine, then restart ORG2" }, "cliVersionOutdated": { "title": "{{cli}} needs an upgrade ({{installed}} > {{latest}})", @@ -2143,7 +2143,7 @@ "archiveTeardownRetained": "Archived, but {{count}} runtime could not be released. Delete remains blocked.", "archiveTeardownQuiesced": "Archived and fully stopped. Permanent deletion is now available.", "dangerZone": "Danger Zone", - "deleteDescription": "Permanently delete this Team and all of its sessions and history.", + "deleteDescription": "Permanently delete this Team and all of its sessions and history", "deleteTeam": "Delete Team", "deleteTitle": "Permanently delete this Team?", "deleteWarning": "This permanently deletes every Team session and its history. This action cannot be undone.", diff --git a/src/i18n/locales/en/settings.json b/src/i18n/locales/en/settings.json index b36e445d9e..068a9282b0 100644 --- a/src/i18n/locales/en/settings.json +++ b/src/i18n/locales/en/settings.json @@ -463,13 +463,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "Hide ORG2 during desktop control", - "hideBeforeActionHelper": "Hide the main ORG2 window while Peekaboo operates, and show the Wingman bar plus floating caption so the agent does not need to manage focus.", + "hideBeforeActionHelper": "Hide the main ORG2 window while Peekaboo operates, and show the Wingman bar plus floating caption so the agent does not need to manage focus", "antiDetection": "HID anti-automation hardening", - "antiDetectionHelper": "Make Peekaboo post real CGEvent (HID) input for clicks and keystrokes instead of pure Accessibility actions, so apps with anti-automation detection (e.g. WeChat) are less likely to block desktop control.", + "antiDetectionHelper": "Make Peekaboo post real CGEvent (HID) input for clicks and keystrokes instead of pure Accessibility actions, so apps with anti-automation detection (e.g. WeChat) are less likely to block desktop control", "humanInputProfile": "Human typing cadence", - "humanInputProfileHelper": "Apply a human-like timing profile to synthesized keystrokes. Disable to type at maximum speed.", + "humanInputProfileHelper": "Apply a human-like timing profile to synthesized keystrokes. Disable to type at maximum speed", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Missing: {{bins}}", "skillMissingEnv": "Missing env: {{vars}}", @@ -631,7 +631,7 @@ "title": "Git", "pullStrategy": "Pull strategy", "pullStrategyDesc": "How git pull integrates remote changes when syncing", - "pullStrategyHint": "Rebase (default): Replays your commits on top of remote. Creates linear history.\n\nMerge: Creates a merge commit when branches have diverged. Preserves full history.\n\nFast-forward only: Only allows pull when no merge is needed. Refuses if branches have diverged.", + "pullStrategyHint": "Rebase (default): Replays your commits on top of remote. Creates linear history.\n\nMerge: Creates a merge commit when branches have diverged. Preserves full history.\n\nFast-forward only: Only allows pull when no merge is needed. Refuses if branches have diverged", "strategyMerge": "Merge", "strategyRebase": "Rebase (default)", "strategyFfOnly": "Fast-forward only (strict)", @@ -680,7 +680,7 @@ "checkFailed": "Update check failed", "checking": "Checking for updates…", "officialInstalled": "Official app installed", - "officialInstalledDesc": "{{version}} is installed at {{path}}. This local build is still running and unchanged.", + "officialInstalledDesc": "{{version}} is installed at {{path}}. This local build is still running and unchanged", "downloadFailed": "Update download failed", "retryNow": "Retry now", "downloadTimeout": "The download timed out. Check your network or proxy, then retry.", @@ -816,7 +816,7 @@ "tableVersion": "Version", "tableStatus": "Status", "installSection": "Install", - "installHintNote": "Suggested install command for your platform. Most system dependencies require admin privileges, so we don't run them automatically — copy and paste into your terminal." + "installHintNote": "Suggested install command for your platform. Most system dependencies require admin privileges, so we don't run them automatically — copy and paste into your terminal" }, "storage": { "dataDirectory": "Data Directory", @@ -902,7 +902,7 @@ "agentEvolution": { "enableForAgent": "Enable Evolution for {{agentName}}", "noAgentsTitle": "No agents available", - "noAgentsSubtitle": "Create or import an agent to configure Evolution." + "noAgentsSubtitle": "Create or import an agent to configure Evolution" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/es/common.json b/src/i18n/locales/es/common.json index f25823924a..8000710d80 100644 --- a/src/i18n/locales/es/common.json +++ b/src/i18n/locales/es/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Crear token", "openGitSettingsButton": "Abrir ajustes", "configureInSettings": "Configura Git en Ajustes", - "configureInSettingsDesc": "Añade acceso de GitHub App, guarda un token o escanea credenciales locales en Ajustes → Conexiones y vuelve a intentar esta operación de Git." + "configureInSettingsDesc": "Añade acceso de GitHub App, guarda un token o escanea credenciales locales en Ajustes → Conexiones y vuelve a intentar esta operación de Git" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "No se pudo obtener el nombre del repositorio a partir del remoto origin", "authRequired": { "title": "Conectar GitHub", - "description": "Ve a Ajustes → Conexiones para conectar tu cuenta de GitHub." + "description": "Ve a Ajustes → Conexiones para conectar tu cuenta de GitHub" }, "navigationTrail": "Navegación de pull requests", "failedToLoad": "No se pudieron cargar los pull requests", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Describe el issue (opcional)…", "authRequired": { "title": "Conectar GitHub", - "description": "Ve a Ajustes → Conexiones para conectar tu cuenta de GitHub." + "description": "Ve a Ajustes → Conexiones para conectar tu cuenta de GitHub" }, "reAuthRequired": "Se requiere autorización de GitHub", - "reAuthDescription": "Tu token de GitHub ha caducado. Ve a Ajustes → Conexiones para volver a conectarte.", + "reAuthDescription": "Tu token de GitHub ha caducado. Ve a Ajustes → Conexiones para volver a conectarte", "goToSettings": "Ir a Ajustes", "loadingTimeline": "Cargando actividad…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "¿Salir de ORG2?", - "subtitle": "Las sesiones en ejecución conservarán su estado actual. Puedes volver a abrir ORG2 más tarde.", + "subtitle": "Las sesiones en ejecución conservarán su estado actual. Puedes volver a abrir ORG2 más tarde", "cancel": "Cancelar", "confirm": "Salir" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari guarda sus cookies en una carpeta protegida por macOS. Autoriza ORG2 en Acceso total al disco en Ajustes del Sistema y vuelve a comprobarlo.", + "explain": "Safari guarda sus cookies en una carpeta protegida por macOS. Autoriza ORG2 en Acceso total al disco en Ajustes del Sistema y vuelve a comprobarlo", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/es/integrations.json b/src/i18n/locales/es/integrations.json index fe8185e0e2..ebb29efb44 100644 --- a/src/i18n/locales/es/integrations.json +++ b/src/i18n/locales/es/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "Eliminar local", "unlist": "Deslistar", "confirmRemoveTitle": "¿Eliminar \"{{name}}\"?", - "confirmRemoveMessage": "Esto eliminará la credencial local. Esta acción no se puede deshacer.", + "confirmRemoveMessage": "Esto eliminará la credencial local. Esta acción no se puede deshacer", "toasts": { "refreshed": "{{name}} actualizado correctamente", "refreshError": "Error al actualizar {{name}}: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "Correo de la cuenta" }, "customModels": { - "manualSetupHint": "Añade el ID exacto que acepta tu endpoint y un nombre opcional. La detección es opcional; activar un modelo no verifica su compatibilidad.", + "manualSetupHint": "Añade el ID exacto que acepta tu endpoint y un nombre opcional. La detección es opcional; activar un modelo no verifica su compatibilidad", "modelNamePlaceholder": "Ingrese el id del modelo...", "displayNamePlaceholder": "Etiqueta opcional", - "emptyHint": "No se han agregado modelos personalizados.", + "emptyHint": "No se han agregado modelos personalizados", "addModel": "Agregar modelo", "testRequiresEndpoint": "Introduce un endpoint y una clave de API para probar este modelo", "invalidModelId": "Los ID de modelo deben tener entre 1 y 256 bytes, sin espacios ni caracteres de control.", @@ -145,7 +145,7 @@ "keysVerified": "Credenciales verificadas", "failedMessage": "Tu API Key y Session Token no parecen pertenecer a la misma cuenta de Cursor.", "failedError": "Error: {{error}}", - "failedHint": "Por favor crea un nuevo listado con credenciales coincidentes de la misma cuenta de Cursor.", + "failedHint": "Por favor crea un nuevo listado con credenciales coincidentes de la misma cuenta de Cursor", "listingRejected": "Listado rechazado", "rejectedByAdmin": "Este listado fue rechazado por un administrador." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "Usa el navegador interno para conectar tu cuenta de Cursor.", "loggedIn": "Conectado", "loginStep": "Iniciar sesión", - "signInToCursorHint": "Inicia sesión en tu cuenta de Cursor. Esta ventana se cerrará automáticamente después del inicio de sesión.", + "signInToCursorHint": "Inicia sesión en tu cuenta de Cursor. Esta ventana se cerrará automáticamente después del inicio de sesión", "copilotCreatePat": "Crear GitHub Personal Access Token", "copilotCreatePatDesc": "Abre el navegador interno para crear un PAT de GitHub", "copilotTokenValidated": "Token validado", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Inicio de sesión de Cursor", "modelCount": "{{count}} modelos", "cursorLoginReadyTitle": "Cuenta de Cursor conectada", - "cursorLoginReadyDesc": "Genera y pega una API key de Cursor abajo. Cursor agent no funcionará sin esta API key.", + "cursorLoginReadyDesc": "Genera y pega una API key de Cursor abajo. Cursor agent no funcionará sin esta API key", "cursorApiKeyBrowserHint": "Después de iniciar sesión, ORG2 abre el dashboard de Cursor. Genera allí una User API Key y pégala abajo", "cursorApiKeyRecommendedTitle": "Se recomienda una API key de Cursor", "cursorApiKeyRecommendedDesc": "Puedes continuar sin una API key de Cursor si solo quieres usar Cursor con los Rust agents de ORG2; solo inicia sesión con el navegador interno o proporciona un token de sesión", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "El Gateway enruta los mensajes entrantes de cada canal. Elige una clave API y un modelo para el enrutamiento semántico.", + "description": "El Gateway enruta los mensajes entrantes de cada canal. Elige una clave API y un modelo para el enrutamiento semántico", "statusReady": "Configurado", "statusUnconfigured": "Sin configurar", "account": "Cuenta de clave API", @@ -581,7 +581,7 @@ "model": "Modelo", "modelPlaceholder": "Seleccionar modelo", "groupPerUser": "Aislar sesiones de chat grupal por usuario", - "groupPerUserDesc": "Cada participante en un chat grupal tiene su propio contexto de sesión." + "groupPerUserDesc": "Cada participante en un chat grupal tiene su propio contexto de sesión" }, "emailProtocol": "Protocolo", "matrixDeviceNamePlaceholder": "Bot de ORG2" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Abre la URL de verificación e introduce este código para autorizar GitHub.", "scanCredHelper": "Helper de credenciales de Git ({{name}})", "scanEmpty": "No se detectó nada", - "scanEmptyDesc": "No se encontraron tokens de gh CLI, helpers de credenciales ni claves SSH. Elige otro método arriba.", + "scanEmptyDesc": "No se encontraron tokens de gh CLI, helpers de credenciales ni claves SSH. Elige otro método arriba", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Credenciales detectadas", - "scanResultsDesc": "Elige una para importar. Validamos los tokens con GitHub antes de guardarlos.", + "scanResultsDesc": "Elige una para importar. Validamos los tokens con GitHub antes de guardarlos", "scanSshKey": "Clave SSH — {{name}}", "scanning": "Escaneando…", - "scanningDesc": "Buscando tokens de gh CLI, helpers de credenciales y claves SSH en este equipo.", + "scanningDesc": "Buscando tokens de gh CLI, helpers de credenciales y claves SSH en este equipo", "sshKeyPath": "Ruta de la clave SSH", "sshKeyPathDesc": "Ruta absoluta a la clave privada (p. ej. ~/.ssh/id_ed25519). La clave pública correspondiente ya debe estar registrada en GitHub.", "scanSelectRequired": "Elige una credencial detectada para importar.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Cambiar el proveedor Browser CLI requiere reiniciar ORG2 antes de que los agentes vean la herramienta seleccionada. ¿Reiniciar ahora?", "sidecarDownloadsSectionTitle": "Descargas de sidecars", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Descarga el binario de Agent Browser para esta plataforma en ~/.orgii/bin. ORG2 nunca lo descarga al iniciar.", + "sidecarAgentBrowserDesc": "Descarga el binario de Agent Browser para esta plataforma en ~/.orgii/bin. ORG2 nunca lo descarga al iniciar", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Descarga el binario macOS de Peekaboo para automatización de escritorio en ~/.orgii/bin. Las plataformas no compatibles quedan deshabilitadas.", + "sidecarPeekabooDesc": "Descarga el binario macOS de Peekaboo para automatización de escritorio en ~/.orgii/bin. Las plataformas no compatibles quedan deshabilitadas", "sidecarUnsupported": "No compatible", "sidecarInstalled": "Instalado", "sidecarNotInstalled": "No instalado", @@ -874,7 +874,7 @@ "connectMethodDesc": "Elija cómo conectar su cuenta de GitHub", "githubApp": "GitHub App", "detectFromSystem": "Detectar del sistema", - "detectFromSystemDesc": "Usa gh CLI, claves SSH o helpers de credenciales Git.", + "detectFromSystemDesc": "Usa gh CLI, claves SSH o helpers de credenciales Git", "credentialsDetected": "Credenciales detectadas", "detectedVia": "Detectado a través de {{source}}", "sshKeyLabel": "Clave SSH", @@ -894,7 +894,7 @@ "noCredentialsFound": "No se encontraron credenciales de GitHub", "noCredentialsHint": "Instale la CLI de GitHub (gh) o configure claves SSH para usar la detección local", "manuallyAddToken": "Añadir token manualmente", - "manualTokenDesc": "Pega un GitHub PAT para operaciones Git HTTPS.", + "manualTokenDesc": "Pega un GitHub PAT para operaciones Git HTTPS", "autoDetect": "Detectar automáticamente", "autoDetectTokenSaved": "Token de GitHub guardado", "autoDetectSshSwitched": "Remote cambiado a SSH", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Añadir {{name}} <{{email}}> a los commits Git creados desde ORG2", "noTokenYet": "¿Necesitas un Token?", - "createTokenDesc": "Abre GitHub y crea un PAT con acceso repo.", + "createTokenDesc": "Abre GitHub y crea un PAT con acceso repo", "accountConnected": "Cuenta de GitHub conectada", "disconnectMsg": "¿Estás seguro de que quieres desconectar? Esto eliminará el acceso a todos los repos de esta cuenta.", "disconnectTitle": "Desconectar cuenta de GitHub", @@ -929,7 +929,7 @@ "connectRepoDesc": "Conecta una cuenta de GitHub para acceder a repos", "github": "GitHub", "signInWithGithub": "Iniciar sesión con GitHub", - "signInWithGithubDesc": "Autoriza ORG2 mediante el flujo de dispositivo de GitHub. Sin hospedaje de servidor.", + "signInWithGithubDesc": "Autoriza ORG2 mediante el flujo de dispositivo de GitHub. Sin hospedaje de servidor", "oauthWaiting": "Esperando autorización", "oauthDeviceCodeDesc": "Abre la URL siguiente e introduce este código", "oauthOpenGithub": "Abrir GitHub", @@ -985,7 +985,7 @@ "filePathPlaceholder": "ej. scripts/validate.py", "removeFile": "Eliminar archivo", "editorNoDraftTitle": "No hay un borrador de Skill en curso", - "editorNoDraftDesc": "Empieza haciendo clic en Crear en la página de Skills, o elige un Skill para editar.", + "editorNoDraftDesc": "Empieza haciendo clic en Crear en la página de Skills, o elige un Skill para editar", "scopeWorkspace": "Específico del repo", "deleteConfirmTitle": "¿Eliminar el skill «{{name}}»?", "deleteConfirmMessage": "Esto eliminará el skill y todos sus archivos. Esta acción no se puede deshacer." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "Buscar servidores MCP...", "noServers": "No hay servidores MCP configurados", - "noServersDesc": "Agrega un servidor MCP para extender las capacidades del agente con herramientas externas.", + "noServersDesc": "Agrega un servidor MCP para extender las capacidades del agente con herramientas externas", "addServer": "Agregar servidor MCP", "editServer": "Editar servidor MCP", "serverName": "Nombre del servidor", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "Hooks de procedencia", - "masterToggleDesc": "Al desactivarlos, se desinstalan todos los hooks administrados y no se captura ninguna señal; las selecciones por plataforma se conservan y se restauran al volver a activarlos.", + "masterToggleDesc": "Al desactivarlos, se desinstalan todos los hooks administrados y no se captura ninguna señal; las selecciones por plataforma se conservan y se restauran al volver a activarlos", "liveStatusToggle": "Estado del agente en vivo", - "liveStatusToggleDesc": "Muestra si los agentes CLI están trabajando o esperando. Desactivarlo mantiene la captura de procedencia.", + "liveStatusToggleDesc": "Muestra si los agentes CLI están trabajando o esperando. Desactivarlo mantiene la captura de procedencia", "title": "Procedencia de sesiones", "capture": "Registrar interacciones con archivos", - "description": "Registra lecturas y escrituras de archivos como metadatos. No se guardan prompts, salidas de herramientas ni contenido de archivos.", + "description": "Registra lecturas y escrituras de archivos como metadatos. No se guardan prompts, salidas de herramientas ni contenido de archivos", "installDrift": "La preferencia guardada y el hook instalado son distintos. Cambia la captura para reparar el hook administrado. Configuración: {{path}}", "copyPath": "Copiar", "col": { @@ -1185,7 +1185,7 @@ "addMember": "Agregar Miembro", "noMembers": "Agrega miembros para construir la jerarquía de tu org", "membersLabel": "Miembros del equipo", - "membersDesc": "Cada fila es un miembro con una concesión de Writer y ajustes de comunicación independientes. Los nombres deben ser únicos; el rol solo describe la especialidad.", + "membersDesc": "Cada fila es un miembro con una concesión de Writer y ajustes de comunicación independientes. Los nombres deben ser únicos; el rol solo describe la especialidad", "memberName": "Nombre", "memberNamePlaceholder": "Nombre de enrutamiento único (p. ej. SDE-1)", "memberNameDuplicate": "Otro miembro ya usa este nombre. Los nombres deben ser únicos dentro de la organización.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "¿Qué hace este agent? (opcional)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Llamadas de herramientas simultáneas por mensaje. Predeterminado: 10.", + "maxToolUseConcurrencyDesc": "Llamadas de herramientas simultáneas por mensaje. Predeterminado: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "Ejecutar en un Git Worktree temporal (acceso a archivos y Shell aislado).", + "subAgentWorktreeIsolationDesc": "Ejecutar en un Git Worktree temporal (acceso a archivos y Shell aislado)", "addSubAgent": "Agregar Sub-Agent...", "noSubAgents": "No hay sub-agents configurados." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "A qué agentes se aplica esta regla (vacío = todos)", "selectAgents": "Seleccionar agentes…", "ruleSource": "Origen", - "ruleSourceDesc": "Elige User para todos los repos o Repo para una guía específica de un repo.", + "ruleSourceDesc": "Elige User para todos los repos o Repo para una guía específica de un repo", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Una preferencia de usuario disponible en todos los repos.", + "ruleSourceUserDesc": "Una preferencia de usuario disponible en todos los repos", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Una guía guardada para un único repo seleccionado.", + "ruleSourceRepoDesc": "Una guía guardada para un único repo seleccionado", "ruleRepo": "Repo", "ruleRepoDesc": "El único repo al que se aplica esta guía", "selectRepo": "Seleccionar repo…", "ruleSourcePersonal": "Personal", - "ruleSourcePersonalDesc": "Guardado en ~/.orgii/personal/rules/. Solo sesiones OS Agent / channel.", + "ruleSourcePersonalDesc": "Guardado en ~/.orgii/personal/rules/. Solo sesiones OS Agent / channel", "findSkills": { "title": "Buscar Skills", "placeholder": "Buscar Skills...", "installs": "Installs", "emptyTitle": "Buscar Skills", - "emptySubtitle": "Introduce al menos 2 caracteres y pulsa Enter para buscar Skills.", + "emptySubtitle": "Introduce al menos 2 caracteres y pulsa Enter para buscar Skills", "noResults": "No se encontraron Skills", - "noResultsDesc": "Prueba con otro término de búsqueda." + "noResultsDesc": "Prueba con otro término de búsqueda" }, "importAgentTitle": "Importar Agents desde otras apps", "importAgentColumn": "Agent", "importedItemAgents": "agentes", "emptySelectionTitle": "Seleccione un miembro o un Equipo Agent", - "emptySelectionSubtitle": "Elija un Agent o un Equipo Agent en la barra lateral para verlo y configurarlo.", + "emptySelectionSubtitle": "Elija un Agent o un Equipo Agent en la barra lateral para verlo y configurarlo", "applicableWorkspace": "Workspace aplicable", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "Conmutador de configuración de la CLI", "modeLabel": "Modo", - "modeDesc": "Predeterminado restaura la configuración propia de la CLI. Gestionado por ORG2 escribe una configuración de proxy con copia de seguridad.", + "modeDesc": "Predeterminado restaura la configuración propia de la CLI. Gestionado por ORG2 escribe una configuración de proxy con copia de seguridad", "modeDefault": "Predeterminado", "modeOrgii": "Gestionado por ORG2", "conflict": "Cambio externo", "conflictTitle": "Conflicto", - "conflictDesc": "La configuración activa de la CLI cambió después de que ORG2 la escribiera.", + "conflictDesc": "La configuración activa de la CLI cambió después de que ORG2 la escribiera", "proxyStatus": "Proxy", "proxyDefault": "Modo predeterminado", "proxyReady": "Proxy listo", "proxyNotReady": "Proxy no listo", "keyLabel": "Credencial", - "keyDesc": "Solo se muestran las claves de API compatibles con esta CLI y el proxy gestionado.", + "keyDesc": "Solo se muestran las claves de API compatibles con esta CLI y el proxy gestionado", "selectKey": "Seleccionar credencial", "modelLabel": "Modelo", "selectModel": "Seleccionar modelo", @@ -1356,7 +1356,7 @@ "forceRestore": "Forzar restauración", "applySuccess": "Configuración gestionada por ORG2 aplicada", "restoreSuccess": "Configuración predeterminada restaurada", - "proxyLifecycleDesc": "Mantén ORG2 en ejecución mientras uses este modo. Cerrar la ventana deja el proxy en la bandeja del sistema; salir de ORG2 restaura Predeterminado de forma segura, salvo que la configuración haya cambiado externamente." + "proxyLifecycleDesc": "Mantén ORG2 en ejecución mientras uses este modo. Cerrar la ventana deja el proxy en la bandeja del sistema; salir de ORG2 restaura Predeterminado de forma segura, salvo que la configuración haya cambiado externamente" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Tiempo total: {{value}}s" }, "title": "Housekeeper residente", - "description": "MiniCPM local se encarga de pulir prompts, explicar pasos brevemente y del control ligero de la UI. Las tareas de programación y la configuración compleja del ADE siguen usando el modelo principal del agent.", + "description": "MiniCPM local se encarga de pulir prompts, explicar pasos brevemente y del control ligero de la UI. Las tareas de programación y la configuración compleja del ADE siguen usando el modelo principal del agent", "autoAccount": "Seleccionar automáticamente la cuenta vLLM de MiniCPM", "tiles": { "model": "Modelo", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Activar housekeeper", - "description": "Cuando está desactivado, el pulido de prompts, las explicaciones de pasos y el control ligero de la UI no usarán MiniCPM." + "description": "Cuando está desactivado, el pulido de prompts, las explicaciones de pasos y el control ligero de la UI no usarán MiniCPM" }, "account": { "title": "Cuenta vLLM de MiniCPM", - "description": "Reutiliza una cuenta vllm_api existente de Key Vault; no se crea ningún almacén de credenciales aparte." + "description": "Reutiliza una cuenta vllm_api existente de Key Vault; no se crea ningún almacén de credenciales aparte" }, "model": { "title": "ID del modelo", - "description": "Docker vLLM MiniCPM5-1B usa openbmb/MiniCPM5-1B de forma predeterminada." + "description": "Docker vLLM MiniCPM5-1B usa openbmb/MiniCPM5-1B de forma predeterminada" }, "context": { "title": "Presupuesto de contexto seguro", - "description": "Usa un presupuesto conservador de 10000 tokens en GPU de 4 GB en lugar de confiar en el límite teórico de 32k." + "description": "Usa un presupuesto conservador de 10000 tokens en GPU de 4 GB en lugar de confiar en el límite teórico de 32k" } }, "features": { "promptPolish": { "title": "Pulido de prompts", - "description": "Pule manualmente la entrada antes de enviarla al modelo de programación más potente." + "description": "Pule manualmente la entrada antes de enviarla al modelo de programación más potente" }, "stepExplain": { "title": "Explicaciones de pasos del agent", - "description": "Genera una o dos explicaciones breves en chino para los pasos de la reproducción de la sesión." + "description": "Genera una o dos explicaciones breves en chino para los pasos de la reproducción de la sesión" }, "uiControl": { "title": "Control ligero de ADE/UI", - "description": "MiniCPM solo puede clasificar las solicitudes dentro de una lista blanca estricta de acciones locales." + "description": "MiniCPM solo puede clasificar las solicitudes dentro de una lista blanca estricta de acciones locales" }, "contextCompact": { "title": "Mantenimiento automático del contexto", - "description": "Permite que MiniCPM mantenga un resumen continuo y aislado del contexto antiguo mientras las sesiones habilitadas están inactivas." + "description": "Permite que MiniCPM mantenga un resumen continuo y aislado del contexto antiguo mientras las sesiones habilitadas están inactivas" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Compartir con la organización", "share": "Compartir", "sharedToOrg": "Skill compartida con la organización", - "shareToOrgHint": "Los miembros de la organización reciben la instantánea actual de esta Skill; vuelve a compartirla después de editarla para publicar una actualización.", + "shareToOrgHint": "Los miembros de la organización reciben la instantánea actual de esta Skill; vuelve a compartirla después de editarla para publicar una actualización", "shareOrgPlaceholder": "Organización" } } diff --git a/src/i18n/locales/es/navigation.json b/src/i18n/locales/es/navigation.json index 7c1878185e..c5413be015 100644 --- a/src/i18n/locales/es/navigation.json +++ b/src/i18n/locales/es/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "El modelo {{model}} del propietario no está disponible con tus claves — este fork usará {{fallback}} en su lugar.", "forkModelUnavailable": "El modelo {{model}} del propietario no está disponible con tus claves — elige un modelo antes de ejecutar este fork.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Cancelar", "deleteRoleOk": "Eliminar", "deleteRoleTitle": "¿Eliminar rol?", - "followUpSuggestionsDesc": "Sugiere posibles próximos pasos tras completar un turno de un elemento de trabajo. Esto usa una solicitud adicional al modelo.", + "followUpSuggestionsDesc": "Sugiere posibles próximos pasos tras completar un turno de un elemento de trabajo. Esto usa una solicitud adicional al modelo", "followUpSuggestionsLabel": "Sugerencias de seguimiento del agent", - "goalMaxTurnsDesc": "Sigue trabajando en mi última solicitud hasta N turnos adicionales después de que el agent se detendría normalmente (0 = desactivado).", + "goalMaxTurnsDesc": "Sigue trabajando en mi última solicitud hasta N turnos adicionales después de que el agent se detendría normalmente (0 = desactivado)", "goalMaxTurnsLabel": "Presupuesto de continuación del objetivo", "guidanceLabel": "Guía para el agent", "guidancePlaceholder": "¿Cómo debe adaptar su comportamiento el agent cuando este rol está activo?", - "modeSwitchAutoPlanDesc": "Cambia automáticamente las sugerencias pendientes de modo Plan cuando vence su temporizador de confirmación.", + "modeSwitchAutoPlanDesc": "Cambia automáticamente las sugerencias pendientes de modo Plan cuando vence su temporizador de confirmación", "modeSwitchAutoPlanLabel": "Cambio de modo con plan automático", "newRoleDefaultLabel": "Rol personalizado", - "pageDescription": "Define el rol que estás desempeñando ahora mismo. El agent lee la guía del rol activo y adapta su comportamiento en consecuencia — por ejemplo, haciendo menos preguntas aclaratorias cuando estás concentrado, o agrupando los resúmenes cuando estás ausente.", + "pageDescription": "Define el rol que estás desempeñando ahora mismo. El agent lee la guía del rol activo y adapta su comportamiento en consecuencia — por ejemplo, haciendo menos preguntas aclaratorias cuando estás concentrado, o agrupando los resúmenes cuando estás ausente", "pageTitle": "Mis roles", - "planAutoApproveDesc": "Aprueba automáticamente los planes pendientes tras N segundos (0 = esperarme).", + "planAutoApproveDesc": "Aprueba automáticamente los planes pendientes tras N segundos (0 = esperarme)", "planAutoApproveLabel": "Aprobación automática de planes", - "questionAutoSkipDesc": "Omite automáticamente las preguntas pendientes del agent tras N segundos (0 = esperarme).", + "questionAutoSkipDesc": "Omite automáticamente las preguntas pendientes del agent tras N segundos (0 = esperarme)", "questionAutoSkipLabel": "Omisión automática de preguntas", "roleNameLabel": "Nombre", "roleNamePlaceholder": "Nombre del rol", "stanceAutonomous": "Autónomo — nunca me esperes", "stanceDeferAndBatch": "Aplazar y agrupar — trabaja primero, pregunta después", - "stanceDesc": "Cómo trata el agent las decisiones bloqueantes mientras este rol está activo.", + "stanceDesc": "Cómo trata el agent las decisiones bloqueantes mientras este rol está activo", "stanceInteractive": "Interactivo — pregúntame con libertad", "stanceLabel": "Postura de comportamiento" }, diff --git a/src/i18n/locales/es/onboarding.json b/src/i18n/locales/es/onboarding.json index a71a2e29c9..087c3923a9 100644 --- a/src/i18n/locales/es/onboarding.json +++ b/src/i18n/locales/es/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Recorrido general por el diseño", - "description": "Conoce el panel de chat, Runtime, el selector de modo y el dock.", + "description": "Conoce el panel de chat, Runtime, el selector de modo y el dock", "duration": "1 min", "steps": { "chat-panel": { "title": "Panel de chat", - "body": "Aquí es donde los usuarios conversan con los agentes, revisan la actividad y envían instrucciones de seguimiento." + "body": "Aquí es donde los usuarios conversan con los agentes, revisan la actividad y envían instrucciones de seguimiento" }, "runtime": { "title": "Tiempo de ejecución", - "body": "Consulta aquí tu uso y el estado de ejecución. En un espacio de trabajo, también puedes revisar la sincronización de los miembros y abrir sus detalles de uso de Codex, Claude y Cursor." + "body": "Consulta aquí tu uso y el estado de ejecución. En un espacio de trabajo, también puedes revisar la sincronización de los miembros y abrir sus detalles de uso de Codex, Claude y Cursor" }, "station-mode-pill": { "title": "Cambiar de estación modos", - "body": "Utilice esta pastilla para cambiar los modos de estación. Escritorio significa My Station, tu espacio de trabajo. Infinito significa Agent Station, la vista de actividad del agente." + "body": "Utilice esta pastilla para cambiar los modos de estación. Escritorio significa My Station, tu espacio de trabajo. Infinito significa Agent Station, la vista de actividad del agente" }, "dock": { "title": "Base de Agent Station", - "body": "La base cambia de aplicaciones dentro de la estación. El recorrido desactiva temporalmente la ocultación automática para que estos controles permanezcan visibles." + "body": "La base cambia de aplicaciones dentro de la estación. El recorrido desactiva temporalmente la ocultación automática para que estos controles permanezcan visibles" } } }, "codeEditor": { "title": "Recorrido por el editor de código", - "description": "Conoce las pestañas, el espacio del editor, el control de código fuente y el historial de Git.", + "description": "Conoce las pestañas, el espacio del editor, el control de código fuente y el historial de Git", "duration": "2 minutos", "steps": { "tabs": { "title": "Pestañas del editor de código", - "body": "Las pestañas recopilan los archivos, diferencias, terminales, vistas de control de código fuente y paneles que abre mientras trabaja en el repositorio." + "body": "Las pestañas recopilan los archivos, diferencias, terminales, vistas de control de código fuente y paneles que abre mientras trabaja en el repositorio" }, "editor-surface": { "title": "Espacio de trabajo del editor", - "body": "Esta es la superficie principal del Editor de código. Abra archivos, inspeccione diferencias, ejecute terminales y revise los cambios generados aquí." + "body": "Esta es la superficie principal del Editor de código. Abra archivos, inspeccione diferencias, ejecute terminales y revise los cambios generados aquí" }, "create-tabs": { "title": "Crear nuevas pestañas", - "body": "Utilice el menú más en Todas las pestañas para crear terminales, pestañas del navegador, archivos, paneles y utilidades de repositorio." + "body": "Utilice el menú más en Todas las pestañas para crear terminales, pestañas del navegador, archivos, paneles y utilidades de repositorio" }, "source-control": { "title": "Cambios de Git", - "body": "Control de código abierto para revisar archivos modificados, preparar o cancelar el trabajo, confirmar, extraer, enviar, recuperar y sincronizar con el control remoto." + "body": "Control de código abierto para revisar archivos modificados, preparar o cancelar el trabajo, confirmar, extraer, enviar, recuperar y sincronizar con el control remoto" }, "git-history": { "title": "Historial de Git", - "body": "Historial de Git cambia el Control de fuente al modo de historial de confirmaciones para que puedas inspeccionar confirmaciones anteriores y cambios relacionados." + "body": "Historial de Git cambia el Control de fuente al modo de historial de confirmaciones para que puedas inspeccionar confirmaciones anteriores y cambios relacionados" } } } @@ -68,6 +68,6 @@ "getStarted": "Primeros pasos", "newFeatures": "Novedades", "branchesTitle": "Ramas del repositorio", - "branchesDescription": "Cambia de rama del repositorio directamente desde Spotlight." + "branchesDescription": "Cambia de rama del repositorio directamente desde Spotlight" } } diff --git a/src/i18n/locales/es/projects.json b/src/i18n/locales/es/projects.json index 2e3bf9962f..7ab70dc255 100644 --- a/src/i18n/locales/es/projects.json +++ b/src/i18n/locales/es/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Cargando conexiones de GitHub...", "noConnectionTitle": "No se encontró ninguna conexión de GitHub", - "noConnectionDescription": "Primero agrega una conexión de GitHub en Integrations y luego vuelve aquí para importar GitHub Issues.", + "noConnectionDescription": "Primero agrega una conexión de GitHub en Integrations y luego vuelve aquí para importar GitHub Issues", "linkedRepoHint": "Este Project también se vinculará al repo del Workspace actual: {{repoName}}", "errors": { "invalidRepo": "Usa owner/repo o una URL de repositorio de GitHub." @@ -80,7 +80,7 @@ "importLinearOrgs": "Importar espacios de trabajo de Linear", "gitFolderPath": "Ruta de carpeta Git (opcional)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Vincula este espacio de trabajo a un árbol de trabajo Git existente para sincronizar carpetas.", + "gitFolderPathHint": "Vincula este espacio de trabajo a un árbol de trabajo Git existente para sincronizar carpetas", "gitFolderBadge": "Git", "gitFolderSynced": "Sincronizado con una carpeta Git", "pendingSync": "Sincronización pendiente", @@ -123,7 +123,7 @@ "addTeams": "Agregar equipos", "addLabels": "Agregar etiquetas", "addRepos": "Vincular repos", - "noReposHint": "No hay repos disponibles. Añade primero un repo al workspace.", + "noReposHint": "No hay repos disponibles. Añade primero un repo al workspace", "addDate": "Agregar fecha", "clearDate": "Borrar fecha", "noStatus": "Sin estado", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "Sin cambios en archivos", - "fileDiffCleanHint": "No se detectaron cambios.", + "fileDiffCleanHint": "No se detectaron cambios", "costSummary": "Resumen de costos", "totalCost": "Total", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Ver Work Items", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Se aplica a {{count}} elementos seleccionados." + "hint": "Se aplica a {{count}} elementos seleccionados" }, "batchStatus": { "title": "Establecer estado" @@ -457,7 +457,7 @@ "save": "Guardar vista actual", "saveTitle": "Guardar vista", "namePlaceholder": "Nombre de la vista", - "saveHint": "Captura los filtros actuales; el diseño se aplica al abrirla por primera vez.", + "saveHint": "Captura los filtros actuales; el diseño se aplica al abrirla por primera vez", "delete": "Eliminar vista" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Establecer propiedad", - "hint": "Aplica un valor de propiedad a {{count}} elementos seleccionados. Deja el valor vacío para borrarlo.", + "hint": "Aplica un valor de propiedad a {{count}} elementos seleccionados. Deja el valor vacío para borrarlo", "propertyPlaceholder": "Propiedad", "valuePlaceholder": "Valor", "applied": "{{count}} elementos actualizados" }, "revisionConflict": { "title": "Resolver conflicto de edición", - "description": "{{field}} cambió después de la revisión {{expected}}. Compara tu edición con la revisión {{actual}} y elige qué versión conservar.", + "description": "{{field}} cambió después de la revisión {{expected}}. Compara tu edición con la revisión {{actual}} y elige qué versión conservar", "mine": "Mi versión", "latest": "Última versión", "useLatest": "Usar la última", @@ -573,7 +573,7 @@ "sidebarSync": "Sincronización", "sync": { "title": "Sincronización externa", - "description": "Refleja los elementos de trabajo de este Project en un sistema externo como Linear o GitHub.", + "description": "Refleja los elementos de trabajo de este Project en un sistema externo como Linear o GitHub", "adapterPicker": { "title": "Adaptador", "notAttached": "No conectado", @@ -582,7 +582,7 @@ "changeWarning": "Desconecta el adaptador actual antes de conectar uno nuevo.", "detachProjectMenuLabel": "Desvincular GitHub", "detachProjectTitle": "¿Desvincular GitHub de {{project}}?", - "detachProjectDescription": "La sincronización con GitHub Issues se detendrá. El proyecto local y los elementos de trabajo importados permanecerán en ORG2.", + "detachProjectDescription": "La sincronización con GitHub Issues se detendrá. El proyecto local y los elementos de trabajo importados permanecerán en ORG2", "detachProjectAction": "Desvincular GitHub de {{project}}", "detachProjectSuccess": "GitHub desvinculado de {{project}}" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Cargando estado del webhook…", - "notInstalledDescription": "Instala un secreto de webhook para que este proveedor envíe cambios directamente sin esperar la próxima consulta.", + "notInstalledDescription": "Instala un secreto de webhook para que este proveedor envíe cambios directamente sin esperar la próxima consulta", "install": "Instalar webhook", - "installedDescription": "Pega la URL en la configuración del webhook de tu proveedor y usa el secreto a continuación para firmar las entregas.", + "installedDescription": "Pega la URL en la configuración del webhook de tu proveedor y usa el secreto a continuación para firmar las entregas", "indicatorFresh": "Entrega reciente", "indicatorStale": "Sin entregas recientes", "lastDeliveryNever": "Sin entregas todavía", @@ -627,7 +627,7 @@ "copyUrl": "Copiar URL", "rotate": "Rotar secreto", "secretTitle": "Copia este secreto ahora — no se mostrará de nuevo", - "secretDescription": "Pega este secreto de firma en la configuración del webhook de tu proveedor. No guardamos el valor en texto plano una vez que cierres este panel.", + "secretDescription": "Pega este secreto de firma en la configuración del webhook de tu proveedor. No guardamos el valor en texto plano una vez que cierres este panel", "copySecret": "Copiar secreto", "dismissSecret": "Ya lo guardé", "secretCopied": "Secreto copiado al portapapeles", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Estados", "statusesBuiltin": "Estados integrados", - "statusesBuiltinDescription": "Las categorías estándar del flujo de trabajo. Siempre disponibles.", + "statusesBuiltinDescription": "Las categorías estándar del flujo de trabajo. Siempre disponibles", "statusesCustom": "Estados personalizados", - "statusesCustomDescription": "Alias con nombre sobre una categoría integrada. Los filtros, recuentos y tableros los tratan como su categoría.", + "statusesCustomDescription": "Alias con nombre sobre una categoría integrada. Los filtros, recuentos y tableros los tratan como su categoría", "statusNamePlaceholder": "Nombre del estado", "noCustomStatuses": "Aún no hay estados personalizados.", "statusArchive": "Archivar estado", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/es/sessions.json b/src/i18n/locales/es/sessions.json index d03355113e..dfda278855 100644 --- a/src/i18n/locales/es/sessions.json +++ b/src/i18n/locales/es/sessions.json @@ -896,10 +896,10 @@ "exportJson": "Exportar JSON", "importAction": "Importar Session", "exportDescription": "Exporta la Session activa como una instantánea JSON portátil", - "importDescription": "Importa una instantánea JSON de Session en la barra lateral.", + "importDescription": "Importa una instantánea JSON de Session en la barra lateral", "jsonSnapshotNote": "Las Sessions importadas son instantáneas de solo lectura y conservan el historial de eventos original", "chooseJson": "Elegir archivo JSON", - "chooseJsonHint": "Selecciona un archivo de exportación .orgii-session.json.", + "chooseJsonHint": "Selecciona un archivo de exportación .orgii-session.json", "loadingPreview": "Contando eventos de Session…", "noActiveSession": "No hay ninguna Session activa seleccionada.", "importedName": "Session importada: {{name}}", @@ -1908,7 +1908,7 @@ "start": "Iniciar", "missingGit": { "title": "Falta Git", - "body": "Git no está instalado o no se pudo encontrar. Pide a ADE Manager o a SDE Agent que instale Git en esta máquina y luego reinicia ORG2." + "body": "Git no está instalado o no se pudo encontrar. Pide a ADE Manager o a SDE Agent que instale Git en esta máquina y luego reinicia ORG2" }, "model": "Modelo", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "Archivado, pero no se pudo liberar {{count}} proceso. La eliminación sigue bloqueada.", "archiveTeardownQuiesced": "Archivado y detenido por completo. Ya se puede eliminar permanentemente.", "dangerZone": "Zona de peligro", - "deleteDescription": "Eliminar permanentemente este equipo, sus sesiones y su historial.", + "deleteDescription": "Eliminar permanentemente este equipo, sus sesiones y su historial", "deleteTeam": "Eliminar equipo", "deleteTitle": "¿Eliminar permanentemente este equipo?", "deleteWarning": "Esto elimina permanentemente todas las sesiones y el historial del equipo. No se puede deshacer.", diff --git a/src/i18n/locales/es/settings.json b/src/i18n/locales/es/settings.json index bf46c9f686..1b9f1620cc 100644 --- a/src/i18n/locales/es/settings.json +++ b/src/i18n/locales/es/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "Ocultar ORG2 durante el control del escritorio", - "hideBeforeActionHelper": "Oculta la ventana principal de ORG2 mientras Peekaboo opera y muestra la barra Wingman con una leyenda flotante para que el Agent no tenga que gestionar el foco.", + "hideBeforeActionHelper": "Oculta la ventana principal de ORG2 mientras Peekaboo opera y muestra la barra Wingman con una leyenda flotante para que el Agent no tenga que gestionar el foco", "antiDetection": "Refuerzo anti-automatización HID", - "antiDetectionHelper": "Hace que Peekaboo envíe eventos CGEvent (HID) reales para clics y pulsaciones en lugar de acciones de Accesibilidad puras, para que las apps con detección de automatización (p. ej. WeChat) tengan menos probabilidades de bloquear el control del escritorio.", + "antiDetectionHelper": "Hace que Peekaboo envíe eventos CGEvent (HID) reales para clics y pulsaciones en lugar de acciones de Accesibilidad puras, para que las apps con detección de automatización (p. ej. WeChat) tengan menos probabilidades de bloquear el control del escritorio", "humanInputProfile": "Cadencia de escritura humana", - "humanInputProfileHelper": "Aplica un perfil de tiempos similar al humano a las pulsaciones sintetizadas. Desactívalo para escribir a máxima velocidad.", + "humanInputProfileHelper": "Aplica un perfil de tiempos similar al humano a las pulsaciones sintetizadas. Desactívalo para escribir a máxima velocidad", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Falta: {{bins}}", "skillMissingEnv": "Faltan variables de entorno: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Estrategia de pull", "pullStrategyDesc": "Cómo git pull integra los cambios de remote al sincronizar", - "pullStrategyHint": "Rebase (predeterminado): Replays tus commits sobre remote. Crea linear history.\n\nMerge: Crea un merge commit cuando los branches han diverged. Preserva el history completo.\n\nFast-forward only: Solo permite pull cuando no se necesita merge. Rechaza si los branches han diverged.", + "pullStrategyHint": "Rebase (predeterminado): Replays tus commits sobre remote. Crea linear history.\n\nMerge: Crea un merge commit cuando los branches han diverged. Preserva el history completo.\n\nFast-forward only: Solo permite pull cuando no se necesita merge. Rechaza si los branches han diverged", "strategyMerge": "Merge", "strategyRebase": "Rebase (predeterminado)", "strategyFfOnly": "Solo Fast-forward (estricto)", @@ -602,7 +602,7 @@ "checkFailed": "Error al buscar actualizaciones", "checking": "Buscando actualizaciones…", "officialInstalled": "Aplicación oficial instalada", - "officialInstalledDesc": "{{version}} se ha instalado en {{path}}. Esta compilación local sigue funcionando sin cambios.", + "officialInstalledDesc": "{{version}} se ha instalado en {{path}}. Esta compilación local sigue funcionando sin cambios", "downloadFailed": "Error al descargar la actualización", "retryNow": "Reintentar ahora", "downloadTimeout": "La descarga agotó el tiempo de espera. Comprueba la red o el proxy y vuelve a intentarlo.", @@ -762,7 +762,7 @@ "tableVersion": "Versión", "tableStatus": "Estado", "installSection": "Instalar", - "installHintNote": "Comando de instalación sugerido para tu plataforma. La mayoría de las dependencias del sistema requieren privilegios de administrador, así que no las ejecutamos automáticamente — cópialo en tu terminal." + "installHintNote": "Comando de instalación sugerido para tu plataforma. La mayoría de las dependencias del sistema requieren privilegios de administrador, así que no las ejecutamos automáticamente — cópialo en tu terminal" }, "agentSessions": { "chatFontSize": "Tamaño de fuente del chat", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Activar Evolución para {{agentName}}", "noAgentsTitle": "No hay Agents disponibles", - "noAgentsSubtitle": "Crea o importa un Agent para configurar Evolución." + "noAgentsSubtitle": "Crea o importa un Agent para configurar Evolución" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/fr/common.json b/src/i18n/locales/fr/common.json index fae90b7389..30b66c971a 100644 --- a/src/i18n/locales/fr/common.json +++ b/src/i18n/locales/fr/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Créer un token", "openGitSettingsButton": "Ouvrir les paramètres", "configureInSettings": "Configurer Git dans les paramètres", - "configureInSettingsDesc": "Ajoutez l’accès GitHub App, enregistrez un token ou analysez les identifiants locaux dans Paramètres → Connexions, puis réessayez cette opération Git." + "configureInSettingsDesc": "Ajoutez l’accès GitHub App, enregistrez un token ou analysez les identifiants locaux dans Paramètres → Connexions, puis réessayez cette opération Git" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Impossible d’extraire le nom du dépôt depuis le remote origin", "authRequired": { "title": "Connecter GitHub", - "description": "Allez dans Paramètres → Connexions pour connecter votre compte GitHub." + "description": "Allez dans Paramètres → Connexions pour connecter votre compte GitHub" }, "navigationTrail": "Navigation dans la pull request", "failedToLoad": "Échec du chargement des pull requests", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Décrivez l’issue (facultatif)…", "authRequired": { "title": "Connecter GitHub", - "description": "Allez dans Paramètres → Connexions pour connecter votre compte GitHub." + "description": "Allez dans Paramètres → Connexions pour connecter votre compte GitHub" }, "reAuthRequired": "Autorisation GitHub requise", - "reAuthDescription": "Votre token GitHub a expiré. Allez dans Paramètres → Connexions pour vous reconnecter.", + "reAuthDescription": "Votre token GitHub a expiré. Allez dans Paramètres → Connexions pour vous reconnecter", "goToSettings": "Aller aux paramètres", "loadingTimeline": "Chargement de l’activité…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "Quitter ORG2 ?", - "subtitle": "Les sessions en cours conserveront leur état actuel. Vous pourrez rouvrir ORG2 plus tard.", + "subtitle": "Les sessions en cours conserveront leur état actuel. Vous pourrez rouvrir ORG2 plus tard", "cancel": "Annuler", "confirm": "Quitter" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari conserve ses cookies dans un dossier protégé par macOS. Autorisez ORG2 dans Accès complet au disque dans les Réglages Système, puis vérifiez à nouveau.", + "explain": "Safari conserve ses cookies dans un dossier protégé par macOS. Autorisez ORG2 dans Accès complet au disque dans les Réglages Système, puis vérifiez à nouveau", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/fr/integrations.json b/src/i18n/locales/fr/integrations.json index 1f60eb25a4..dd60caff97 100644 --- a/src/i18n/locales/fr/integrations.json +++ b/src/i18n/locales/fr/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "Supprimer local", "unlist": "Retirer de la liste", "confirmRemoveTitle": "Supprimer \"{{name}}\" ?", - "confirmRemoveMessage": "Cela supprimera les identifiants locaux. Cette action est irréversible.", + "confirmRemoveMessage": "Cela supprimera les identifiants locaux. Cette action est irréversible", "toasts": { "refreshed": "{{name}} actualisé avec succès", "refreshError": "Échec de l’actualisation de {{name}} : {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "E-mail du compte" }, "customModels": { - "manualSetupHint": "Ajoutez l’identifiant exact accepté par votre endpoint et un nom facultatif. La découverte est facultative ; activer un modèle ne vérifie pas sa compatibilité.", + "manualSetupHint": "Ajoutez l’identifiant exact accepté par votre endpoint et un nom facultatif. La découverte est facultative ; activer un modèle ne vérifie pas sa compatibilité", "modelNamePlaceholder": "Entrez l'id du modèle...", "displayNamePlaceholder": "Libellé optionnel", - "emptyHint": "Aucun modèle personnalisé ajouté.", + "emptyHint": "Aucun modèle personnalisé ajouté", "addModel": "Ajouter un modèle", "testRequiresEndpoint": "Saisissez un point de terminaison et une clé API pour tester ce modèle", "invalidModelId": "Les ID de modèle doivent faire de 1 à 256 octets, sans espaces ni caractères de contrôle.", @@ -145,7 +145,7 @@ "keysVerified": "Identifiants vérifiés", "failedMessage": "Votre API Key et Session Token ne semblent pas appartenir au même compte Cursor.", "failedError": "Erreur : {{error}}", - "failedHint": "Veuillez créer une nouvelle annonce avec des identifiants correspondants du même compte Cursor.", + "failedHint": "Veuillez créer une nouvelle annonce avec des identifiants correspondants du même compte Cursor", "listingRejected": "Annonce rejetée", "rejectedByAdmin": "Cette annonce a été rejetée par un administrateur." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "Utilisez le navigateur interne pour connecter votre compte Cursor.", "loggedIn": "Connecté", "loginStep": "Connexion", - "signInToCursorHint": "Connectez-vous à votre compte Cursor. Cette fenêtre se ferme automatiquement après la connexion.", + "signInToCursorHint": "Connectez-vous à votre compte Cursor. Cette fenêtre se ferme automatiquement après la connexion", "copilotCreatePat": "Créer un GitHub Personal Access Token", "copilotCreatePatDesc": "Ouvre le navigateur interne pour créer un PAT GitHub", "copilotTokenValidated": "Token validé", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Connexion Cursor", "modelCount": "{{count}} modèles", "cursorLoginReadyTitle": "Compte Cursor connecté", - "cursorLoginReadyDesc": "Générez et collez une clé API Cursor ci-dessous. Cursor agent ne fonctionnera pas sans cette clé API.", + "cursorLoginReadyDesc": "Générez et collez une clé API Cursor ci-dessous. Cursor agent ne fonctionnera pas sans cette clé API", "cursorApiKeyBrowserHint": "Après la connexion, ORG2 ouvre le dashboard Cursor. Générez-y une User API Key, puis collez-la ci-dessous", "cursorApiKeyRecommendedTitle": "Clé API Cursor recommandée", "cursorApiKeyRecommendedDesc": "Vous pouvez continuer sans clé API Cursor si vous voulez seulement utiliser Cursor avec les Rust agents d’ORG2 ; connectez-vous simplement avec le navigateur interne ou fournissez un token de session", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Le Gateway route les messages entrants de chaque canal. Choisissez une clé API et un modèle pour le routage sémantique.", + "description": "Le Gateway route les messages entrants de chaque canal. Choisissez une clé API et un modèle pour le routage sémantique", "statusReady": "Configuré", "statusUnconfigured": "Non configuré", "account": "Compte clé API", @@ -581,7 +581,7 @@ "model": "Modèle", "modelPlaceholder": "Sélectionner un modèle", "groupPerUser": "Isoler les sessions de discussion de groupe par utilisateur", - "groupPerUserDesc": "Chaque participant d'un groupe obtient son propre contexte de session." + "groupPerUserDesc": "Chaque participant d'un groupe obtient son propre contexte de session" }, "emailProtocol": "Protocole", "matrixDeviceNamePlaceholder": "Bot ORG2" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Ouvrez l’URL de vérification et saisissez ce code pour autoriser GitHub.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "Rien détecté", - "scanEmptyDesc": "Aucun token gh CLI, credential helper ou clé SSH trouvé. Choisissez une autre méthode ci-dessus.", + "scanEmptyDesc": "Aucun token gh CLI, credential helper ou clé SSH trouvé. Choisissez une autre méthode ci-dessus", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Identifiants détectés", - "scanResultsDesc": "Choisissez-en un à importer. Les tokens sont validés auprès de GitHub avant l’enregistrement.", + "scanResultsDesc": "Choisissez-en un à importer. Les tokens sont validés auprès de GitHub avant l’enregistrement", "scanSshKey": "Clé SSH — {{name}}", "scanning": "Analyse…", - "scanningDesc": "Recherche de tokens gh CLI, de credential helpers et de clés SSH sur cette machine.", + "scanningDesc": "Recherche de tokens gh CLI, de credential helpers et de clés SSH sur cette machine", "sshKeyPath": "Chemin de la clé SSH", "sshKeyPathDesc": "Chemin absolu vers la clé privée (ex. ~/.ssh/id_ed25519). La clé publique correspondante doit déjà être enregistrée sur GitHub.", "scanSelectRequired": "Choisissez un identifiant détecté à importer.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Changer le fournisseur Browser CLI nécessite de redémarrer ORG2 avant que les agents voient l'outil sélectionné. Redémarrer maintenant ?", "sidecarDownloadsSectionTitle": "Téléchargements de sidecars", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Télécharge le binaire Agent Browser pour cette plateforme dans ~/.orgii/bin. ORG2 ne le télécharge jamais au démarrage.", + "sidecarAgentBrowserDesc": "Télécharge le binaire Agent Browser pour cette plateforme dans ~/.orgii/bin. ORG2 ne le télécharge jamais au démarrage", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Télécharge le binaire macOS Peekaboo pour l’automatisation du bureau dans ~/.orgii/bin. Les plateformes non prises en charge restent désactivées.", + "sidecarPeekabooDesc": "Télécharge le binaire macOS Peekaboo pour l’automatisation du bureau dans ~/.orgii/bin. Les plateformes non prises en charge restent désactivées", "sidecarUnsupported": "Non pris en charge", "sidecarInstalled": "Installé", "sidecarNotInstalled": "Non installé", @@ -874,7 +874,7 @@ "connectMethodDesc": "Choisissez comment connecter votre compte GitHub", "githubApp": "GitHub App", "detectFromSystem": "Détecter du système", - "detectFromSystemDesc": "Utilisez gh CLI, des clés SSH ou les helpers d'identifiants Git.", + "detectFromSystemDesc": "Utilisez gh CLI, des clés SSH ou les helpers d'identifiants Git", "credentialsDetected": "Identifiants détectés", "detectedVia": "Détecté via {{source}}", "sshKeyLabel": "Clé SSH", @@ -894,7 +894,7 @@ "noCredentialsFound": "Aucun identifiant GitHub trouvé", "noCredentialsHint": "Installez la CLI GitHub (gh) ou configurez des clés SSH pour la détection locale", "manuallyAddToken": "Ajouter un token manuellement", - "manualTokenDesc": "Collez un GitHub PAT pour les opérations Git HTTPS.", + "manualTokenDesc": "Collez un GitHub PAT pour les opérations Git HTTPS", "autoDetect": "Détection automatique", "autoDetectTokenSaved": "Token GitHub enregistré", "autoDetectSshSwitched": "Remote basculé vers SSH", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Ajouter {{name}} <{{email}}> aux commits Git créés depuis ORG2", "noTokenYet": "Besoin d’un Token ?", - "createTokenDesc": "Ouvrez GitHub et créez un PAT avec l’accès repo.", + "createTokenDesc": "Ouvrez GitHub et créez un PAT avec l’accès repo", "accountConnected": "Compte GitHub connecté", "disconnectMsg": "Êtes-vous sûr de vouloir déconnecter ? Cela supprimera l'accès à tous les dépôts de ce compte.", "disconnectTitle": "Déconnecter le compte GitHub", @@ -929,7 +929,7 @@ "connectRepoDesc": "Connectez un compte GitHub pour accéder aux dépôts", "github": "GitHub", "signInWithGithub": "Se connecter avec GitHub", - "signInWithGithubDesc": "Autorisez ORG2 via le flux d'appareil de GitHub. Aucun hébergement de serveur requis.", + "signInWithGithubDesc": "Autorisez ORG2 via le flux d'appareil de GitHub. Aucun hébergement de serveur requis", "oauthWaiting": "En attente d'autorisation", "oauthDeviceCodeDesc": "Ouvrez l'URL ci-dessous et entrez ce code", "oauthOpenGithub": "Ouvrir GitHub", @@ -985,7 +985,7 @@ "filePathPlaceholder": "ex. scripts/validate.py", "removeFile": "Supprimer le fichier", "editorNoDraftTitle": "Aucun brouillon de Skill en cours", - "editorNoDraftDesc": "Commencez par cliquer sur Créer dans la page Skills, ou sélectionnez un Skill à modifier.", + "editorNoDraftDesc": "Commencez par cliquer sur Créer dans la page Skills, ou sélectionnez un Skill à modifier", "scopeWorkspace": "Spécifique au repo", "deleteConfirmTitle": "Supprimer le skill « {{name}} » ?", "deleteConfirmMessage": "Cette action supprimera le skill et tous ses fichiers. Elle est irréversible." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "Rechercher les serveurs MCP...", "noServers": "Aucun serveur MCP configuré", - "noServersDesc": "Ajoutez un serveur MCP pour étendre les capacités de l'agent avec des outils externes.", + "noServersDesc": "Ajoutez un serveur MCP pour étendre les capacités de l'agent avec des outils externes", "addServer": "Ajouter un serveur MCP", "editServer": "Modifier le serveur MCP", "serverName": "Nom du serveur", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "Hooks de provenance", - "masterToggleDesc": "Lorsque cette option est désactivée, tous les hooks gérés sont désinstallés et aucun signal n’est collecté ; les choix par plateforme sont conservés et restaurés à la réactivation.", + "masterToggleDesc": "Lorsque cette option est désactivée, tous les hooks gérés sont désinstallés et aucun signal n’est collecté ; les choix par plateforme sont conservés et restaurés à la réactivation", "liveStatusToggle": "Statut des agents en direct", - "liveStatusToggleDesc": "Indique si les agents CLI actifs travaillent ou attendent. La désactivation conserve la capture de provenance.", + "liveStatusToggleDesc": "Indique si les agents CLI actifs travaillent ou attendent. La désactivation conserve la capture de provenance", "title": "Traçabilité des sessions", "capture": "Enregistrer les interactions avec les fichiers", - "description": "Enregistre les lectures et écritures de fichiers sous forme de métadonnées. Les prompts, les sorties d’outils et le contenu des fichiers ne sont pas stockés.", + "description": "Enregistre les lectures et écritures de fichiers sous forme de métadonnées. Les prompts, les sorties d’outils et le contenu des fichiers ne sont pas stockés", "installDrift": "La préférence enregistrée et le hook installé diffèrent. Basculez la capture pour réparer le hook géré. Configuration : {{path}}", "copyPath": "Copier", "col": { @@ -1185,7 +1185,7 @@ "addMember": "Ajouter un Membre", "noMembers": "Ajoutez des membres pour construire la hiérarchie de votre org", "membersLabel": "Membres de l'équipe", - "membersDesc": "Chaque ligne est un membre avec une autorisation Writer et des réglages de communication indépendants. Les noms doivent être uniques ; le rôle décrit uniquement la spécialité.", + "membersDesc": "Chaque ligne est un membre avec une autorisation Writer et des réglages de communication indépendants. Les noms doivent être uniques ; le rôle décrit uniquement la spécialité", "memberName": "Nom", "memberNamePlaceholder": "Nom de routage unique (ex. SDE-1)", "memberNameDuplicate": "Un autre membre utilise déjà ce nom. Les noms doivent être uniques dans l'organisation.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "Que fait cet agent ? (optionnel)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Appels d'outils simultanés par message. Par défaut : 10.", + "maxToolUseConcurrencyDesc": "Appels d'outils simultanés par message. Par défaut : 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "Exécuter dans un Git Worktree temporaire (accès fichiers et Shell isolés).", + "subAgentWorktreeIsolationDesc": "Exécuter dans un Git Worktree temporaire (accès fichiers et Shell isolés)", "addSubAgent": "Ajouter un Sub-Agent...", "noSubAgents": "Aucun sub-agent configuré." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "À quels agents cette règle s'applique (laissez vide pour tous)", "selectAgents": "Sélectionner des agents…", "ruleSource": "Source", - "ruleSourceDesc": "Choisissez User pour tous les repos ou Repo pour une consigne propre à un repo.", + "ruleSourceDesc": "Choisissez User pour tous les repos ou Repo pour une consigne propre à un repo", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Une préférence utilisateur disponible dans tous les repos.", + "ruleSourceUserDesc": "Une préférence utilisateur disponible dans tous les repos", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Une consigne enregistrée pour un seul repo sélectionné.", + "ruleSourceRepoDesc": "Une consigne enregistrée pour un seul repo sélectionné", "ruleRepo": "Repo", "ruleRepoDesc": "Le seul repo auquel cette consigne s'applique", "selectRepo": "Sélectionner un repo…", "ruleSourcePersonal": "Personnel", - "ruleSourcePersonalDesc": "Stocké dans ~/.orgii/personal/rules/. Sessions OS Agent / channel uniquement.", + "ruleSourcePersonalDesc": "Stocké dans ~/.orgii/personal/rules/. Sessions OS Agent / channel uniquement", "findSkills": { "title": "Rechercher des Skills", "placeholder": "Rechercher des Skills...", "installs": "Installs", "emptyTitle": "Rechercher des Skills", - "emptySubtitle": "Saisissez au moins 2 caractères, puis appuyez sur Entrée pour trouver des Skills.", + "emptySubtitle": "Saisissez au moins 2 caractères, puis appuyez sur Entrée pour trouver des Skills", "noResults": "Aucun Skill trouvé", - "noResultsDesc": "Essayez un autre terme de recherche." + "noResultsDesc": "Essayez un autre terme de recherche" }, "importAgentTitle": "Importer des Agents depuis d’autres apps", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "Sélectionnez un membre ou une Équipe Agent", - "emptySelectionSubtitle": "Choisissez un Agent ou une Équipe Agent dans la barre latérale pour l’afficher et la configurer.", + "emptySelectionSubtitle": "Choisissez un Agent ou une Équipe Agent dans la barre latérale pour l’afficher et la configurer", "applicableWorkspace": "Workspace applicable", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "Bascule de config CLI", "modeLabel": "Mode", - "modeDesc": "Par défaut restaure la config propre du CLI. Géré par ORG2 écrit une config proxy sauvegardée au préalable.", + "modeDesc": "Par défaut restaure la config propre du CLI. Géré par ORG2 écrit une config proxy sauvegardée au préalable", "modeDefault": "Par défaut", "modeOrgii": "Géré par ORG2", "conflict": "Modification externe", "conflictTitle": "Conflit", - "conflictDesc": "La config CLI active a changé après son écriture par ORG2.", + "conflictDesc": "La config CLI active a changé après son écriture par ORG2", "proxyStatus": "Proxy", "proxyDefault": "Mode par défaut", "proxyReady": "Proxy prêt", "proxyNotReady": "Proxy non prêt", "keyLabel": "Key", - "keyDesc": "Seules les API Keys compatibles avec ce CLI et le proxy géré sont affichées.", + "keyDesc": "Seules les API Keys compatibles avec ce CLI et le proxy géré sont affichées", "selectKey": "Sélectionner une key", "modelLabel": "Modèle", "selectModel": "Sélectionner un modèle", @@ -1356,7 +1356,7 @@ "forceRestore": "Forcer la restauration", "applySuccess": "Config gérée par ORG2 appliquée", "restoreSuccess": "Config par défaut restaurée", - "proxyLifecycleDesc": "Laissez ORG2 ouvert tant que vous utilisez ce mode. Fermer la fenêtre garde le proxy dans la barre d’état ; quitter ORG2 restaure le mode Par défaut en toute sécurité, sauf si la config a été modifiée en externe." + "proxyLifecycleDesc": "Laissez ORG2 ouvert tant que vous utilisez ce mode. Fermer la fenêtre garde le proxy dans la barre d’état ; quitter ORG2 restaure le mode Par défaut en toute sécurité, sauf si la config a été modifiée en externe" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Durée totale : {{value}}s" }, "title": "Housekeeper résident", - "description": "MiniCPM en local gère le polissage des prompts, les courtes explications d’étapes et le contrôle léger de l’UI. Les tâches de codage et la configuration ADE complexe utilisent toujours le modèle agent principal.", + "description": "MiniCPM en local gère le polissage des prompts, les courtes explications d’étapes et le contrôle léger de l’UI. Les tâches de codage et la configuration ADE complexe utilisent toujours le modèle agent principal", "autoAccount": "Sélectionner automatiquement le compte vLLM MiniCPM", "tiles": { "model": "Modèle", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Activer le housekeeper", - "description": "Lorsqu’il est désactivé, le polissage des prompts, les explications d’étapes et le contrôle léger de l’UI n’utiliseront pas MiniCPM." + "description": "Lorsqu’il est désactivé, le polissage des prompts, les explications d’étapes et le contrôle léger de l’UI n’utiliseront pas MiniCPM" }, "account": { "title": "Compte vLLM MiniCPM", - "description": "Réutilise un compte vllm_api existant du KeyVault ; aucun stockage d’identifiants séparé n’est créé." + "description": "Réutilise un compte vllm_api existant du KeyVault ; aucun stockage d’identifiants séparé n’est créé" }, "model": { "title": "ID du modèle", - "description": "Docker vLLM MiniCPM5-1B utilise openbmb/MiniCPM5-1B par défaut." + "description": "Docker vLLM MiniCPM5-1B utilise openbmb/MiniCPM5-1B par défaut" }, "context": { "title": "Budget de contexte sûr", - "description": "Utiliser un budget prudent de 10000 tokens sur les GPU 4 Go plutôt que de se fier à la limite théorique de 32k." + "description": "Utiliser un budget prudent de 10000 tokens sur les GPU 4 Go plutôt que de se fier à la limite théorique de 32k" } }, "features": { "promptPolish": { "title": "Polissage des prompts", - "description": "Polir manuellement l’entrée avant de l’envoyer au modèle de codage plus puissant." + "description": "Polir manuellement l’entrée avant de l’envoyer au modèle de codage plus puissant" }, "stepExplain": { "title": "Explications des étapes de l’Agent", - "description": "Générer une ou deux courtes explications en chinois pour les étapes de relecture de session." + "description": "Générer une ou deux courtes explications en chinois pour les étapes de relecture de session" }, "uiControl": { "title": "Contrôle léger ADE/UI", - "description": "MiniCPM ne peut que classer les requêtes dans une liste blanche stricte d’actions locales." + "description": "MiniCPM ne peut que classer les requêtes dans une liste blanche stricte d’actions locales" }, "contextCompact": { "title": "Maintenance automatique du contexte", - "description": "Laisser MiniCPM maintenir un résumé glissant isolé du contexte ancien pendant que les sessions activées sont inactives." + "description": "Laisser MiniCPM maintenir un résumé glissant isolé du contexte ancien pendant que les sessions activées sont inactives" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Partager avec l’organisation", "share": "Partager", "sharedToOrg": "Skill partagé avec l’organisation", - "shareToOrgHint": "Les membres de l’organisation reçoivent l’instantané actuel de ce skill ; partagez à nouveau après modification pour publier une mise à jour.", + "shareToOrgHint": "Les membres de l’organisation reçoivent l’instantané actuel de ce skill ; partagez à nouveau après modification pour publier une mise à jour", "shareOrgPlaceholder": "Organisation" } } diff --git a/src/i18n/locales/fr/navigation.json b/src/i18n/locales/fr/navigation.json index fe10fc3406..a06e46b6f3 100644 --- a/src/i18n/locales/fr/navigation.json +++ b/src/i18n/locales/fr/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "Le modèle {{model}} du propriétaire n'est pas disponible avec vos clés — ce fork utilisera {{fallback}} à la place.", "forkModelUnavailable": "Le modèle {{model}} du propriétaire n'est pas disponible avec vos clés — choisissez un modèle avant d'exécuter ce fork.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Annuler", "deleteRoleOk": "Supprimer", "deleteRoleTitle": "Supprimer le rôle ?", - "followUpSuggestionsDesc": "Suggérer de possibles prochaines étapes après un tour d’élément de travail terminé. Cela utilise une requête modèle supplémentaire.", + "followUpSuggestionsDesc": "Suggérer de possibles prochaines étapes après un tour d’élément de travail terminé. Cela utilise une requête modèle supplémentaire", "followUpSuggestionsLabel": "Suggestions de suite de l’Agent", - "goalMaxTurnsDesc": "Continuer à travailler sur ma dernière demande pendant jusqu’à N tours supplémentaires après le moment où l’agent s’arrêterait normalement (0 = désactivé).", + "goalMaxTurnsDesc": "Continuer à travailler sur ma dernière demande pendant jusqu’à N tours supplémentaires après le moment où l’agent s’arrêterait normalement (0 = désactivé)", "goalMaxTurnsLabel": "Budget de poursuite de l’objectif", "guidanceLabel": "Consignes pour l’Agent", "guidancePlaceholder": "Comment l’agent doit-il adapter son comportement quand ce rôle est actif ?", - "modeSwitchAutoPlanDesc": "Basculer automatiquement les suggestions de mode Plan en attente à l’expiration de leur délai de confirmation.", + "modeSwitchAutoPlanDesc": "Basculer automatiquement les suggestions de mode Plan en attente à l’expiration de leur délai de confirmation", "modeSwitchAutoPlanLabel": "Plan automatique au changement de mode", "newRoleDefaultLabel": "Rôle personnalisé", - "pageDescription": "Définissez le rôle que vous jouez en ce moment. L’agent lit les consignes du rôle actif et adapte son comportement en conséquence — par exemple en posant moins de questions de clarification quand vous êtes concentré, ou en regroupant les résumés quand vous êtes absent.", + "pageDescription": "Définissez le rôle que vous jouez en ce moment. L’agent lit les consignes du rôle actif et adapte son comportement en conséquence — par exemple en posant moins de questions de clarification quand vous êtes concentré, ou en regroupant les résumés quand vous êtes absent", "pageTitle": "Mes rôles", - "planAutoApproveDesc": "Approuver automatiquement les plans en attente après N secondes (0 = m’attendre).", + "planAutoApproveDesc": "Approuver automatiquement les plans en attente après N secondes (0 = m’attendre)", "planAutoApproveLabel": "Approbation automatique des plans", - "questionAutoSkipDesc": "Ignorer automatiquement les questions de l’agent en attente après N secondes (0 = m’attendre).", + "questionAutoSkipDesc": "Ignorer automatiquement les questions de l’agent en attente après N secondes (0 = m’attendre)", "questionAutoSkipLabel": "Saut automatique des questions", "roleNameLabel": "Nom", "roleNamePlaceholder": "Nom du rôle", "stanceAutonomous": "Autonome — ne jamais m’attendre", "stanceDeferAndBatch": "Différer et regrouper — travailler d’abord, demander ensuite", - "stanceDesc": "Comment l’agent gère les décisions bloquantes quand ce rôle est actif.", + "stanceDesc": "Comment l’agent gère les décisions bloquantes quand ce rôle est actif", "stanceInteractive": "Interactif — me demander librement", "stanceLabel": "Posture de comportement" }, diff --git a/src/i18n/locales/fr/onboarding.json b/src/i18n/locales/fr/onboarding.json index 5649c19e42..04de22fcfc 100644 --- a/src/i18n/locales/fr/onboarding.json +++ b/src/i18n/locales/fr/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Visite générale de la présentation", - "description": "Découvrez le panneau de discussion, Runtime, le sélecteur de mode et le dock.", + "description": "Découvrez le panneau de discussion, Runtime, le sélecteur de mode et le dock", "duration": "1 minute", "steps": { "chat-panel": { "title": "Panneau de discussion", - "body": "C'est ici que les utilisateurs discutent avec les agents, examinent leurs activités et envoient des instructions de suivi." + "body": "C'est ici que les utilisateurs discutent avec les agents, examinent leurs activités et envoient des instructions de suivi" }, "runtime": { "title": "Exécution", - "body": "Consultez ici votre utilisation et l’état d’exécution. Dans un espace de travail, vous pouvez aussi vérifier la synchronisation des membres et ouvrir leurs détails d’utilisation de Codex, Claude et Cursor." + "body": "Consultez ici votre utilisation et l’état d’exécution. Dans un espace de travail, vous pouvez aussi vérifier la synchronisation des membres et ouvrir leurs détails d’utilisation de Codex, Claude et Cursor" }, "station-mode-pill": { "title": "Changer de station modes", - "body": "Utilisez cette pilule pour changer de mode de station. Bureau signifie Ma Station, votre espace de travail. Infinity signifie Agent Station, la vue de l'activité de l'agent." + "body": "Utilisez cette pilule pour changer de mode de station. Bureau signifie Ma Station, votre espace de travail. Infinity signifie Agent Station, la vue de l'activité de l'agent" }, "dock": { "title": "Dock Agent Station", - "body": "Le dock change d'application à l'intérieur de la station. La visite guidée désactive temporairement le masquage automatique afin que ces contrôles restent visibles." + "body": "Le dock change d'application à l'intérieur de la station. La visite guidée désactive temporairement le masquage automatique afin que ces contrôles restent visibles" } } }, "codeEditor": { "title": "Visite de l'éditeur de code", - "description": "Découvrez les onglets, l’espace de travail de l’éditeur, le contrôle de source et l’historique Git.", + "description": "Découvrez les onglets, l’espace de travail de l’éditeur, le contrôle de source et l’historique Git", "duration": "2 minutes", "steps": { "tabs": { "title": "Onglets de l'éditeur de code", - "body": "Les onglets collectent les fichiers, les différences, les terminaux, les vues de contrôle de source et les tableaux de bord que vous ouvrez lorsque vous travaillez. le dépôt." + "body": "Les onglets collectent les fichiers, les différences, les terminaux, les vues de contrôle de source et les tableaux de bord que vous ouvrez lorsque vous travaillez. le dépôt" }, "editor-surface": { "title": "Espace de travail de l'éditeur", - "body": "Il s'agit de la surface principale de l'éditeur de code. Ouvrez les fichiers, inspectez les différences, exécutez les terminaux et examinez les modifications générées ici." + "body": "Il s'agit de la surface principale de l'éditeur de code. Ouvrez les fichiers, inspectez les différences, exécutez les terminaux et examinez les modifications générées ici" }, "create-tabs": { "title": "Créez de nouveaux onglets", - "body": "Utilisez le menu plus dans Tous les onglets pour créer des terminaux, des onglets de navigateur, des fichiers, des tableaux de bord et des utilitaires de dépôt." + "body": "Utilisez le menu plus dans Tous les onglets pour créer des terminaux, des onglets de navigateur, des fichiers, des tableaux de bord et des utilitaires de dépôt" }, "source-control": { "title": "Modifications Git", - "body": "Contrôle Open Source pour examiner les fichiers modifiés, organiser ou annuler le travail, valider, extraire, pousser, récupérer et synchroniser. avec la télécommande." + "body": "Contrôle Open Source pour examiner les fichiers modifiés, organiser ou annuler le travail, valider, extraire, pousser, récupérer et synchroniser. avec la télécommande" }, "git-history": { "title": "Historique Git", - "body": "L'historique Git fait passer le contrôle de source en mode historique des validations afin que vous puissiez inspecter les validations précédentes et les modifications associées." + "body": "L'historique Git fait passer le contrôle de source en mode historique des validations afin que vous puissiez inspecter les validations précédentes et les modifications associées" } } } @@ -68,6 +68,6 @@ "getStarted": "Bien démarrer", "newFeatures": "Nouveautés", "branchesTitle": "Branches du dépôt", - "branchesDescription": "Changez de branche de dépôt directement depuis Spotlight." + "branchesDescription": "Changez de branche de dépôt directement depuis Spotlight" } } diff --git a/src/i18n/locales/fr/projects.json b/src/i18n/locales/fr/projects.json index 7405b1118e..d0a56cd072 100644 --- a/src/i18n/locales/fr/projects.json +++ b/src/i18n/locales/fr/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Chargement des connexions GitHub...", "noConnectionTitle": "Aucune connexion GitHub trouvée", - "noConnectionDescription": "Ajoutez d'abord une connexion GitHub dans Integrations, puis revenez ici pour importer GitHub Issues.", + "noConnectionDescription": "Ajoutez d'abord une connexion GitHub dans Integrations, puis revenez ici pour importer GitHub Issues", "linkedRepoHint": "Ce Project sera aussi lié au repo du Workspace actuel : {{repoName}}", "errors": { "invalidRepo": "Utilisez owner/repo ou une URL de dépôt GitHub." @@ -80,7 +80,7 @@ "importLinearOrgs": "Importer des espaces de travail Linear", "gitFolderPath": "Chemin du dossier Git (facultatif)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Liez cet espace de travail à un arbre de travail Git existant pour la synchronisation de dossier.", + "gitFolderPathHint": "Liez cet espace de travail à un arbre de travail Git existant pour la synchronisation de dossier", "gitFolderBadge": "Git", "gitFolderSynced": "Synchronisé avec un dossier Git", "pendingSync": "Synchronisation en attente", @@ -123,7 +123,7 @@ "addTeams": "Ajouter des équipes", "addLabels": "Ajouter des étiquettes", "addRepos": "Lier des dépôts", - "noReposHint": "Aucun dépôt disponible. Ajoutez d'abord un dépôt au workspace.", + "noReposHint": "Aucun dépôt disponible. Ajoutez d'abord un dépôt au workspace", "addDate": "Ajouter une date", "clearDate": "Effacer la date", "noStatus": "Aucun statut", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "Aucun changement de fichier", - "fileDiffCleanHint": "Aucun changement détecté.", + "fileDiffCleanHint": "Aucun changement détecté", "costSummary": "Résumé des coûts", "totalCost": "Total", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Voir les Work Items", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "S'applique à {{count}} éléments sélectionnés." + "hint": "S'applique à {{count}} éléments sélectionnés" }, "batchStatus": { "title": "Définir le statut" @@ -457,7 +457,7 @@ "save": "Enregistrer la vue actuelle", "saveTitle": "Enregistrer la vue", "namePlaceholder": "Nom de la vue", - "saveHint": "Capture les filtres actuels ; la disposition sert à la première ouverture.", + "saveHint": "Capture les filtres actuels ; la disposition sert à la première ouverture", "delete": "Supprimer la vue" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Définir la propriété", - "hint": "Applique une valeur de propriété à {{count}} éléments sélectionnés. Laissez la valeur vide pour l’effacer.", + "hint": "Applique une valeur de propriété à {{count}} éléments sélectionnés. Laissez la valeur vide pour l’effacer", "propertyPlaceholder": "Propriété", "valuePlaceholder": "Valeur", "applied": "{{count}} éléments mis à jour" }, "revisionConflict": { "title": "Résoudre le conflit de modification", - "description": "{{field}} a changé après la révision {{expected}}. Comparez votre modification avec la révision {{actual}}, puis choisissez la version à conserver.", + "description": "{{field}} a changé après la révision {{expected}}. Comparez votre modification avec la révision {{actual}}, puis choisissez la version à conserver", "mine": "Ma version", "latest": "Dernière version", "useLatest": "Utiliser la dernière", @@ -573,7 +573,7 @@ "sidebarSync": "Synchronisation", "sync": { "title": "Synchronisation externe", - "description": "Reflétez les éléments de travail de ce Project vers un système externe comme Linear ou GitHub.", + "description": "Reflétez les éléments de travail de ce Project vers un système externe comme Linear ou GitHub", "adapterPicker": { "title": "Adaptateur", "notAttached": "Non attaché", @@ -582,7 +582,7 @@ "changeWarning": "Détachez l'adaptateur actuel avant d'en attacher un nouveau.", "detachProjectMenuLabel": "Dissocier GitHub", "detachProjectTitle": "Dissocier GitHub de {{project}} ?", - "detachProjectDescription": "La synchronisation des GitHub Issues s’arrêtera. Le project local et les éléments de travail importés resteront dans ORG2.", + "detachProjectDescription": "La synchronisation des GitHub Issues s’arrêtera. Le project local et les éléments de travail importés resteront dans ORG2", "detachProjectAction": "Dissocier GitHub de {{project}}", "detachProjectSuccess": "GitHub dissocié de {{project}}" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Chargement du statut du webhook…", - "notInstalledDescription": "Installez un secret webhook pour permettre à ce fournisseur de pousser les changements directement, sans attendre le prochain sondage.", + "notInstalledDescription": "Installez un secret webhook pour permettre à ce fournisseur de pousser les changements directement, sans attendre le prochain sondage", "install": "Installer le webhook", - "installedDescription": "Collez l'URL dans la configuration webhook de votre fournisseur et utilisez le secret ci-dessous pour signer les livraisons.", + "installedDescription": "Collez l'URL dans la configuration webhook de votre fournisseur et utilisez le secret ci-dessous pour signer les livraisons", "indicatorFresh": "Livraison récente", "indicatorStale": "Aucune livraison récente", "lastDeliveryNever": "Aucune livraison", @@ -627,7 +627,7 @@ "copyUrl": "Copier l'URL", "rotate": "Renouveler le secret", "secretTitle": "Copiez ce secret maintenant — il ne sera plus affiché", - "secretDescription": "Collez ce secret de signature dans la configuration webhook de votre fournisseur. Nous ne stockons pas la valeur en clair une fois ce panneau fermé.", + "secretDescription": "Collez ce secret de signature dans la configuration webhook de votre fournisseur. Nous ne stockons pas la valeur en clair une fois ce panneau fermé", "copySecret": "Copier le secret", "dismissSecret": "Je l'ai sauvegardé", "secretCopied": "Secret copié dans le presse-papiers", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Statuts", "statusesBuiltin": "Statuts intégrés", - "statusesBuiltinDescription": "Les catégories de workflow standard. Toujours disponibles.", + "statusesBuiltinDescription": "Les catégories de workflow standard. Toujours disponibles", "statusesCustom": "Statuts personnalisés", - "statusesCustomDescription": "Alias nommés d’une catégorie intégrée. Les filtres, les compteurs et les tableaux les traitent comme leur catégorie.", + "statusesCustomDescription": "Alias nommés d’une catégorie intégrée. Les filtres, les compteurs et les tableaux les traitent comme leur catégorie", "statusNamePlaceholder": "Nom du statut", "noCustomStatuses": "Aucun statut personnalisé pour le moment.", "statusArchive": "Archiver le statut", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/fr/sessions.json b/src/i18n/locales/fr/sessions.json index 16640c4aa3..0388fae02f 100644 --- a/src/i18n/locales/fr/sessions.json +++ b/src/i18n/locales/fr/sessions.json @@ -896,10 +896,10 @@ "exportJson": "Exporter en JSON", "importAction": "Importer une Session", "exportDescription": "Exportez la Session active sous forme d'instantané JSON portable", - "importDescription": "Importez un instantané JSON de Session dans la barre latérale.", + "importDescription": "Importez un instantané JSON de Session dans la barre latérale", "jsonSnapshotNote": "Les Sessions importées sont des instantanés en lecture seule et conservent l'historique d'événements original", "chooseJson": "Choisir un fichier JSON", - "chooseJsonHint": "Sélectionnez un fichier d'export .orgii-session.json.", + "chooseJsonHint": "Sélectionnez un fichier d'export .orgii-session.json", "loadingPreview": "Comptage des événements de Session…", "noActiveSession": "Aucune Session active sélectionnée.", "importedName": "Session importée : {{name}}", @@ -1908,7 +1908,7 @@ "start": "Démarrer", "missingGit": { "title": "Git est manquant", - "body": "Git n’est pas installé ou est introuvable. Demandez à ADE Manager ou à SDE Agent d’installer Git sur cette machine, puis redémarrez ORG2." + "body": "Git n’est pas installé ou est introuvable. Demandez à ADE Manager ou à SDE Agent d’installer Git sur cette machine, puis redémarrez ORG2" }, "model": "Modèle", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "Archivée, mais {{count}} processus n’a pas pu être libéré. La suppression reste bloquée.", "archiveTeardownQuiesced": "Archivée et complètement arrêtée. La suppression définitive est maintenant disponible.", "dangerZone": "Zone dangereuse", - "deleteDescription": "Supprimer définitivement cette équipe, toutes ses sessions et son historique.", + "deleteDescription": "Supprimer définitivement cette équipe, toutes ses sessions et son historique", "deleteTeam": "Supprimer l’équipe", "deleteTitle": "Supprimer définitivement cette équipe ?", "deleteWarning": "Toutes les sessions et l’historique de l’équipe seront définitivement supprimés. Cette action est irréversible.", diff --git a/src/i18n/locales/fr/settings.json b/src/i18n/locales/fr/settings.json index 54285bfd39..c092cef39c 100644 --- a/src/i18n/locales/fr/settings.json +++ b/src/i18n/locales/fr/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "Masquer ORG2 pendant le contrôle du bureau", - "hideBeforeActionHelper": "Masque la fenêtre principale ORG2 pendant que Peekaboo agit, et affiche la barre Wingman avec une légende flottante afin que l’Agent n’ait pas à gérer le focus.", + "hideBeforeActionHelper": "Masque la fenêtre principale ORG2 pendant que Peekaboo agit, et affiche la barre Wingman avec une légende flottante afin que l’Agent n’ait pas à gérer le focus", "antiDetection": "Renforcement anti-automatisation HID", - "antiDetectionHelper": "Fait envoyer à Peekaboo de véritables événements CGEvent (HID) pour les clics et les frappes au lieu de simples actions d’Accessibilité, afin que les applications avec détection d’automatisation (p. ex. WeChat) soient moins susceptibles de bloquer le contrôle du bureau.", + "antiDetectionHelper": "Fait envoyer à Peekaboo de véritables événements CGEvent (HID) pour les clics et les frappes au lieu de simples actions d’Accessibilité, afin que les applications avec détection d’automatisation (p. ex. WeChat) soient moins susceptibles de bloquer le contrôle du bureau", "humanInputProfile": "Cadence de frappe humaine", - "humanInputProfileHelper": "Applique un profil de minutage proche de l’humain aux frappes synthétisées. Désactivez pour taper à vitesse maximale.", + "humanInputProfileHelper": "Applique un profil de minutage proche de l’humain aux frappes synthétisées. Désactivez pour taper à vitesse maximale", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Manquant : {{bins}}", "skillMissingEnv": "Variables d'env manquantes : {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Stratégie de pull", "pullStrategyDesc": "Comment git pull intègre les changements de remote lors de la synchronisation", - "pullStrategyHint": "Rebase (par défaut) : Replays vos commits sur remote. Crée un linear history.\n\nMerge : Crée un merge commit quand les branches ont diverged. Préserve le history complet.\n\nFast-forward only : N'autorise le pull que lorsqu'aucun merge n'est nécessaire. Refuse si les branches ont diverged.", + "pullStrategyHint": "Rebase (par défaut) : Replays vos commits sur remote. Crée un linear history.\n\nMerge : Crée un merge commit quand les branches ont diverged. Préserve le history complet.\n\nFast-forward only : N'autorise le pull que lorsqu'aucun merge n'est nécessaire. Refuse si les branches ont diverged", "strategyMerge": "Merge", "strategyRebase": "Rebase (par défaut)", "strategyFfOnly": "Fast-forward uniquement (strict)", @@ -602,7 +602,7 @@ "checkFailed": "Échec de la recherche de mises à jour", "checking": "Recherche de mises à jour…", "officialInstalled": "Application officielle installée", - "officialInstalledDesc": "La version {{version}} est installée dans {{path}}. Cette build locale continue de fonctionner sans modification.", + "officialInstalledDesc": "La version {{version}} est installée dans {{path}}. Cette build locale continue de fonctionner sans modification", "downloadFailed": "Échec du téléchargement de la mise à jour", "retryNow": "Réessayer maintenant", "downloadTimeout": "Le téléchargement a expiré. Vérifiez votre réseau ou proxy, puis réessayez.", @@ -762,7 +762,7 @@ "tableVersion": "Version", "tableStatus": "Statut", "installSection": "Installer", - "installHintNote": "Commande d'installation suggérée pour votre plateforme. La plupart des dépendances système nécessitent des privilèges administrateur, nous ne les lançons donc pas automatiquement — copiez-la dans votre terminal." + "installHintNote": "Commande d'installation suggérée pour votre plateforme. La plupart des dépendances système nécessitent des privilèges administrateur, nous ne les lançons donc pas automatiquement — copiez-la dans votre terminal" }, "agentSessions": { "chatFontSize": "Taille de police du chat", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Activer l’évolution pour {{agentName}}", "noAgentsTitle": "Aucun Agent disponible", - "noAgentsSubtitle": "Créez ou importez un Agent pour configurer l’évolution." + "noAgentsSubtitle": "Créez ou importez un Agent pour configurer l’évolution" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/ja/common.json b/src/i18n/locales/ja/common.json index 4f04287f2a..257eacb59d 100644 --- a/src/i18n/locales/ja/common.json +++ b/src/i18n/locales/ja/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Token を作成", "openGitSettingsButton": "設定を開く", "configureInSettings": "設定で Git を構成", - "configureInSettingsDesc": "設定 → 接続 で GitHub App アクセスの追加、token の保存、またはローカル認証情報のスキャンを行い、その後この Git 操作を再試行してください。" + "configureInSettingsDesc": "設定 → 接続 で GitHub App アクセスの追加、token の保存、またはローカル認証情報のスキャンを行い、その後この Git 操作を再試行してください" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "origin リモートからリポジトリ名を解析できませんでした", "authRequired": { "title": "GitHub を接続", - "description": "設定 → 接続で GitHub アカウントを接続してください。" + "description": "設定 → 接続で GitHub アカウントを接続してください" }, "navigationTrail": "pull request ナビゲーション", "failedToLoad": "pull request を読み込めませんでした", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Issue の説明(任意)…", "authRequired": { "title": "GitHub を接続", - "description": "設定 → 接続で GitHub アカウントを接続してください。" + "description": "設定 → 接続で GitHub アカウントを接続してください" }, "reAuthRequired": "GitHub の認証が必要です", - "reAuthDescription": "GitHub トークンの有効期限が切れました。設定 → 接続で再接続してください。", + "reAuthDescription": "GitHub トークンの有効期限が切れました。設定 → 接続で再接続してください", "goToSettings": "設定へ移動", "loadingTimeline": "アクティビティを読み込み中…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "ORG2 を終了しますか?", - "subtitle": "実行中のセッションは現在の状態を保持します。後で ORG2 を再度開くことができます。", + "subtitle": "実行中のセッションは現在の状態を保持します。後で ORG2 を再度開くことができます", "cancel": "キャンセル", "confirm": "終了" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari は macOS で保護されたフォルダに Cookie を保存します。システム設定の「フルディスクアクセス」で ORG2 を許可してから、もう一度確認してください。", + "explain": "Safari は macOS で保護されたフォルダに Cookie を保存します。システム設定の「フルディスクアクセス」で ORG2 を許可してから、もう一度確認してください", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/ja/integrations.json b/src/i18n/locales/ja/integrations.json index dbb4fcf47e..6b2dce7ebf 100644 --- a/src/i18n/locales/ja/integrations.json +++ b/src/i18n/locales/ja/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "ローカルを削除", "unlist": "リストから削除", "confirmRemoveTitle": "\"{{name}}\" を削除しますか?", - "confirmRemoveMessage": "ローカル認証情報が削除されます。この操作は元に戻せません。", + "confirmRemoveMessage": "ローカル認証情報が削除されます。この操作は元に戻せません", "toasts": { "refreshed": "{{name}} の更新が完了しました", "refreshError": "{{name}} の更新に失敗しました: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "アカウントメール" }, "customModels": { - "manualSetupHint": "エンドポイントが受け付けるモデル ID と任意の表示名を入力します。モデル検出は任意です。有効化しても互換性は検証されません。", + "manualSetupHint": "エンドポイントが受け付けるモデル ID と任意の表示名を入力します。モデル検出は任意です。有効化しても互換性は検証されません", "modelNamePlaceholder": "モデル id を入力...", "displayNamePlaceholder": "任意のラベル", - "emptyHint": "カスタムモデルはまだ追加されていません。", + "emptyHint": "カスタムモデルはまだ追加されていません", "addModel": "モデルを追加", "testRequiresEndpoint": "このモデルをテストするにはエンドポイントと API キーを入力してください", "invalidModelId": "モデル ID は空白や制御文字を含まない 1〜256 バイトである必要があります。", @@ -145,7 +145,7 @@ "keysVerified": "認証情報検証済み", "failedMessage": "API Key と Session Token が同じ Cursor アカウントに属していないようです。", "failedError": "エラー:{{error}}", - "failedHint": "同じ Cursor アカウントの一致する認証情報で新しいリスティングを作成してください。", + "failedHint": "同じ Cursor アカウントの一致する認証情報で新しいリスティングを作成してください", "listingRejected": "リスティング拒否", "rejectedByAdmin": "このリスティングは管理者によって拒否されました。" }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "内蔵ブラウザで Cursor アカウントを接続します。", "loggedIn": "ログイン済み", "loginStep": "ログイン", - "signInToCursorHint": "Cursor アカウントにサインインしてください。ログイン後、このウィンドウは自動的に閉じます。", + "signInToCursorHint": "Cursor アカウントにサインインしてください。ログイン後、このウィンドウは自動的に閉じます", "copilotCreatePat": "GitHub Personal Access Token を作成", "copilotCreatePatDesc": "GitHub PAT 作成用の内蔵ブラウザを開きます", "copilotTokenValidated": "Token 検証済み", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Cursor ログイン", "modelCount": "{{count}} モデル", "cursorLoginReadyTitle": "Cursor アカウントが接続されました", - "cursorLoginReadyDesc": "下で Cursor API Key を生成して貼り付けてください。この API Key がないと Cursor agent は使用できません。", + "cursorLoginReadyDesc": "下で Cursor API Key を生成して貼り付けてください。この API Key がないと Cursor agent は使用できません", "cursorApiKeyBrowserHint": "サインイン後、ORG2 は Cursor dashboard を開きます。そこで User API Key を生成し、下に貼り付けてください", "cursorApiKeyRecommendedTitle": "Cursor API Key を推奨します", "cursorApiKeyRecommendedDesc": "Cursor を ORG2 の Rust agents でのみ使用する場合は、Cursor API Key なしで続行できます。内蔵ブラウザでサインインするか、session token を指定してください", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway はすべてのチャネルからの受信メッセージをルーティングします。セマンティックルーティングに使用する API キーとモデルを選択してください。", + "description": "Gateway はすべてのチャネルからの受信メッセージをルーティングします。セマンティックルーティングに使用する API キーとモデルを選択してください", "statusReady": "設定済み", "statusUnconfigured": "未設定", "account": "API キーアカウント", @@ -581,7 +581,7 @@ "model": "モデル", "modelPlaceholder": "モデルを選択", "groupPerUser": "ユーザーごとにグループチャットセッションを分離", - "groupPerUserDesc": "グループチャットの各参加者が独自のセッションコンテキストを持ちます。" + "groupPerUserDesc": "グループチャットの各参加者が独自のセッションコンテキストを持ちます" }, "emailProtocol": "プロトコル", "matrixDeviceNamePlaceholder": "ORG2 ボット" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "確認用 URL を開き、このコードを入力して GitHub を認証してください。", "scanCredHelper": "Git credential helper({{name}})", "scanEmpty": "何も検出されませんでした", - "scanEmptyDesc": "gh CLI トークン、credential helper、SSH キーは見つかりませんでした。上の別の方法を選択してください。", + "scanEmptyDesc": "gh CLI トークン、credential helper、SSH キーは見つかりませんでした。上の別の方法を選択してください", "scanGhCli": "GitHub CLI (gh)", "scanResults": "検出された認証情報", - "scanResultsDesc": "インポートするものを 1 つ選択してください。保存前にトークンを GitHub で検証します。", + "scanResultsDesc": "インポートするものを 1 つ選択してください。保存前にトークンを GitHub で検証します", "scanSshKey": "SSH キー — {{name}}", "scanning": "スキャン中…", - "scanningDesc": "このマシン上の gh CLI トークン、credential helper、SSH キーを探しています。", + "scanningDesc": "このマシン上の gh CLI トークン、credential helper、SSH キーを探しています", "sshKeyPath": "SSH キーのパス", "sshKeyPathDesc": "秘密鍵の絶対パス(例: ~/.ssh/id_ed25519)。対応する公開鍵が GitHub に登録済みである必要があります。", "scanSelectRequired": "インポートする認証情報を選択してください。", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Browser CLI プロバイダーを変更した場合、Agent が選択したツールを認識するには ORG2 の再起動が必要です。今すぐ再起動しますか?", "sidecarDownloadsSectionTitle": "Sidecar ダウンロード", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "このプラットフォーム用の Agent Browser バイナリを ~/.orgii/bin にダウンロードします。ORG2 は起動時に自動ダウンロードしません。", + "sidecarAgentBrowserDesc": "このプラットフォーム用の Agent Browser バイナリを ~/.orgii/bin にダウンロードします。ORG2 は起動時に自動ダウンロードしません", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "デスクトップ自動化用の macOS Peekaboo バイナリを ~/.orgii/bin にダウンロードします。未対応プラットフォームでは無効のままです。", + "sidecarPeekabooDesc": "デスクトップ自動化用の macOS Peekaboo バイナリを ~/.orgii/bin にダウンロードします。未対応プラットフォームでは無効のままです", "sidecarUnsupported": "未対応", "sidecarInstalled": "インストール済み", "sidecarNotInstalled": "未インストール", @@ -874,7 +874,7 @@ "connectMethodDesc": "GitHub アカウントの接続方法を選択", "githubApp": "GitHub App", "detectFromSystem": "システムから検出", - "detectFromSystemDesc": "gh CLI、SSH キー、または Git 認証ヘルパーを使用します。", + "detectFromSystemDesc": "gh CLI、SSH キー、または Git 認証ヘルパーを使用します", "credentialsDetected": "認証情報を検出しました", "detectedVia": "{{source}} で検出", "sshKeyLabel": "SSH キー", @@ -894,7 +894,7 @@ "noCredentialsFound": "GitHub 認証情報が見つかりません", "noCredentialsHint": "GitHub CLI (gh) をインストールするか SSH キーを設定してください", "manuallyAddToken": "Token を手動追加", - "manualTokenDesc": "HTTPS Git 操作用の GitHub PAT を貼り付けます。", + "manualTokenDesc": "HTTPS Git 操作用の GitHub PAT を貼り付けます", "autoDetect": "自動検出", "autoDetectTokenSaved": "GitHub token を保存しました", "autoDetectSshSwitched": "Remote を SSH に切り替えました", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "ORG2 から作成した Git Commit に {{name}} <{{email}}> を追加します", "noTokenYet": "Token が必要ですか?", - "createTokenDesc": "GitHub を開き、repo アクセス権を持つ PAT を作成します。", + "createTokenDesc": "GitHub を開き、repo アクセス権を持つ PAT を作成します", "accountConnected": "GitHub アカウントを接続しました", "disconnectMsg": "切断してもよろしいですか?このアカウントのすべてのリポジトリへのアクセスが削除されます。", "disconnectTitle": "GitHubアカウントを切断", @@ -929,7 +929,7 @@ "connectRepoDesc": "GitHubアカウントを接続してリポジトリにアクセス", "github": "GitHub", "signInWithGithub": "GitHub でサインイン", - "signInWithGithubDesc": "GitHub のデバイスフローで ORG2 を認証します。サーバー不要。", + "signInWithGithubDesc": "GitHub のデバイスフローで ORG2 を認証します。サーバー不要", "oauthWaiting": "認証を待っています", "oauthDeviceCodeDesc": "下記の URL を開き、このコードを入力してください", "oauthOpenGithub": "GitHub を開く", @@ -985,7 +985,7 @@ "filePathPlaceholder": "例: scripts/validate.py", "removeFile": "ファイルを削除", "editorNoDraftTitle": "進行中の Skill ドラフトはありません", - "editorNoDraftDesc": "Skills ページで「作成」をクリックするか、編集する Skill を選択してください。", + "editorNoDraftDesc": "Skills ページで「作成」をクリックするか、編集する Skill を選択してください", "scopeWorkspace": "Repo-specific", "deleteConfirmTitle": "スキル「{{name}}」を削除しますか?", "deleteConfirmMessage": "スキルとそのファイルがすべて削除されます。この操作は元に戻せません。" @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "MCP サーバーを検索...", "noServers": "MCP サーバーが設定されていません", - "noServersDesc": "MCP サーバーを追加して、外部ツールで Agent の機能を拡張しましょう。", + "noServersDesc": "MCP サーバーを追加して、外部ツールで Agent の機能を拡張しましょう", "addServer": "MCP サーバーを追加", "editServer": "MCP サーバーを編集", "serverName": "サーバー名", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "プロベナンス hooks", - "masterToggleDesc": "オフにすると、管理対象の hooks がすべてアンインストールされ、シグナルは取得されません。プラットフォームごとの選択は保持され、再度オンにすると復元されます。", + "masterToggleDesc": "オフにすると、管理対象の hooks がすべてアンインストールされ、シグナルは取得されません。プラットフォームごとの選択は保持され、再度オンにすると復元されます", "liveStatusToggle": "エージェントのライブ状態", - "liveStatusToggleDesc": "実行中の CLI エージェントが作業中か待機中かを表示します。オフでも来歴の記録は続きます。", + "liveStatusToggleDesc": "実行中の CLI エージェントが作業中か待機中かを表示します。オフでも来歴の記録は続きます", "title": "セッションの来歴", "capture": "ファイル操作を記録", - "description": "ファイルの読み取りと書き込みをメタデータとして記録します。プロンプト、ツール出力、ファイル内容は保存されません。", + "description": "ファイルの読み取りと書き込みをメタデータとして記録します。プロンプト、ツール出力、ファイル内容は保存されません", "installDrift": "保存された設定とインストール済み hook が一致しません。記録を切り替えて管理対象の hook を修復してください。設定: {{path}}", "copyPath": "コピー", "col": { @@ -1185,7 +1185,7 @@ "addMember": "メンバーを追加", "noMembers": "メンバーを追加して Org の階層を構築してください", "membersLabel": "チームメンバー", - "membersDesc": "各行はメンバーを表し、Writer 権限と通信設定は互いに独立しています。名前は一意である必要があり、役割は専門性の説明にのみ使われます。", + "membersDesc": "各行はメンバーを表し、Writer 権限と通信設定は互いに独立しています。名前は一意である必要があり、役割は専門性の説明にのみ使われます", "memberName": "名前", "memberNamePlaceholder": "一意のルーティング名(例:SDE-1)", "memberNameDuplicate": "別のメンバーがすでにこの name を使用しています。組織内で name は一意である必要があります。", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "この Agent は何をしますか?(任意)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "メッセージごとの同時 Tool 呼び出し数。デフォルト:10。", + "maxToolUseConcurrencyDesc": "メッセージごとの同時 Tool 呼び出し数。デフォルト:10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "一時 Git Worktree で実行(ファイルと Shell のアクセスを分離)。", + "subAgentWorktreeIsolationDesc": "一時 Git Worktree で実行(ファイルと Shell のアクセスを分離)", "addSubAgent": "Sub-Agent を追加...", "noSubAgents": "Sub-Agent は設定されていません。" }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "このルールを適用する Agent(空 = 全 Agent)", "selectAgents": "Agent を選択…", "ruleSource": "ソース", - "ruleSourceDesc": "すべての Repo 向けの User 設定、または 1 つの Repo 専用ガイドラインを選択します。", + "ruleSourceDesc": "すべての Repo 向けの User 設定、または 1 つの Repo 専用ガイドラインを選択します", "ruleSourceUser": "User", - "ruleSourceUserDesc": "すべての Repo で利用できるユーザー設定です。", + "ruleSourceUserDesc": "すべての Repo で利用できるユーザー設定です", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "選択した 1 つの Repo に保存されるガイドラインです。", + "ruleSourceRepoDesc": "選択した 1 つの Repo に保存されるガイドラインです", "ruleRepo": "Repo", "ruleRepoDesc": "このガイドラインを適用する唯一の Repo", "selectRepo": "Repo を選択…", "ruleSourcePersonal": "パーソナル", - "ruleSourcePersonalDesc": "~/.orgii/personal/rules/ に保存。OS Agent / channel セッション専用。", + "ruleSourcePersonalDesc": "~/.orgii/personal/rules/ に保存。OS Agent / channel セッション専用", "findSkills": { "title": "Skillsを検索", "placeholder": "Skillsを検索...", "installs": "Installs", "emptyTitle": "Skillsを検索", - "emptySubtitle": "2文字以上入力してEnterキーを押すと、Skillsを検索できます。", + "emptySubtitle": "2文字以上入力してEnterキーを押すと、Skillsを検索できます", "noResults": "Skillsが見つかりません", - "noResultsDesc": "別の検索語を試してください。" + "noResultsDesc": "別の検索語を試してください" }, "importAgentTitle": "他の apps から Agents をインポート", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "メンバーまたは Agent チームを選択", - "emptySelectionSubtitle": "サイドバーから Agent または Agent チームを選択して表示・設定します。", + "emptySelectionSubtitle": "サイドバーから Agent または Agent チームを選択して表示・設定します", "applicableWorkspace": "適用 Workspace", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "CLI 設定の切り替え", "modeLabel": "モード", - "modeDesc": "デフォルトは CLI 自身の設定を復元します。ORG2 管理はバックアップ付きのプロキシ設定を書き込みます。", + "modeDesc": "デフォルトは CLI 自身の設定を復元します。ORG2 管理はバックアップ付きのプロキシ設定を書き込みます", "modeDefault": "デフォルト", "modeOrgii": "ORG2 管理", "conflict": "外部変更", "conflictTitle": "競合", - "conflictDesc": "ORG2 が書き込んだ後にアクティブな CLI 設定が変更されました。", + "conflictDesc": "ORG2 が書き込んだ後にアクティブな CLI 設定が変更されました", "proxyStatus": "プロキシ", "proxyDefault": "デフォルトモード", "proxyReady": "プロキシ準備完了", "proxyNotReady": "プロキシ未準備", "keyLabel": "キー", - "keyDesc": "この CLI と管理プロキシに対応する API キーのみ表示されます。", + "keyDesc": "この CLI と管理プロキシに対応する API キーのみ表示されます", "selectKey": "キーを選択", "modelLabel": "モデル", "selectModel": "モデルを選択", @@ -1356,7 +1356,7 @@ "forceRestore": "強制復元", "applySuccess": "ORG2 管理設定を適用しました", "restoreSuccess": "デフォルト設定を復元しました", - "proxyLifecycleDesc": "このモードの使用中は ORG2 を起動したままにしてください。ウィンドウを閉じてもプロキシはトレイで動作し続けます。ORG2 を終了すると、設定が外部で変更されていない限りデフォルトに安全に復元されます。" + "proxyLifecycleDesc": "このモードの使用中は ORG2 を起動したままにしてください。ウィンドウを閉じてもプロキシはトレイで動作し続けます。ORG2 を終了すると、設定が外部で変更されていない限りデフォルトに安全に復元されます" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "合計時間: {{value}}s" }, "title": "常駐 Housekeeper", - "description": "ローカルの MiniCPM がプロンプトの推敲、短いステップ説明、軽量な UI 操作を担当します。コーディングタスクや複雑な ADE 設定は引き続きメインの Agent モデルを使用します。", + "description": "ローカルの MiniCPM がプロンプトの推敲、短いステップ説明、軽量な UI 操作を担当します。コーディングタスクや複雑な ADE 設定は引き続きメインの Agent モデルを使用します", "autoAccount": "MiniCPM vLLM アカウントを自動選択", "tiles": { "model": "モデル", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Housekeeper を有効にする", - "description": "無効にすると、プロンプトの推敲、ステップ説明、軽量な UI 操作に MiniCPM を使用しません。" + "description": "無効にすると、プロンプトの推敲、ステップ説明、軽量な UI 操作に MiniCPM を使用しません" }, "account": { "title": "vLLM MiniCPM アカウント", - "description": "既存の KeyVault vllm_api アカウントを再利用します。別の認証情報ストアは作成されません。" + "description": "既存の KeyVault vllm_api アカウントを再利用します。別の認証情報ストアは作成されません" }, "model": { "title": "モデル ID", - "description": "Docker vLLM MiniCPM5-1B のデフォルトは openbmb/MiniCPM5-1B です。" + "description": "Docker vLLM MiniCPM5-1B のデフォルトは openbmb/MiniCPM5-1B です" }, "context": { "title": "安全なコンテキスト予算", - "description": "理論上の 32k 上限を信頼せず、4GB GPU では控えめな 10000 トークンの予算を使用します。" + "description": "理論上の 32k 上限を信頼せず、4GB GPU では控えめな 10000 トークンの予算を使用します" } }, "features": { "promptPolish": { "title": "プロンプトの推敲", - "description": "より高性能なコーディングモデルに送信する前に、入力を手動で推敲します。" + "description": "より高性能なコーディングモデルに送信する前に、入力を手動で推敲します" }, "stepExplain": { "title": "Agent ステップの説明", - "description": "セッション再生のステップに対して 1〜2 文の短い中国語の説明を生成します。" + "description": "セッション再生のステップに対して 1〜2 文の短い中国語の説明を生成します" }, "uiControl": { "title": "軽量な ADE/UI 操作", - "description": "MiniCPM はリクエストを厳格なローカル操作ホワイトリストに分類することのみ許可されます。" + "description": "MiniCPM はリクエストを厳格なローカル操作ホワイトリストに分類することのみ許可されます" }, "contextCompact": { "title": "コンテキストの自動メンテナンス", - "description": "有効化されたセッションがアイドル中に、MiniCPM が古いコンテキストの独立したローリング要約を維持します。" + "description": "有効化されたセッションがアイドル中に、MiniCPM が古いコンテキストの独立したローリング要約を維持します" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "組織に共有", "share": "共有", "sharedToOrg": "Skill を組織に共有しました", - "shareToOrgHint": "組織のメンバーはこの Skill の現在のスナップショットを受け取ります。編集後に再度共有すると更新が公開されます。", + "shareToOrgHint": "組織のメンバーはこの Skill の現在のスナップショットを受け取ります。編集後に再度共有すると更新が公開されます", "shareOrgPlaceholder": "組織" } } diff --git a/src/i18n/locales/ja/navigation.json b/src/i18n/locales/ja/navigation.json index 56495dd1a4..8ef5e16469 100644 --- a/src/i18n/locales/ja/navigation.json +++ b/src/i18n/locales/ja/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "オーナーのモデル {{model}} はあなたのキーでは利用できません — このフォークは代わりに {{fallback}} を使用します。", "forkModelUnavailable": "オーナーのモデル {{model}} はあなたのキーでは利用できません — 実行前にモデルを選択してください。", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "キャンセル", "deleteRoleOk": "削除", "deleteRoleTitle": "ロールを削除しますか?", - "followUpSuggestionsDesc": "作業項目のターン完了後に次のステップの候補を提案します。追加のモデルリクエストを使用します。", + "followUpSuggestionsDesc": "作業項目のターン完了後に次のステップの候補を提案します。追加のモデルリクエストを使用します", "followUpSuggestionsLabel": "Agent のフォローアップ提案", - "goalMaxTurnsDesc": "Agent が通常停止する時点から、最後の要求に向けて最大 N ターン追加で作業を続けます(0 = オフ)。", + "goalMaxTurnsDesc": "Agent が通常停止する時点から、最後の要求に向けて最大 N ターン追加で作業を続けます(0 = オフ)", "goalMaxTurnsLabel": "目標継続の予算", "guidanceLabel": "Agent へのガイダンス", "guidancePlaceholder": "このロールがアクティブなとき、Agent はどのように振る舞いを変えるべきですか?", - "modeSwitchAutoPlanDesc": "確認タイマーが切れたとき、保留中の Plan モード提案を自動的に切り替えます。", + "modeSwitchAutoPlanDesc": "確認タイマーが切れたとき、保留中の Plan モード提案を自動的に切り替えます", "modeSwitchAutoPlanLabel": "モード切り替えの自動 Plan", "newRoleDefaultLabel": "カスタムロール", - "pageDescription": "今あなたが担っているロールを定義します。Agent はアクティブなロールのガイダンスを読み、それに合わせて振る舞いを調整します — 例えば、集中しているときは確認の質問を減らし、離席中は要約をまとめて送ります。", + "pageDescription": "今あなたが担っているロールを定義します。Agent はアクティブなロールのガイダンスを読み、それに合わせて振る舞いを調整します — 例えば、集中しているときは確認の質問を減らし、離席中は要約をまとめて送ります", "pageTitle": "マイロール", - "planAutoApproveDesc": "保留中の計画を N 秒後に自動承認します(0 = 自分を待つ)。", + "planAutoApproveDesc": "保留中の計画を N 秒後に自動承認します(0 = 自分を待つ)", "planAutoApproveLabel": "計画の自動承認", - "questionAutoSkipDesc": "保留中の Agent の質問を N 秒後に自動スキップします(0 = 自分を待つ)。", + "questionAutoSkipDesc": "保留中の Agent の質問を N 秒後に自動スキップします(0 = 自分を待つ)", "questionAutoSkipLabel": "質問の自動スキップ", "roleNameLabel": "名前", "roleNamePlaceholder": "ロール名", "stanceAutonomous": "自律 — 私を待たない", "stanceDeferAndBatch": "後回しでまとめる — まず作業し、あとで質問", - "stanceDesc": "このロールがアクティブな間、Agent がブロッキングな判断をどう扱うか。", + "stanceDesc": "このロールがアクティブな間、Agent がブロッキングな判断をどう扱うか", "stanceInteractive": "対話的 — 自由に質問してよい", "stanceLabel": "行動の姿勢" }, diff --git a/src/i18n/locales/ja/onboarding.json b/src/i18n/locales/ja/onboarding.json index e0cc3dc6b3..ce2d8680fa 100644 --- a/src/i18n/locales/ja/onboarding.json +++ b/src/i18n/locales/ja/onboarding.json @@ -14,43 +14,43 @@ }, "generalLayout": { "title": "一般的なレイアウト ツアー", - "description": "チャットパネル、Runtime、ステーションモード切り替え、Dockを確認します。", + "description": "チャットパネル、Runtime、ステーションモード切り替え、Dockを確認します", "duration": "1 分", "steps": { "chat-panel": { "title": "チャット パネル", - "body": "ここで、ユーザーはエージェントと会話し、アクティビティを確認し、フォローアップを送信します。" + "body": "ここで、ユーザーはエージェントと会話し、アクティビティを確認し、フォローアップを送信します" }, "runtime": { "title": "ランタイム", - "body": "ここで自分の使用量と実行状態を確認できます。ワークスペースでは、メンバーの同期状態を確認し、Codex、Claude、Cursor の使用量の詳細を開くこともできます。" + "body": "ここで自分の使用量と実行状態を確認できます。ワークスペースでは、メンバーの同期状態を確認し、Codex、Claude、Cursor の使用量の詳細を開くこともできます" }, "station-mode-pill": { "title": "ステーション モードを切り替える", - "body": "この錠剤を使用してステーション モードを切り替えます。デスクトップとは、My Station、つまりワークスペースを意味します。 Infinity は、エージェント ステーション、エージェント アクティビティ ビューを意味します。" + "body": "この錠剤を使用してステーション モードを切り替えます。デスクトップとは、My Station、つまりワークスペースを意味します。 Infinity は、エージェント ステーション、エージェント アクティビティ ビューを意味します" }, "dock": { "title": "エージェント ステーション ドック", - "body": "ドックは、ステーション内のアプリを切り替えます。このツアーでは、自動非表示を一時的に無効にして、これらのコントロールが表示されたままにします。" + "body": "ドックは、ステーション内のアプリを切り替えます。このツアーでは、自動非表示を一時的に無効にして、これらのコントロールが表示されたままにします" } } }, "codeEditor": { "title": "コード エディターのツアー", - "description": "タブ、エディターのワークスペース、ソース管理、Git履歴を確認します。", + "description": "タブ、エディターのワークスペース、ソース管理、Git履歴を確認します", "duration": "2 分", "steps": { "tabs": { "title": "コード エディターのタブ", - "body": "タブには、ファイル、差分、ターミナル、ソース管理ビュー、およびダッシュボードが収集されます。リポジトリ内での作業中に開くことができます。" + "body": "タブには、ファイル、差分、ターミナル、ソース管理ビュー、およびダッシュボードが収集されます。リポジトリ内での作業中に開くことができます" }, "editor-surface": { "title": "エディタ ワークスペース", - "body": "これメインのコード エディター サーフェイスです。ファイルを開いたり、差分を検査したり、ターミナルを実行したり、生成された変更をここで確認したりできます。" + "body": "これメインのコード エディター サーフェイスです。ファイルを開いたり、差分を検査したり、ターミナルを実行したり、生成された変更をここで確認したりできます" }, "create-tabs": { "title": "新しいタブを作成する", - "body": "すべてのタブのプラス メニューを使用して、ターミナル、ブラウザ タブ、ファイル、ダッシュボード、リポジトリ ユーティリティを作成します。" + "body": "すべてのタブのプラス メニューを使用して、ターミナル、ブラウザ タブ、ファイル、ダッシュボード、リポジトリ ユーティリティを作成します" }, "source-control": { "title": "Git の変更", @@ -58,7 +58,7 @@ }, "git-history": { "title": "Git 履歴", - "body": "Git 履歴はソース管理をコミット履歴モードに切り替えて、以前のコミットや関連する変更を検査できるようにします。" + "body": "Git 履歴はソース管理をコミット履歴モードに切り替えて、以前のコミットや関連する変更を検査できるようにします" } } } @@ -68,6 +68,6 @@ "getStarted": "はじめに", "newFeatures": "新機能", "branchesTitle": "リポジトリのブランチ", - "branchesDescription": "Spotlight からリポジトリのブランチを直接切り替えます。" + "branchesDescription": "Spotlight からリポジトリのブランチを直接切り替えます" } } diff --git a/src/i18n/locales/ja/projects.json b/src/i18n/locales/ja/projects.json index 4f974fdc5c..ac0c04631a 100644 --- a/src/i18n/locales/ja/projects.json +++ b/src/i18n/locales/ja/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "GitHub 接続を読み込み中...", "noConnectionTitle": "GitHub 接続が見つかりません", - "noConnectionDescription": "先に Integrations で GitHub 接続を追加してから、ここに戻って GitHub Issues をインポートしてください。", + "noConnectionDescription": "先に Integrations で GitHub 接続を追加してから、ここに戻って GitHub Issues をインポートしてください", "linkedRepoHint": "この Project は現在の Workspace repo にもリンクされます: {{repoName}}", "errors": { "invalidRepo": "owner/repo または GitHub リポジトリ URL を使用してください。" @@ -80,7 +80,7 @@ "importLinearOrgs": "Linear ワークスペースをインポート", "gitFolderPath": "Git フォルダーのパス(任意)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "このワークスペースを既存の Git ワークツリーに紐づけてフォルダー同期に使用します。", + "gitFolderPathHint": "このワークスペースを既存の Git ワークツリーに紐づけてフォルダー同期に使用します", "gitFolderBadge": "Git", "gitFolderSynced": "Git フォルダーと同期中", "pendingSync": "同期待ち", @@ -123,7 +123,7 @@ "addTeams": "チームを追加", "addLabels": "ラベルを追加", "addRepos": "リポジトリをリンク", - "noReposHint": "利用できるリポジトリがありません。まずワークスペースにリポジトリを追加してください。", + "noReposHint": "利用できるリポジトリがありません。まずワークスペースにリポジトリを追加してください", "addDate": "日付を追加", "clearDate": "日付をクリア", "noStatus": "ステータスなし", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "ファイル変更なし", - "fileDiffCleanHint": "ファイルの変更は検出されませんでした。", + "fileDiffCleanHint": "ファイルの変更は検出されませんでした", "costSummary": "コスト概要", "totalCost": "合計", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Work Item を表示", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "選択した{{count}}件のアイテムに適用します。" + "hint": "選択した{{count}}件のアイテムに適用します" }, "batchStatus": { "title": "ステータスを設定" @@ -457,7 +457,7 @@ "save": "現在のビューを保存", "saveTitle": "ビューを保存", "namePlaceholder": "ビュー名", - "saveHint": "現在のフィルターを保存します。レイアウトは初回に開くときの初期値になります。", + "saveHint": "現在のフィルターを保存します。レイアウトは初回に開くときの初期値になります", "delete": "ビューを削除" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "プロパティを設定", - "hint": "選択した {{count}} 件の項目に 1 つのプロパティ値を適用します。値を空にするとクリアされます。", + "hint": "選択した {{count}} 件の項目に 1 つのプロパティ値を適用します。値を空にするとクリアされます", "propertyPlaceholder": "プロパティ", "valuePlaceholder": "値", "applied": "{{count}} 件の項目を更新しました" }, "revisionConflict": { "title": "編集の競合を解決", - "description": "{{field}} はリビジョン {{expected}} の後に変更されました。あなたの編集をリビジョン {{actual}} と比較し、どちらを残すか選択してください。", + "description": "{{field}} はリビジョン {{expected}} の後に変更されました。あなたの編集をリビジョン {{actual}} と比較し、どちらを残すか選択してください", "mine": "自分のバージョン", "latest": "最新バージョン", "useLatest": "最新を使用", @@ -573,7 +573,7 @@ "sidebarSync": "同期", "sync": { "title": "外部同期", - "description": "このProjectのワークアイテムを Linear や GitHub などの外部システムにミラーリングします。", + "description": "このProjectのワークアイテムを Linear や GitHub などの外部システムにミラーリングします", "adapterPicker": { "title": "アダプター", "notAttached": "未接続", @@ -582,7 +582,7 @@ "changeWarning": "新しいアダプターを接続する前に、現在のアダプターを切断してください。", "detachProjectMenuLabel": "GitHub のリンクを解除", "detachProjectTitle": "{{project}} から GitHub のリンクを解除しますか?", - "detachProjectDescription": "GitHub Issues の同期が停止します。ローカルの Project とインポート済みの作業項目は ORG2 に残ります。", + "detachProjectDescription": "GitHub Issues の同期が停止します。ローカルの Project とインポート済みの作業項目は ORG2 に残ります", "detachProjectAction": "{{project}} から GitHub のリンクを解除", "detachProjectSuccess": "{{project}} から GitHub のリンクを解除しました" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Webhook ステータスを読み込み中…", - "notInstalledDescription": "Webhook シークレットをインストールすると、次回のポーリングを待たずにプロバイダから変更が直接送信されます。", + "notInstalledDescription": "Webhook シークレットをインストールすると、次回のポーリングを待たずにプロバイダから変更が直接送信されます", "install": "Webhook をインストール", - "installedDescription": "URL をプロバイダの Webhook 設定に貼り付け、下のシークレットで配信に署名してください。", + "installedDescription": "URL をプロバイダの Webhook 設定に貼り付け、下のシークレットで配信に署名してください", "indicatorFresh": "最近の配信あり", "indicatorStale": "最近の配信なし", "lastDeliveryNever": "まだ配信はありません", @@ -627,7 +627,7 @@ "copyUrl": "URL をコピー", "rotate": "シークレットをローテーション", "secretTitle": "今すぐコピーしてください — 再表示されません", - "secretDescription": "この署名シークレットをプロバイダの Webhook 設定に貼り付けてください。このパネルを閉じると平文の値は保存されません。", + "secretDescription": "この署名シークレットをプロバイダの Webhook 設定に貼り付けてください。このパネルを閉じると平文の値は保存されません", "copySecret": "シークレットをコピー", "dismissSecret": "保存しました", "secretCopied": "シークレットをクリップボードにコピーしました", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "ステータス", "statusesBuiltin": "組み込みステータス", - "statusesBuiltinDescription": "標準のワークフロー区分です。常に利用できます。", + "statusesBuiltinDescription": "標準のワークフロー区分です。常に利用できます", "statusesCustom": "カスタムステータス", - "statusesCustomDescription": "組み込み区分に付けた別名です。フィルター、件数、ボードでは元の区分として扱われます。", + "statusesCustomDescription": "組み込み区分に付けた別名です。フィルター、件数、ボードでは元の区分として扱われます", "statusNamePlaceholder": "ステータス名", "noCustomStatuses": "カスタムステータスはまだありません。", "statusArchive": "ステータスをアーカイブ", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/ja/sessions.json b/src/i18n/locales/ja/sessions.json index 0a070eef4f..810c75e311 100644 --- a/src/i18n/locales/ja/sessions.json +++ b/src/i18n/locales/ja/sessions.json @@ -896,10 +896,10 @@ "exportJson": "JSON をエクスポート", "importAction": "Session をインポート", "exportDescription": "アクティブな Session をポータブルな JSON スナップショットとしてエクスポートします", - "importDescription": "Session JSON スナップショットをサイドバーにインポートします。", + "importDescription": "Session JSON スナップショットをサイドバーにインポートします", "jsonSnapshotNote": "インポートされた Session は読み取り専用スナップショットで、元のイベント履歴を保持します", "chooseJson": "JSON ファイルを選択", - "chooseJsonHint": ".orgii-session.json エクスポートファイルを選択してください。", + "chooseJsonHint": ".orgii-session.json エクスポートファイルを選択してください", "loadingPreview": "Session イベントを集計中…", "noActiveSession": "アクティブな Session が選択されていません。", "importedName": "インポート済み Session: {{name}}", @@ -1908,7 +1908,7 @@ "start": "開始", "missingGit": { "title": "Git が見つかりません", - "body": "Git がインストールされていないか、見つかりません。ADE Manager または SDE Agent にこのマシンへ Git をインストールしてもらい、その後 ORG2 を再起動してください。" + "body": "Git がインストールされていないか、見つかりません。ADE Manager または SDE Agent にこのマシンへ Git をインストールしてもらい、その後 ORG2 を再起動してください" }, "model": "モデル", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "アーカイブ済みですが、{{count}} 個のランタイムを解放できませんでした。削除は引き続きブロックされます。", "archiveTeardownQuiesced": "アーカイブ済みで完全に停止しました。完全削除が可能です。", "dangerZone": "危険な操作", - "deleteDescription": "このチームとすべてのセッションおよび履歴を完全に削除します。", + "deleteDescription": "このチームとすべてのセッションおよび履歴を完全に削除します", "deleteTeam": "チームを削除", "deleteTitle": "このチームを完全に削除しますか?", "deleteWarning": "チームのすべてのセッションと履歴が完全に削除されます。元に戻せません。", diff --git a/src/i18n/locales/ja/settings.json b/src/i18n/locales/ja/settings.json index a6133726ff..f3ac69931e 100644 --- a/src/i18n/locales/ja/settings.json +++ b/src/i18n/locales/ja/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "デスクトップ制御中に ORG2 を隠す", - "hideBeforeActionHelper": "Peekaboo の操作中は ORG2 のメインウィンドウを隠し、Wingman バーとフローティングキャプションを表示して、Agent がフォーカスを管理しなくて済むようにします。", + "hideBeforeActionHelper": "Peekaboo の操作中は ORG2 のメインウィンドウを隠し、Wingman バーとフローティングキャプションを表示して、Agent がフォーカスを管理しなくて済むようにします", "antiDetection": "HID 自動化検出対策の強化", - "antiDetectionHelper": "Peekaboo がクリックやキー入力に対し、純粋なアクセシビリティ操作ではなく実際の CGEvent(HID)入力を送出するようにします。これにより自動化検出を備えたアプリ(例: WeChat)がデスクトップ制御をブロックしにくくなります。", + "antiDetectionHelper": "Peekaboo がクリックやキー入力に対し、純粋なアクセシビリティ操作ではなく実際の CGEvent(HID)入力を送出するようにします。これにより自動化検出を備えたアプリ(例: WeChat)がデスクトップ制御をブロックしにくくなります", "humanInputProfile": "人間的な入力リズム", - "humanInputProfileHelper": "合成したキー入力に人間らしいタイミングプロファイルを適用します。無効にすると最高速度で入力します。", + "humanInputProfileHelper": "合成したキー入力に人間らしいタイミングプロファイルを適用します。無効にすると最高速度で入力します", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "不足:{{bins}}", "skillMissingEnv": "不足する環境変数:{{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Pull 戦略", "pullStrategyDesc": "同期時に git pull が remote の変更をどう統合するか", - "pullStrategyHint": "Rebase(デフォルト):あなたの commit を remote の上に replay。linear history を作成。\n\nMerge:branch が diverge した場合に merge commit を作成。完全な history を保持。\n\nFast-forward only:merge が不要な場合のみ pull を許可。branch が diverge している場合は拒否。", + "pullStrategyHint": "Rebase(デフォルト):あなたの commit を remote の上に replay。linear history を作成。\n\nMerge:branch が diverge した場合に merge commit を作成。完全な history を保持。\n\nFast-forward only:merge が不要な場合のみ pull を許可。branch が diverge している場合は拒否", "strategyMerge": "Merge", "strategyRebase": "Rebase(デフォルト)", "strategyFfOnly": "Fast-forward のみ(厳格)", @@ -602,7 +602,7 @@ "checkFailed": "更新の確認に失敗しました", "checking": "更新を確認中…", "officialInstalled": "公式アプリをインストールしました", - "officialInstalledDesc": "{{version}} を {{path}} にインストールしました。このローカルビルドは変更されず、引き続き実行されます。", + "officialInstalledDesc": "{{version}} を {{path}} にインストールしました。このローカルビルドは変更されず、引き続き実行されます", "downloadFailed": "更新のダウンロードに失敗しました", "retryNow": "今すぐ再試行", "downloadTimeout": "ダウンロードがタイムアウトしました。ネットワークまたはプロキシを確認して再試行してください。", @@ -738,7 +738,7 @@ "tableVersion": "バージョン", "tableStatus": "ステータス", "installSection": "インストール", - "installHintNote": "お使いのプラットフォーム向けに推奨されるインストールコマンドです。ほとんどのシステム依存は管理者権限が必要なため、自動実行はしません — terminal にコピー & ペーストしてください。" + "installHintNote": "お使いのプラットフォーム向けに推奨されるインストールコマンドです。ほとんどのシステム依存は管理者権限が必要なため、自動実行はしません — terminal にコピー & ペーストしてください" }, "storage": { "dataDirectory": "データディレクトリ", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "{{agentName}} の進化を有効化", "noAgentsTitle": "利用可能な Agent はありません", - "noAgentsSubtitle": "進化を設定するには Agent を作成またはインポートしてください。" + "noAgentsSubtitle": "進化を設定するには Agent を作成またはインポートしてください" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/ko/common.json b/src/i18n/locales/ko/common.json index 59c076200a..a39e255da1 100644 --- a/src/i18n/locales/ko/common.json +++ b/src/i18n/locales/ko/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Token 만들기", "openGitSettingsButton": "설정 열기", "configureInSettings": "설정에서 Git 구성", - "configureInSettingsDesc": "설정 → 연결에서 GitHub App 액세스를 추가하거나 token을 저장하거나 로컬 자격 증명을 스캔한 다음 이 Git 작업을 다시 시도하세요." + "configureInSettingsDesc": "설정 → 연결에서 GitHub App 액세스를 추가하거나 token을 저장하거나 로컬 자격 증명을 스캔한 다음 이 Git 작업을 다시 시도하세요" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "origin 원격 저장소에서 저장소 이름을 파싱할 수 없습니다", "authRequired": { "title": "GitHub 연결", - "description": "설정 → 연결에서 GitHub 계정을 연결하세요." + "description": "설정 → 연결에서 GitHub 계정을 연결하세요" }, "navigationTrail": "Pull request 탐색", "failedToLoad": "pull request를 불러오지 못했습니다", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Issue 설명 (선택 사항)…", "authRequired": { "title": "GitHub 연결", - "description": "설정 → 연결에서 GitHub 계정을 연결하세요." + "description": "설정 → 연결에서 GitHub 계정을 연결하세요" }, "reAuthRequired": "GitHub 인증 필요", - "reAuthDescription": "GitHub token이 만료되었습니다. 설정 → 연결에서 다시 연결하세요.", + "reAuthDescription": "GitHub token이 만료되었습니다. 설정 → 연결에서 다시 연결하세요", "goToSettings": "설정으로 이동", "loadingTimeline": "활동 불러오는 중…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "ORG2를 종료하시겠습니까?", - "subtitle": "실행 중인 세션은 현재 상태를 유지합니다. 나중에 ORG2를 다시 열 수 있습니다.", + "subtitle": "실행 중인 세션은 현재 상태를 유지합니다. 나중에 ORG2를 다시 열 수 있습니다", "cancel": "취소", "confirm": "종료" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari는 macOS가 보호하는 폴더에 쿠키를 저장합니다. 시스템 설정의 전체 디스크 접근 권한에서 ORG2를 허용한 다음 다시 확인하세요.", + "explain": "Safari는 macOS가 보호하는 폴더에 쿠키를 저장합니다. 시스템 설정의 전체 디스크 접근 권한에서 ORG2를 허용한 다음 다시 확인하세요", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/ko/integrations.json b/src/i18n/locales/ko/integrations.json index 7407cd22c0..533091180b 100644 --- a/src/i18n/locales/ko/integrations.json +++ b/src/i18n/locales/ko/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "로컬 제거", "unlist": "목록에서 제거", "confirmRemoveTitle": "\"{{name}}\"을(를) 제거하시겠습니까?", - "confirmRemoveMessage": "로컬 자격 증명이 제거됩니다. 이 작업은 되돌릴 수 없습니다.", + "confirmRemoveMessage": "로컬 자격 증명이 제거됩니다. 이 작업은 되돌릴 수 없습니다", "toasts": { "refreshed": "{{name}} 새로고침 완료", "refreshError": "{{name}} 새로고침 실패: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "계정 이메일" }, "customModels": { - "manualSetupHint": "엔드포인트에서 허용하는 모델 ID와 선택적 표시 이름을 입력하세요. 모델 검색은 선택 사항이며 활성화만으로 호환성이 검증되지는 않습니다.", + "manualSetupHint": "엔드포인트에서 허용하는 모델 ID와 선택적 표시 이름을 입력하세요. 모델 검색은 선택 사항이며 활성화만으로 호환성이 검증되지는 않습니다", "modelNamePlaceholder": "모델 id 입력...", "displayNamePlaceholder": "선택적 라벨", - "emptyHint": "아직 사용자 정의 모델이 추가되지 않았습니다.", + "emptyHint": "아직 사용자 정의 모델이 추가되지 않았습니다", "addModel": "모델 추가", "testRequiresEndpoint": "이 모델을 테스트하려면 엔드포인트와 API 키를 입력하세요", "invalidModelId": "모델 ID는 공백이나 제어 문자 없이 1~256바이트여야 합니다.", @@ -145,7 +145,7 @@ "keysVerified": "자격 증명 검증 완료", "failedMessage": "API Key와 Session Token이 동일한 Cursor 계정에 속하지 않는 것 같습니다.", "failedError": "오류: {{error}}", - "failedHint": "동일한 Cursor 계정의 일치하는 자격 증명으로 새 목록을 만들어 주세요.", + "failedHint": "동일한 Cursor 계정의 일치하는 자격 증명으로 새 목록을 만들어 주세요", "listingRejected": "목록 거부됨", "rejectedByAdmin": "이 목록은 관리자에 의해 거부되었습니다." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "내장 브라우저로 Cursor 계정을 연결합니다.", "loggedIn": "로그인됨", "loginStep": "로그인", - "signInToCursorHint": "Cursor 계정에 로그인하세요. 로그인 후 이 창은 자동으로 닫힙니다.", + "signInToCursorHint": "Cursor 계정에 로그인하세요. 로그인 후 이 창은 자동으로 닫힙니다", "copilotCreatePat": "GitHub Personal Access Token 생성", "copilotCreatePatDesc": "GitHub PAT 생성을 위한 내장 브라우저 열기", "copilotTokenValidated": "Token 검증됨", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Cursor 로그인", "modelCount": "{{count}}개 모델", "cursorLoginReadyTitle": "Cursor 계정 연결됨", - "cursorLoginReadyDesc": "아래에서 Cursor API Key를 생성해 붙여넣으세요. 이 API Key가 없으면 Cursor agent를 사용할 수 없습니다.", + "cursorLoginReadyDesc": "아래에서 Cursor API Key를 생성해 붙여넣으세요. 이 API Key가 없으면 Cursor agent를 사용할 수 없습니다", "cursorApiKeyBrowserHint": "로그인 후 ORG2가 Cursor dashboard를 엽니다. 거기서 User API Key를 생성한 뒤 아래에 붙여넣으세요", "cursorApiKeyRecommendedTitle": "Cursor API Key 권장", "cursorApiKeyRecommendedDesc": "Cursor를 ORG2의 Rust agents에서만 사용하려면 Cursor API Key 없이 계속할 수 있습니다. 내장 브라우저로 로그인하거나 session token을 제공하면 됩니다", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway 는 모든 채널의 수신 메시지를 라우팅합니다. 시맨틱 라우팅에 사용할 API 키와 모델을 선택하세요.", + "description": "Gateway 는 모든 채널의 수신 메시지를 라우팅합니다. 시맨틱 라우팅에 사용할 API 키와 모델을 선택하세요", "statusReady": "설정됨", "statusUnconfigured": "미설정", "account": "API 키 계정", @@ -581,7 +581,7 @@ "model": "모델", "modelPlaceholder": "모델 선택", "groupPerUser": "사용자별 그룹 채팅 세션 격리", - "groupPerUserDesc": "그룹 채팅의 각 참가자는 자신만의 세션 컨텍스트를 갖습니다." + "groupPerUserDesc": "그룹 채팅의 각 참가자는 자신만의 세션 컨텍스트를 갖습니다" }, "emailProtocol": "프로토콜", "matrixDeviceNamePlaceholder": "ORG2 봇" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "인증 URL을 열고 이 코드를 입력하여 GitHub를 승인하세요.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "감지된 항목 없음", - "scanEmptyDesc": "gh CLI token, credential helper, SSH 키를 찾지 못했습니다. 위에서 다른 방법을 선택하세요.", + "scanEmptyDesc": "gh CLI token, credential helper, SSH 키를 찾지 못했습니다. 위에서 다른 방법을 선택하세요", "scanGhCli": "GitHub CLI (gh)", "scanResults": "감지된 자격 증명", - "scanResultsDesc": "가져올 항목을 하나 선택하세요. 저장 전에 GitHub에서 token을 검증합니다.", + "scanResultsDesc": "가져올 항목을 하나 선택하세요. 저장 전에 GitHub에서 token을 검증합니다", "scanSshKey": "SSH 키 — {{name}}", "scanning": "검색 중…", - "scanningDesc": "이 컴퓨터에서 gh CLI token, credential helper, SSH 키를 찾는 중입니다.", + "scanningDesc": "이 컴퓨터에서 gh CLI token, credential helper, SSH 키를 찾는 중입니다", "sshKeyPath": "SSH 키 경로", "sshKeyPathDesc": "개인 키의 절대 경로 (예: ~/.ssh/id_ed25519). 대응하는 공개 키가 GitHub에 이미 등록되어 있어야 합니다.", "scanSelectRequired": "가져올 감지된 자격 증명을 선택하세요.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Browser CLI 제공자를 변경하면 Agent가 선택한 도구를 보려면 ORG2를 다시 시작해야 합니다. 지금 다시 시작할까요?", "sidecarDownloadsSectionTitle": "Sidecar 다운로드", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "현재 플랫폼용 Agent Browser 바이너리를 ~/.orgii/bin에 다운로드합니다. ORG2는 시작 시 자동으로 다운로드하지 않습니다.", + "sidecarAgentBrowserDesc": "현재 플랫폼용 Agent Browser 바이너리를 ~/.orgii/bin에 다운로드합니다. ORG2는 시작 시 자동으로 다운로드하지 않습니다", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "데스크톱 자동화를 위한 macOS Peekaboo 바이너리를 ~/.orgii/bin에 다운로드합니다. 지원하지 않는 플랫폼에서는 비활성화됩니다.", + "sidecarPeekabooDesc": "데스크톱 자동화를 위한 macOS Peekaboo 바이너리를 ~/.orgii/bin에 다운로드합니다. 지원하지 않는 플랫폼에서는 비활성화됩니다", "sidecarUnsupported": "지원 안 됨", "sidecarInstalled": "설치됨", "sidecarNotInstalled": "설치되지 않음", @@ -874,7 +874,7 @@ "connectMethodDesc": "GitHub 계정 연결 방법을 선택하세요", "githubApp": "GitHub App", "detectFromSystem": "시스템에서 감지", - "detectFromSystemDesc": "gh CLI, SSH 키 또는 Git 자격 증명 도우미를 사용합니다.", + "detectFromSystemDesc": "gh CLI, SSH 키 또는 Git 자격 증명 도우미를 사용합니다", "credentialsDetected": "자격 증명 감지됨", "detectedVia": "{{source}}에서 감지됨", "sshKeyLabel": "SSH 키", @@ -894,7 +894,7 @@ "noCredentialsFound": "GitHub 자격 증명을 찾을 수 없습니다", "noCredentialsHint": "GitHub CLI (gh)를 설치하거나 SSH 키를 설정하여 로컬 감지를 사용하세요", "manuallyAddToken": "Token 수동 추가", - "manualTokenDesc": "HTTPS Git 작업용 GitHub PAT을 붙여넣으세요.", + "manualTokenDesc": "HTTPS Git 작업용 GitHub PAT을 붙여넣으세요", "autoDetect": "자동 감지", "autoDetectTokenSaved": "GitHub token 저장됨", "autoDetectSshSwitched": "Remote가 SSH로 전환됨", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "ORG2에서 만든 Git Commit에 {{name}} <{{email}}>를 추가합니다", "noTokenYet": "Token이 필요하신가요?", - "createTokenDesc": "GitHub를 열고 repo 접근 권한이 있는 PAT을 만드세요.", + "createTokenDesc": "GitHub를 열고 repo 접근 권한이 있는 PAT을 만드세요", "accountConnected": "GitHub 계정이 연결되었습니다", "disconnectMsg": "연결을 끊으시겠습니까? 이 계정의 모든 저장소에 대한 액세스가 제거됩니다.", "disconnectTitle": "GitHub 계정 연결 끊기", @@ -929,7 +929,7 @@ "connectRepoDesc": "GitHub 계정을 연결하여 저장소에 액세스", "github": "GitHub", "signInWithGithub": "GitHub으로 로그인", - "signInWithGithubDesc": "GitHub Device Flow로 ORG2를 인증합니다. 서버 호스팅이 필요 없습니다.", + "signInWithGithubDesc": "GitHub Device Flow로 ORG2를 인증합니다. 서버 호스팅이 필요 없습니다", "oauthWaiting": "인증 대기 중", "oauthDeviceCodeDesc": "아래 URL을 열고 이 코드를 입력하세요", "oauthOpenGithub": "GitHub 열기", @@ -985,7 +985,7 @@ "filePathPlaceholder": "예: scripts/validate.py", "removeFile": "파일 삭제", "editorNoDraftTitle": "진행 중인 Skill 초안이 없습니다", - "editorNoDraftDesc": "Skills 페이지에서 만들기를 클릭하거나 편집할 Skill을 선택하세요.", + "editorNoDraftDesc": "Skills 페이지에서 만들기를 클릭하거나 편집할 Skill을 선택하세요", "scopeWorkspace": "Repo-specific", "deleteConfirmTitle": "스킬 «{{name}}» 삭제?", "deleteConfirmMessage": "스킬과 모든 파일이 삭제됩니다. 이 작업은 취소할 수 없습니다." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "MCP 서버 검색...", "noServers": "구성된 MCP 서버가 없습니다", - "noServersDesc": "MCP 서버를 추가하여 외부 도구로 Agent 기능을 확장하세요.", + "noServersDesc": "MCP 서버를 추가하여 외부 도구로 Agent 기능을 확장하세요", "addServer": "MCP 서버 추가", "editServer": "MCP 서버 편집", "serverName": "서버 이름", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "출처 추적 hooks", - "masterToggleDesc": "끄면 관리되는 모든 hooks가 제거되고 신호를 수집하지 않습니다. 플랫폼별 선택은 유지되며 다시 켜면 복원됩니다.", + "masterToggleDesc": "끄면 관리되는 모든 hooks가 제거되고 신호를 수집하지 않습니다. 플랫폼별 선택은 유지되며 다시 켜면 복원됩니다", "liveStatusToggle": "실시간 에이전트 상태", - "liveStatusToggleDesc": "실행 중인 CLI 에이전트의 작업 또는 대기 상태를 표시합니다. 꺼도 출처 기록은 유지됩니다.", + "liveStatusToggleDesc": "실행 중인 CLI 에이전트의 작업 또는 대기 상태를 표시합니다. 꺼도 출처 기록은 유지됩니다", "title": "세션 출처", "capture": "파일 상호작용 기록", - "description": "파일 읽기와 쓰기를 메타데이터로 기록합니다. 프롬프트, 도구 출력 및 파일 내용은 저장하지 않습니다.", + "description": "파일 읽기와 쓰기를 메타데이터로 기록합니다. 프롬프트, 도구 출력 및 파일 내용은 저장하지 않습니다", "installDrift": "저장된 설정과 설치된 hook이 다릅니다. 기록을 전환하여 관리되는 hook을 복구하세요. 설정: {{path}}", "copyPath": "복사", "col": { @@ -1185,7 +1185,7 @@ "addMember": "멤버 추가", "noMembers": "멤버를 추가하여 Org 계층 구조를 구축하세요", "membersLabel": "팀 멤버", - "membersDesc": "각 행은 멤버이며 Writer 권한과 통신 설정은 서로 독립적입니다. 이름은 고유해야 하며 역할은 전문 분야 설명에만 사용됩니다.", + "membersDesc": "각 행은 멤버이며 Writer 권한과 통신 설정은 서로 독립적입니다. 이름은 고유해야 하며 역할은 전문 분야 설명에만 사용됩니다", "memberName": "이름", "memberNamePlaceholder": "유일한 라우팅 name (예: SDE-1)", "memberNameDuplicate": "다른 멤버가 이미 이 name을 사용 중입니다. 조직 내에서 name은 유일해야 합니다.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "이 Agent는 무엇을 하나요? (선택)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "메시지당 동시 Tool 호출 수. 기본값: 10.", + "maxToolUseConcurrencyDesc": "메시지당 동시 Tool 호출 수. 기본값: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "임시 Git Worktree에서 실행 (파일 및 Shell 접근 격리).", + "subAgentWorktreeIsolationDesc": "임시 Git Worktree에서 실행 (파일 및 Shell 접근 격리)", "addSubAgent": "Sub-Agent 추가...", "noSubAgents": "구성된 Sub-Agent가 없습니다." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "이 규칙이 적용될 Agent (비워두면 전체)", "selectAgents": "Agent 선택…", "ruleSource": "출처", - "ruleSourceDesc": "모든 Repo에는 User를, 단일 Repo 전용 가이드라인에는 Repo를 선택합니다.", + "ruleSourceDesc": "모든 Repo에는 User를, 단일 Repo 전용 가이드라인에는 Repo를 선택합니다", "ruleSourceUser": "User", - "ruleSourceUserDesc": "모든 Repo에서 사용할 수 있는 사용자 설정입니다.", + "ruleSourceUserDesc": "모든 Repo에서 사용할 수 있는 사용자 설정입니다", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "선택한 단일 Repo에 저장되는 가이드라인입니다.", + "ruleSourceRepoDesc": "선택한 단일 Repo에 저장되는 가이드라인입니다", "ruleRepo": "Repo", "ruleRepoDesc": "이 가이드라인이 적용되는 단일 Repo", "selectRepo": "Repo 선택…", "ruleSourcePersonal": "개인", - "ruleSourcePersonalDesc": "~/.orgii/personal/rules/ 에 저장. OS Agent / channel 세션 전용.", + "ruleSourcePersonalDesc": "~/.orgii/personal/rules/ 에 저장. OS Agent / channel 세션 전용", "findSkills": { "title": "Skills 검색", "placeholder": "Skills 검색...", "installs": "Installs", "emptyTitle": "Skills 검색", - "emptySubtitle": "2자 이상 입력한 다음 Enter를 눌러 Skills를 찾으세요.", + "emptySubtitle": "2자 이상 입력한 다음 Enter를 눌러 Skills를 찾으세요", "noResults": "Skills를 찾을 수 없음", - "noResultsDesc": "다른 검색어를 시도해 보세요." + "noResultsDesc": "다른 검색어를 시도해 보세요" }, "importAgentTitle": "다른 apps에서 Agents 가져오기", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "멤버 또는 Agent 팀 선택", - "emptySelectionSubtitle": "사이드바에서 Agent 또는 Agent 팀을 선택해 보고 구성하세요.", + "emptySelectionSubtitle": "사이드바에서 Agent 또는 Agent 팀을 선택해 보고 구성하세요", "applicableWorkspace": "적용 Workspace", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "CLI 설정 전환", "modeLabel": "모드", - "modeDesc": "기본은 CLI 자체 설정을 복원합니다. ORG2 관리는 백업된 프록시 설정을 기록합니다.", + "modeDesc": "기본은 CLI 자체 설정을 복원합니다. ORG2 관리는 백업된 프록시 설정을 기록합니다", "modeDefault": "기본", "modeOrgii": "ORG2 관리", "conflict": "외부 변경", "conflictTitle": "충돌", - "conflictDesc": "ORG2가 기록한 뒤 활성 CLI 설정이 변경되었습니다.", + "conflictDesc": "ORG2가 기록한 뒤 활성 CLI 설정이 변경되었습니다", "proxyStatus": "프록시", "proxyDefault": "기본 모드", "proxyReady": "프록시 준비됨", "proxyNotReady": "프록시 준비 안 됨", "keyLabel": "키", - "keyDesc": "이 CLI 및 관리 프록시와 호환되는 API 키만 표시됩니다.", + "keyDesc": "이 CLI 및 관리 프록시와 호환되는 API 키만 표시됩니다", "selectKey": "키 선택", "modelLabel": "모델", "selectModel": "모델 선택", @@ -1356,7 +1356,7 @@ "forceRestore": "강제 복원", "applySuccess": "ORG2 관리 설정을 적용했습니다", "restoreSuccess": "기본 설정을 복원했습니다", - "proxyLifecycleDesc": "이 모드를 사용하는 동안 ORG2를 실행 상태로 유지하세요. 창을 닫아도 프록시는 트레이에 남아 있으며, ORG2를 종료하면 설정이 외부에서 변경되지 않은 한 기본값을 안전하게 복원합니다." + "proxyLifecycleDesc": "이 모드를 사용하는 동안 ORG2를 실행 상태로 유지하세요. 창을 닫아도 프록시는 트레이에 남아 있으며, ORG2를 종료하면 설정이 외부에서 변경되지 않은 한 기본값을 안전하게 복원합니다" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Total time: {{value}}s" }, "title": "상주 Housekeeper", - "description": "로컬 MiniCPM이 프롬프트 다듬기, 짧은 단계 설명, 가벼운 UI 제어를 처리합니다. 코딩 작업과 복잡한 ADE 설정은 계속 메인 Agent 모델을 사용합니다.", + "description": "로컬 MiniCPM이 프롬프트 다듬기, 짧은 단계 설명, 가벼운 UI 제어를 처리합니다. 코딩 작업과 복잡한 ADE 설정은 계속 메인 Agent 모델을 사용합니다", "autoAccount": "MiniCPM vLLM 계정 자동 선택", "tiles": { "model": "모델", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Housekeeper 활성화", - "description": "비활성화하면 프롬프트 다듬기, 단계 설명, 가벼운 UI 제어에 MiniCPM을 사용하지 않습니다." + "description": "비활성화하면 프롬프트 다듬기, 단계 설명, 가벼운 UI 제어에 MiniCPM을 사용하지 않습니다" }, "account": { "title": "vLLM MiniCPM 계정", - "description": "기존 KeyVault vllm_api 계정을 재사용하며, 별도의 자격 증명 저장소를 만들지 않습니다." + "description": "기존 KeyVault vllm_api 계정을 재사용하며, 별도의 자격 증명 저장소를 만들지 않습니다" }, "model": { "title": "모델 ID", - "description": "Docker vLLM MiniCPM5-1B의 기본값은 openbmb/MiniCPM5-1B입니다." + "description": "Docker vLLM MiniCPM5-1B의 기본값은 openbmb/MiniCPM5-1B입니다" }, "context": { "title": "안전 컨텍스트 예산", - "description": "이론상 32k 한도를 믿는 대신 4GB GPU에서는 보수적인 10000 토큰 예산을 사용합니다." + "description": "이론상 32k 한도를 믿는 대신 4GB GPU에서는 보수적인 10000 토큰 예산을 사용합니다" } }, "features": { "promptPolish": { "title": "프롬프트 다듬기", - "description": "더 강력한 코딩 모델에 보내기 전에 입력을 수동으로 다듬습니다." + "description": "더 강력한 코딩 모델에 보내기 전에 입력을 수동으로 다듬습니다" }, "stepExplain": { "title": "Agent 단계 설명", - "description": "세션 재생 단계에 대해 한두 개의 짧은 중국어 설명을 생성합니다." + "description": "세션 재생 단계에 대해 한두 개의 짧은 중국어 설명을 생성합니다" }, "uiControl": { "title": "가벼운 ADE/UI 제어", - "description": "MiniCPM은 요청을 엄격한 로컬 작업 허용 목록으로만 분류할 수 있습니다." + "description": "MiniCPM은 요청을 엄격한 로컬 작업 허용 목록으로만 분류할 수 있습니다" }, "contextCompact": { "title": "자동 컨텍스트 유지 관리", - "description": "활성화된 세션이 유휴 상태일 때 MiniCPM이 오래된 컨텍스트의 격리된 롤링 요약을 유지하도록 합니다." + "description": "활성화된 세션이 유휴 상태일 때 MiniCPM이 오래된 컨텍스트의 격리된 롤링 요약을 유지하도록 합니다" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "조직에 공유", "share": "공유", "sharedToOrg": "Skill을 조직에 공유했습니다", - "shareToOrgHint": "조직 멤버는 이 Skill의 현재 스냅샷을 받습니다. 편집 후 업데이트를 게시하려면 다시 공유하세요.", + "shareToOrgHint": "조직 멤버는 이 Skill의 현재 스냅샷을 받습니다. 편집 후 업데이트를 게시하려면 다시 공유하세요", "shareOrgPlaceholder": "조직" } } diff --git a/src/i18n/locales/ko/navigation.json b/src/i18n/locales/ko/navigation.json index f85d95e60e..4df330479b 100644 --- a/src/i18n/locales/ko/navigation.json +++ b/src/i18n/locales/ko/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "소유자의 모델 {{model}}은(는) 내 키로 사용할 수 없습니다 — 이 포크는 대신 {{fallback}}을(를) 사용합니다.", "forkModelUnavailable": "소유자의 모델 {{model}}은(는) 내 키로 사용할 수 없습니다 — 실행하기 전에 모델을 선택하세요.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "취소", "deleteRoleOk": "삭제", "deleteRoleTitle": "역할을 삭제할까요?", - "followUpSuggestionsDesc": "작업 항목 턴이 완료된 뒤 가능한 다음 단계를 제안합니다. 추가 모델 요청이 사용됩니다.", + "followUpSuggestionsDesc": "작업 항목 턴이 완료된 뒤 가능한 다음 단계를 제안합니다. 추가 모델 요청이 사용됩니다", "followUpSuggestionsLabel": "Agent 후속 제안", - "goalMaxTurnsDesc": "Agent가 보통 멈추는 시점 이후에도 마지막 요청을 향해 최대 N턴 더 계속 작업합니다 (0 = 끄기).", + "goalMaxTurnsDesc": "Agent가 보통 멈추는 시점 이후에도 마지막 요청을 향해 최대 N턴 더 계속 작업합니다 (0 = 끄기)", "goalMaxTurnsLabel": "목표 지속 예산", "guidanceLabel": "Agent 지침", "guidancePlaceholder": "이 역할이 활성화되면 Agent가 동작을 어떻게 조정해야 하나요?", - "modeSwitchAutoPlanDesc": "확인 타이머가 만료되면 대기 중인 Plan 모드 제안으로 자동 전환합니다.", + "modeSwitchAutoPlanDesc": "확인 타이머가 만료되면 대기 중인 Plan 모드 제안으로 자동 전환합니다", "modeSwitchAutoPlanLabel": "모드 전환 자동 Plan", "newRoleDefaultLabel": "사용자 지정 역할", - "pageDescription": "지금 맡고 있는 역할을 정의하세요. Agent는 활성 역할의 지침을 읽고 그에 맞게 동작을 조정합니다 — 예를 들어 집중 작업 중에는 확인 질문을 줄이고, 자리를 비운 동안에는 요약을 모아서 전달합니다.", + "pageDescription": "지금 맡고 있는 역할을 정의하세요. Agent는 활성 역할의 지침을 읽고 그에 맞게 동작을 조정합니다 — 예를 들어 집중 작업 중에는 확인 질문을 줄이고, 자리를 비운 동안에는 요약을 모아서 전달합니다", "pageTitle": "내 역할", - "planAutoApproveDesc": "대기 중인 계획을 N초 후 자동 승인합니다 (0 = 내 응답 대기).", + "planAutoApproveDesc": "대기 중인 계획을 N초 후 자동 승인합니다 (0 = 내 응답 대기)", "planAutoApproveLabel": "계획 자동 승인", - "questionAutoSkipDesc": "대기 중인 Agent 질문을 N초 후 자동으로 건너뜁니다 (0 = 내 응답 대기).", + "questionAutoSkipDesc": "대기 중인 Agent 질문을 N초 후 자동으로 건너뜁니다 (0 = 내 응답 대기)", "questionAutoSkipLabel": "질문 자동 건너뛰기", "roleNameLabel": "이름", "roleNamePlaceholder": "역할 이름", "stanceAutonomous": "자율 — 나를 기다리지 않음", "stanceDeferAndBatch": "보류 & 일괄 — 먼저 작업하고 나중에 질문", - "stanceDesc": "이 역할이 활성화된 동안 Agent가 차단 결정을 처리하는 방식입니다.", + "stanceDesc": "이 역할이 활성화된 동안 Agent가 차단 결정을 처리하는 방식입니다", "stanceInteractive": "대화형 — 자유롭게 질문", "stanceLabel": "행동 태도" }, diff --git a/src/i18n/locales/ko/onboarding.json b/src/i18n/locales/ko/onboarding.json index 14244f8006..43a0ff7dfb 100644 --- a/src/i18n/locales/ko/onboarding.json +++ b/src/i18n/locales/ko/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "일반 레이아웃 둘러보기", - "description": "채팅 패널, Runtime, 스테이션 모드 전환 및 Dock을 알아봅니다.", + "description": "채팅 패널, Runtime, 스테이션 모드 전환 및 Dock을 알아봅니다", "duration": "1분", "steps": { "chat-panel": { "title": "채팅 패널", - "body": "여기서 사용자는 에이전트와 대화하고, 활동을 검토하고, 후속 조치를 보냅니다. 지침." + "body": "여기서 사용자는 에이전트와 대화하고, 활동을 검토하고, 후속 조치를 보냅니다. 지침" }, "runtime": { "title": "런타임", - "body": "여기에서 개인 사용량과 실행 상태를 확인하세요. 워크스페이스에서는 멤버 동기화 상태를 확인하고 Codex, Claude, Cursor 사용량 상세 정보를 열 수도 있습니다." + "body": "여기에서 개인 사용량과 실행 상태를 확인하세요. 워크스페이스에서는 멤버 동기화 상태를 확인하고 Codex, Claude, Cursor 사용량 상세 정보를 열 수도 있습니다" }, "station-mode-pill": { "title": "스테이션 모드 전환", - "body": "스테이션 모드를 전환하려면 이 알약을 사용하세요. 데스크탑은 작업 공간인 My Station을 의미합니다. Infinity는 에이전트 활동 보기인 Agent Station을 의미합니다." + "body": "스테이션 모드를 전환하려면 이 알약을 사용하세요. 데스크탑은 작업 공간인 My Station을 의미합니다. Infinity는 에이전트 활동 보기인 Agent Station을 의미합니다" }, "dock": { "title": "Agent Station 도킹", - "body": "도크는 스테이션 내부의 앱을 전환합니다. 둘러보기는 자동 숨기기를 일시적으로 비활성화하여 이러한 컨트롤이 계속 표시되도록 합니다." + "body": "도크는 스테이션 내부의 앱을 전환합니다. 둘러보기는 자동 숨기기를 일시적으로 비활성화하여 이러한 컨트롤이 계속 표시되도록 합니다" } } }, "codeEditor": { "title": "코드 편집기 둘러보기", - "description": "탭, 편집기 작업 공간, 소스 제어 및 Git 기록을 알아봅니다.", + "description": "탭, 편집기 작업 공간, 소스 제어 및 Git 기록을 알아봅니다", "duration": "2분", "steps": { "tabs": { "title": "코드 편집기 탭", - "body": "탭은 작업하는 동안 연 파일, 차이점, 터미널, 소스 제어 보기 및 대시보드를 수집합니다." + "body": "탭은 작업하는 동안 연 파일, 차이점, 터미널, 소스 제어 보기 및 대시보드를 수집합니다" }, "editor-surface": { "title": "편집기 작업공간", - "body": "이것은 기본 코드 편집기 화면입니다. 여기에서 파일을 열고, diff를 검사하고, 터미널을 실행하고, 생성된 변경 사항을 검토하세요." + "body": "이것은 기본 코드 편집기 화면입니다. 여기에서 파일을 열고, diff를 검사하고, 터미널을 실행하고, 생성된 변경 사항을 검토하세요" }, "create-tabs": { "title": "새 탭 만들기", - "body": "모든 탭의 더하기 메뉴를 사용하여 터미널, 브라우저 탭, 파일, 대시보드 및 저장소 유틸리티를 만드세요." + "body": "모든 탭의 더하기 메뉴를 사용하여 터미널, 브라우저 탭, 파일, 대시보드 및 저장소 유틸리티를 만드세요" }, "source-control": { "title": "Git 변경 사항", - "body": "소스 제어를 열어 변경된 파일을 검토하고, 작업 준비 또는 취소, 커밋, 풀, 푸시, 가져오기, 그리고 리모컨과 동기화하세요." + "body": "소스 제어를 열어 변경된 파일을 검토하고, 작업 준비 또는 취소, 커밋, 풀, 푸시, 가져오기, 그리고 리모컨과 동기화하세요" }, "git-history": { "title": "Git 기록", - "body": "Git 기록은 소스 제어를 커밋 기록 모드로 전환하므로 이전 커밋 및 관련 변경 사항을 검사할 수 있습니다." + "body": "Git 기록은 소스 제어를 커밋 기록 모드로 전환하므로 이전 커밋 및 관련 변경 사항을 검사할 수 있습니다" } } } @@ -68,6 +68,6 @@ "getStarted": "시작하기", "newFeatures": "새 기능", "branchesTitle": "저장소 브랜치", - "branchesDescription": "Spotlight에서 저장소 브랜치를 바로 전환하세요." + "branchesDescription": "Spotlight에서 저장소 브랜치를 바로 전환하세요" } } diff --git a/src/i18n/locales/ko/projects.json b/src/i18n/locales/ko/projects.json index 0e3ed55b7d..fc42cb540a 100644 --- a/src/i18n/locales/ko/projects.json +++ b/src/i18n/locales/ko/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "GitHub 연결을 불러오는 중...", "noConnectionTitle": "GitHub 연결을 찾을 수 없음", - "noConnectionDescription": "먼저 Integrations에서 GitHub 연결을 추가한 다음 여기로 돌아와 GitHub Issues를 가져오세요.", + "noConnectionDescription": "먼저 Integrations에서 GitHub 연결을 추가한 다음 여기로 돌아와 GitHub Issues를 가져오세요", "linkedRepoHint": "이 Project는 현재 Workspace repo에도 연결됩니다: {{repoName}}", "errors": { "invalidRepo": "owner/repo 또는 GitHub 리포지토리 URL을 사용하세요." @@ -80,7 +80,7 @@ "importLinearOrgs": "Linear 워크스페이스 가져오기", "gitFolderPath": "Git 폴더 경로(선택 사항)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "폴더 동기화를 위해 이 워크스페이스를 기존 Git 작업 트리에 연결합니다.", + "gitFolderPathHint": "폴더 동기화를 위해 이 워크스페이스를 기존 Git 작업 트리에 연결합니다", "gitFolderBadge": "Git", "gitFolderSynced": "Git 폴더와 동기화됨", "pendingSync": "동기화 대기 중", @@ -123,7 +123,7 @@ "addTeams": "팀 추가", "addLabels": "라벨 추가", "addRepos": "저장소 연결", - "noReposHint": "사용 가능한 저장소가 없습니다. 먼저 워크스페이스에 저장소를 추가하세요.", + "noReposHint": "사용 가능한 저장소가 없습니다. 먼저 워크스페이스에 저장소를 추가하세요", "addDate": "날짜 추가", "clearDate": "날짜 지우기", "noStatus": "상태 없음", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "파일 변경 없음", - "fileDiffCleanHint": "파일 변경이 감지되지 않았습니다.", + "fileDiffCleanHint": "파일 변경이 감지되지 않았습니다", "costSummary": "비용 요약", "totalCost": "총계", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Work Item 보기", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "선택한 {{count}}개 항목에 적용됩니다." + "hint": "선택한 {{count}}개 항목에 적용됩니다" }, "batchStatus": { "title": "상태 설정" @@ -457,7 +457,7 @@ "save": "현재 보기 저장", "saveTitle": "보기 저장", "namePlaceholder": "보기 이름", - "saveHint": "현재 필터를 저장합니다. 레이아웃은 처음 열 때의 기본값이 됩니다.", + "saveHint": "현재 필터를 저장합니다. 레이아웃은 처음 열 때의 기본값이 됩니다", "delete": "보기 삭제" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "속성 설정", - "hint": "선택한 {{count}}개 항목에 하나의 속성 값을 적용합니다. 값을 비워 두면 지워집니다.", + "hint": "선택한 {{count}}개 항목에 하나의 속성 값을 적용합니다. 값을 비워 두면 지워집니다", "propertyPlaceholder": "속성", "valuePlaceholder": "값", "applied": "{{count}}개 항목을 업데이트했습니다" }, "revisionConflict": { "title": "편집 충돌 해결", - "description": "{{field}}이(가) 리비전 {{expected}} 이후에 변경되었습니다. 내 편집을 리비전 {{actual}}과(와) 비교한 뒤 유지할 버전을 선택하세요.", + "description": "{{field}}이(가) 리비전 {{expected}} 이후에 변경되었습니다. 내 편집을 리비전 {{actual}}과(와) 비교한 뒤 유지할 버전을 선택하세요", "mine": "내 버전", "latest": "최신 버전", "useLatest": "최신 버전 사용", @@ -573,7 +573,7 @@ "sidebarSync": "동기화", "sync": { "title": "외부 동기화", - "description": "이 Project의 작업 항목을 Linear 또는 GitHub 같은 외부 시스템에 미러링합니다.", + "description": "이 Project의 작업 항목을 Linear 또는 GitHub 같은 외부 시스템에 미러링합니다", "adapterPicker": { "title": "어댑터", "notAttached": "연결되지 않음", @@ -582,7 +582,7 @@ "changeWarning": "새 어댑터를 연결하기 전에 현재 어댑터를 해제하세요.", "detachProjectMenuLabel": "GitHub 연결 해제", "detachProjectTitle": "{{project}}에서 GitHub 연결을 해제할까요?", - "detachProjectDescription": "GitHub Issues 동기화가 중지됩니다. 로컬 프로젝트와 가져온 작업 항목은 ORG2에 남습니다.", + "detachProjectDescription": "GitHub Issues 동기화가 중지됩니다. 로컬 프로젝트와 가져온 작업 항목은 ORG2에 남습니다", "detachProjectAction": "{{project}}에서 GitHub 연결 해제", "detachProjectSuccess": "{{project}}에서 GitHub 연결을 해제했습니다" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Webhook 상태를 불러오는 중…", - "notInstalledDescription": "Webhook 시크릿을 설치하면 다음 폴링을 기다리지 않고 공급자가 변경 사항을 직접 푸시합니다.", + "notInstalledDescription": "Webhook 시크릿을 설치하면 다음 폴링을 기다리지 않고 공급자가 변경 사항을 직접 푸시합니다", "install": "Webhook 설치", - "installedDescription": "URL을 공급자의 Webhook 구성에 붙여넣고 아래 시크릿으로 전송 내용을 서명하세요.", + "installedDescription": "URL을 공급자의 Webhook 구성에 붙여넣고 아래 시크릿으로 전송 내용을 서명하세요", "indicatorFresh": "최근 전송", "indicatorStale": "최근 전송 없음", "lastDeliveryNever": "전송 기록 없음", @@ -627,7 +627,7 @@ "copyUrl": "URL 복사", "rotate": "시크릿 회전", "secretTitle": "지금 시크릿을 복사하세요 — 다시 표시되지 않습니다", - "secretDescription": "이 서명 시크릿을 공급자의 Webhook 구성에 붙여넣으세요. 패널을 닫으면 평문 값은 저장되지 않습니다.", + "secretDescription": "이 서명 시크릿을 공급자의 Webhook 구성에 붙여넣으세요. 패널을 닫으면 평문 값은 저장되지 않습니다", "copySecret": "시크릿 복사", "dismissSecret": "저장했습니다", "secretCopied": "시크릿을 클립보드에 복사했습니다", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "상태", "statusesBuiltin": "기본 제공 상태", - "statusesBuiltinDescription": "표준 워크플로 버킷입니다. 항상 사용할 수 있습니다.", + "statusesBuiltinDescription": "표준 워크플로 버킷입니다. 항상 사용할 수 있습니다", "statusesCustom": "사용자 지정 상태", - "statusesCustomDescription": "기본 제공 버킷 위에 붙인 이름 별칭입니다. 필터, 개수, 보드는 이를 해당 버킷으로 취급합니다.", + "statusesCustomDescription": "기본 제공 버킷 위에 붙인 이름 별칭입니다. 필터, 개수, 보드는 이를 해당 버킷으로 취급합니다", "statusNamePlaceholder": "상태 이름", "noCustomStatuses": "아직 사용자 지정 상태가 없습니다.", "statusArchive": "상태 보관", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/ko/sessions.json b/src/i18n/locales/ko/sessions.json index 35803240a4..424ef6a52c 100644 --- a/src/i18n/locales/ko/sessions.json +++ b/src/i18n/locales/ko/sessions.json @@ -896,10 +896,10 @@ "exportJson": "JSON 내보내기", "importAction": "Session 가져오기", "exportDescription": "활성 Session을 휴대용 JSON 스냅샷으로 내보냅니다", - "importDescription": "Session JSON 스냅샷을 사이드바로 가져옵니다.", + "importDescription": "Session JSON 스냅샷을 사이드바로 가져옵니다", "jsonSnapshotNote": "가져온 Sessions는 읽기 전용 스냅샷이며 원본 이벤트 기록을 유지합니다", "chooseJson": "JSON 파일 선택", - "chooseJsonHint": ".orgii-session.json 내보내기 파일을 선택하세요.", + "chooseJsonHint": ".orgii-session.json 내보내기 파일을 선택하세요", "loadingPreview": "Session 이벤트 계산 중…", "noActiveSession": "활성 Session이 선택되지 않았습니다.", "importedName": "가져온 Session: {{name}}", @@ -1908,7 +1908,7 @@ "start": "시작", "missingGit": { "title": "Git 없음", - "body": "Git이 설치되어 있지 않거나 찾을 수 없습니다. ADE Manager 또는 SDE Agent에게 이 컴퓨터에 Git을 설치하도록 요청한 뒤 ORG2를 다시 시작하세요." + "body": "Git이 설치되어 있지 않거나 찾을 수 없습니다. ADE Manager 또는 SDE Agent에게 이 컴퓨터에 Git을 설치하도록 요청한 뒤 ORG2를 다시 시작하세요" }, "model": "모델", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "보관되었지만 런타임 {{count}}개를 해제하지 못했습니다. 삭제는 계속 차단됩니다.", "archiveTeardownQuiesced": "보관 및 완전 종료되었습니다. 이제 영구 삭제할 수 있습니다.", "dangerZone": "위험 영역", - "deleteDescription": "이 팀과 모든 세션 및 기록을 영구 삭제합니다.", + "deleteDescription": "이 팀과 모든 세션 및 기록을 영구 삭제합니다", "deleteTeam": "팀 삭제", "deleteTitle": "이 팀을 영구 삭제할까요?", "deleteWarning": "팀의 모든 세션과 기록이 영구 삭제됩니다. 이 작업은 취소할 수 없습니다.", diff --git a/src/i18n/locales/ko/settings.json b/src/i18n/locales/ko/settings.json index 1f92172b85..e4737c0247 100644 --- a/src/i18n/locales/ko/settings.json +++ b/src/i18n/locales/ko/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "데스크톱 제어 중 ORG2 숨기기", - "hideBeforeActionHelper": "Peekaboo가 작업하는 동안 ORG2 기본 창을 숨기고 Wingman 바와 플로팅 캡션을 표시하여 Agent가 포커스를 직접 관리하지 않게 합니다.", + "hideBeforeActionHelper": "Peekaboo가 작업하는 동안 ORG2 기본 창을 숨기고 Wingman 바와 플로팅 캡션을 표시하여 Agent가 포커스를 직접 관리하지 않게 합니다", "antiDetection": "HID 자동화 탐지 방지 강화", - "antiDetectionHelper": "Peekaboo가 클릭과 키 입력에 대해 순수 접근성 동작 대신 실제 CGEvent(HID) 입력을 전송하도록 하여, 자동화 탐지 기능이 있는 앱(예: WeChat)이 데스크톱 제어를 차단할 가능성을 줄입니다.", + "antiDetectionHelper": "Peekaboo가 클릭과 키 입력에 대해 순수 접근성 동작 대신 실제 CGEvent(HID) 입력을 전송하도록 하여, 자동화 탐지 기능이 있는 앱(예: WeChat)이 데스크톱 제어를 차단할 가능성을 줄입니다", "humanInputProfile": "사람 같은 입력 리듬", - "humanInputProfileHelper": "합성된 키 입력에 사람과 유사한 타이밍 프로필을 적용합니다. 비활성화하면 최고 속도로 입력합니다.", + "humanInputProfileHelper": "합성된 키 입력에 사람과 유사한 타이밍 프로필을 적용합니다. 비활성화하면 최고 속도로 입력합니다", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "누락: {{bins}}", "skillMissingEnv": "누락된 환경 변수: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Pull 전략", "pullStrategyDesc": "동기화 시 git pull이 remote 변경 사항을 통합하는 방법", - "pullStrategyHint": "Rebase(기본값):당신의 commit을 remote 위에 replay. linear history 생성.\n\nMerge:branch가 diverge했을 때 merge commit 생성. 전체 history 보존.\n\nFast-forward only:merge가 필요 없을 때만 pull 허용. branch가 diverge하면 거부.", + "pullStrategyHint": "Rebase(기본값):당신의 commit을 remote 위에 replay. linear history 생성.\n\nMerge:branch가 diverge했을 때 merge commit 생성. 전체 history 보존.\n\nFast-forward only:merge가 필요 없을 때만 pull 허용. branch가 diverge하면 거부", "strategyMerge": "Merge", "strategyRebase": "Rebase (기본값)", "strategyFfOnly": "Fast-forward만 (엄격)", @@ -602,7 +602,7 @@ "checkFailed": "업데이트 확인 실패", "checking": "업데이트 확인 중…", "officialInstalled": "공식 앱 설치 완료", - "officialInstalledDesc": "{{version}}이(가) {{path}}에 설치되었습니다. 현재 로컬 빌드는 변경 없이 계속 실행됩니다.", + "officialInstalledDesc": "{{version}}이(가) {{path}}에 설치되었습니다. 현재 로컬 빌드는 변경 없이 계속 실행됩니다", "downloadFailed": "업데이트 다운로드 실패", "retryNow": "지금 다시 시도", "downloadTimeout": "다운로드 시간이 초과되었습니다. 네트워크 또는 프록시를 확인한 후 다시 시도하세요.", @@ -762,7 +762,7 @@ "tableVersion": "버전", "tableStatus": "상태", "installSection": "설치", - "installHintNote": "현재 플랫폼에 권장되는 설치 명령어입니다. 대부분의 시스템 의존성은 관리자 권한이 필요하므로 자동으로 실행하지 않습니다 — terminal에 복사하여 붙여 넣으세요." + "installHintNote": "현재 플랫폼에 권장되는 설치 명령어입니다. 대부분의 시스템 의존성은 관리자 권한이 필요하므로 자동으로 실행하지 않습니다 — terminal에 복사하여 붙여 넣으세요" }, "agentSessions": { "chatFontSize": "채팅 글꼴 크기", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "{{agentName}}에 진화 활성화", "noAgentsTitle": "사용 가능한 Agent가 없습니다", - "noAgentsSubtitle": "진화를 구성하려면 Agent를 만들거나 가져오세요." + "noAgentsSubtitle": "진화를 구성하려면 Agent를 만들거나 가져오세요" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/pl/common.json b/src/i18n/locales/pl/common.json index e41ea678fd..62dfad75ea 100644 --- a/src/i18n/locales/pl/common.json +++ b/src/i18n/locales/pl/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Utwórz token", "openGitSettingsButton": "Otwórz ustawienia", "configureInSettings": "Skonfiguruj Git w ustawieniach", - "configureInSettingsDesc": "Dodaj dostęp GitHub App, zapisz token lub przeskanuj lokalne dane uwierzytelniające w Ustawienia → Połączenia, a następnie spróbuj ponownie wykonać tę operację Git." + "configureInSettingsDesc": "Dodaj dostęp GitHub App, zapisz token lub przeskanuj lokalne dane uwierzytelniające w Ustawienia → Połączenia, a następnie spróbuj ponownie wykonać tę operację Git" }, "actions": { "publish": "Opublikuj", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Nie udało się odczytać nazwy repozytorium z remote origin", "authRequired": { "title": "Połącz GitHub", - "description": "Przejdź do Ustawienia → Połączenia, aby połączyć konto GitHub." + "description": "Przejdź do Ustawienia → Połączenia, aby połączyć konto GitHub" }, "navigationTrail": "Nawigacja pull requesta", "failedToLoad": "Nie udało się wczytać pull requestów", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Opisz issue (opcjonalnie)…", "authRequired": { "title": "Połącz GitHub", - "description": "Przejdź do Ustawienia → Połączenia, aby połączyć konto GitHub." + "description": "Przejdź do Ustawienia → Połączenia, aby połączyć konto GitHub" }, "reAuthRequired": "Wymagana autoryzacja GitHub", - "reAuthDescription": "Twój token GitHub wygasł. Przejdź do Ustawienia → Połączenia, aby połączyć ponownie.", + "reAuthDescription": "Twój token GitHub wygasł. Przejdź do Ustawienia → Połączenia, aby połączyć ponownie", "goToSettings": "Przejdź do ustawień", "loadingTimeline": "Wczytywanie aktywności…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "Zamknąć ORG2?", - "subtitle": "Uruchomione sesje zachowają swój bieżący stan. Możesz ponownie otworzyć ORG2 później.", + "subtitle": "Uruchomione sesje zachowają swój bieżący stan. Możesz ponownie otworzyć ORG2 później", "cancel": "Anuluj", "confirm": "Zamknij" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari przechowuje pliki cookie w folderze chronionym przez macOS. Zezwól ORG2 na pełny dostęp do dysku w Ustawieniach systemowych, a następnie sprawdź ponownie.", + "explain": "Safari przechowuje pliki cookie w folderze chronionym przez macOS. Zezwól ORG2 na pełny dostęp do dysku w Ustawieniach systemowych, a następnie sprawdź ponownie", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/pl/integrations.json b/src/i18n/locales/pl/integrations.json index cd975c3632..546d3cbec0 100644 --- a/src/i18n/locales/pl/integrations.json +++ b/src/i18n/locales/pl/integrations.json @@ -18,7 +18,7 @@ "removeLocal": "Usuń lokalne", "unlist": "Wycofaj z listy", "confirmRemoveTitle": "Usunąć „{{name}}”?", - "confirmRemoveMessage": "To usunie lokalnie zapisany klucz. Tej operacji nie można cofnąć.", + "confirmRemoveMessage": "To usunie lokalnie zapisany klucz. Tej operacji nie można cofnąć", "toasts": { "refreshed": "{{name}} odświeżono pomyślnie", "refreshError": "Nie udało się odświeżyć {{name}}: {{error}}", @@ -69,10 +69,10 @@ "accountEmail": "E-mail konta" }, "customModels": { - "manualSetupHint": "Dodaj dokładny identyfikator modelu akceptowany przez endpoint i opcjonalną nazwę. Wykrywanie modeli jest opcjonalne; włączenie nie sprawdza zgodności.", + "manualSetupHint": "Dodaj dokładny identyfikator modelu akceptowany przez endpoint i opcjonalną nazwę. Wykrywanie modeli jest opcjonalne; włączenie nie sprawdza zgodności", "modelNamePlaceholder": "Wprowadź id modelu...", "displayNamePlaceholder": "Opcjonalna etykieta", - "emptyHint": "Nie dodano jeszcze niestandardowych modeli.", + "emptyHint": "Nie dodano jeszcze niestandardowych modeli", "addModel": "Dodaj model", "testRequiresEndpoint": "Wprowadź punkt końcowy i klucz API, aby przetestować ten model", "invalidModelId": "Identyfikatory modeli muszą mieć od 1 do 256 bajtów, bez spacji i znaków sterujących.", @@ -146,7 +146,7 @@ "keysVerified": "Klucze zweryfikowane", "failedMessage": "Twój klucz API i Session Token nie wydają się należeć do tego samego konta Cursor.", "failedError": "Błąd: {{error}}", - "failedHint": "Utwórz nową ofertę z pasującymi kluczami z tego samego konta Cursor.", + "failedHint": "Utwórz nową ofertę z pasującymi kluczami z tego samego konta Cursor", "listingRejected": "Oferta odrzucona", "rejectedByAdmin": "Ta oferta została odrzucona przez administratora." }, @@ -268,7 +268,7 @@ "opensEmbeddedBrowser": "Użyj wewnętrznej przeglądarki, aby połączyć konto Cursor.", "loggedIn": "Zalogowano", "loginStep": "Logowanie", - "signInToCursorHint": "Zaloguj się na swoje konto Cursor. To okno zamknie się automatycznie po logowaniu.", + "signInToCursorHint": "Zaloguj się na swoje konto Cursor. To okno zamknie się automatycznie po logowaniu", "loadingText": "Ładowanie...", "failedToLoadBrowser": "Nie udało się załadować przeglądarki", "copilotCreatePat": "Utwórz GitHub Personal Access Token", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Logowanie Cursor", "modelCount": "{{count}} modeli", "cursorLoginReadyTitle": "Konto Cursor połączone", - "cursorLoginReadyDesc": "Wygeneruj i wklej poniżej Cursor API Key. Cursor agent nie będzie działać bez tego API Key.", + "cursorLoginReadyDesc": "Wygeneruj i wklej poniżej Cursor API Key. Cursor agent nie będzie działać bez tego API Key", "cursorApiKeyBrowserHint": "Po zalogowaniu ORG2 otworzy Cursor dashboard. Wygeneruj tam User API Key i wklej go poniżej", "cursorApiKeyRecommendedTitle": "Zalecany Cursor API Key", "cursorApiKeyRecommendedDesc": "Możesz kontynuować bez Cursor API Key, jeśli chcesz używać Cursor tylko z Rust agents ORG2; po prostu zaloguj się w przeglądarce wewnętrznej albo podaj session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway kieruje przychodzące wiadomości z każdego kanału. Wybierz klucz API i model, których ma używać do routingu semantycznego.", + "description": "Gateway kieruje przychodzące wiadomości z każdego kanału. Wybierz klucz API i model, których ma używać do routingu semantycznego", "statusReady": "Gotowe", "statusUnconfigured": "Nie skonfigurowano", "account": "Konto klucza API", @@ -581,7 +581,7 @@ "model": "Model", "modelPlaceholder": "Wybierz model", "groupPerUser": "Izoluj sesje czatu grupowego per użytkownik", - "groupPerUserDesc": "Każdy uczestnik czatu grupowego otrzymuje własny kontekst sesji." + "groupPerUserDesc": "Każdy uczestnik czatu grupowego otrzymuje własny kontekst sesji" }, "emailProtocol": "Protokół", "matrixDeviceNamePlaceholder": "Bot ORG2" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Otwórz adres weryfikacyjny i wpisz ten kod, aby autoryzować GitHub.", "scanCredHelper": "Pomocnik poświadczeń Git ({{name}})", "scanEmpty": "Nic nie wykryto", - "scanEmptyDesc": "Nie znaleziono tokenów gh CLI, pomocników poświadczeń ani kluczy SSH. Wybierz inną metodę powyżej.", + "scanEmptyDesc": "Nie znaleziono tokenów gh CLI, pomocników poświadczeń ani kluczy SSH. Wybierz inną metodę powyżej", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Wykryte poświadczenia", - "scanResultsDesc": "Wybierz jedno do zaimportowania. Przed zapisaniem sprawdzamy tokeny w GitHub.", + "scanResultsDesc": "Wybierz jedno do zaimportowania. Przed zapisaniem sprawdzamy tokeny w GitHub", "scanSshKey": "Klucz SSH — {{name}}", "scanning": "Skanowanie…", - "scanningDesc": "Wyszukiwanie tokenów gh CLI, pomocników poświadczeń i kluczy SSH na tej maszynie.", + "scanningDesc": "Wyszukiwanie tokenów gh CLI, pomocników poświadczeń i kluczy SSH na tej maszynie", "sshKeyPath": "Ścieżka klucza SSH", "sshKeyPathDesc": "Bezwzględna ścieżka do klucza prywatnego (np. ~/.ssh/id_ed25519). Odpowiadający klucz publiczny musi być już zarejestrowany w GitHub.", "scanSelectRequired": "Wybierz wykryte poświadczenie do zaimportowania.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Zmiana dostawcy Browser CLI wymaga ponownego uruchomienia ORG2, zanim agenci zobaczą wybrane narzędzie. Uruchomić ponownie teraz?", "sidecarDownloadsSectionTitle": "Pobieranie sidecarów", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Pobiera plik binarny Agent Browser dla tej platformy do ~/.orgii/bin. ORG2 nigdy nie pobiera go podczas uruchamiania.", + "sidecarAgentBrowserDesc": "Pobiera plik binarny Agent Browser dla tej platformy do ~/.orgii/bin. ORG2 nigdy nie pobiera go podczas uruchamiania", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Pobiera binarkę macOS Peekaboo do automatyzacji pulpitu do ~/.orgii/bin. Nieobsługiwane platformy pozostają wyłączone.", + "sidecarPeekabooDesc": "Pobiera binarkę macOS Peekaboo do automatyzacji pulpitu do ~/.orgii/bin. Nieobsługiwane platformy pozostają wyłączone", "sidecarUnsupported": "Nieobsługiwane", "sidecarInstalled": "Zainstalowano", "sidecarNotInstalled": "Nie zainstalowano", @@ -867,7 +867,7 @@ "connectMethodDesc": "Wybierz, jak połączyć swoje konto GitHub", "githubApp": "GitHub App", "detectFromSystem": "Wykryj z systemu", - "detectFromSystemDesc": "Użyj gh CLI, kluczy SSH lub credential helperów Git.", + "detectFromSystemDesc": "Użyj gh CLI, kluczy SSH lub credential helperów Git", "credentialsDetected": "Wykryto poświadczenia", "detectedVia": "Wykryto przez {{source}}", "sshKeyLabel": "Klucz SSH", @@ -887,7 +887,7 @@ "noCredentialsFound": "Nie znaleziono poświadczeń GitHub", "noCredentialsHint": "Zainstaluj GitHub CLI (gh) lub skonfiguruj klucze SSH, aby używać lokalnego wykrywania", "manuallyAddToken": "Dodaj token ręcznie", - "manualTokenDesc": "Wklej GitHub PAT do operacji Git przez HTTPS.", + "manualTokenDesc": "Wklej GitHub PAT do operacji Git przez HTTPS", "autoDetect": "Wykryj automatycznie", "autoDetectTokenSaved": "GitHub token zapisany", "autoDetectSshSwitched": "Remote przełączony na SSH", @@ -913,7 +913,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Dodaj {{name}} <{{email}}> do commitów Git utworzonych z ORG2", "noTokenYet": "Potrzebujesz Tokenu?", - "createTokenDesc": "Otwórz GitHub i utwórz PAT z dostępem repo.", + "createTokenDesc": "Otwórz GitHub i utwórz PAT z dostępem repo", "accountConnected": "Konto GitHub połączone", "disconnectMsg": "Czy na pewno chcesz się rozłączyć? Spowoduje to usunięcie dostępu do wszystkich Repo z tego konta.", "disconnectTitle": "Rozłącz konto GitHub", @@ -922,7 +922,7 @@ "connectRepoDesc": "Połącz konto GitHub, aby uzyskać dostęp do Repo", "github": "GitHub", "signInWithGithub": "Zaloguj się przez GitHub", - "signInWithGithubDesc": "Autoryzuj ORG2 przez GitHub Device Flow. Bez konieczności hostowania serwera.", + "signInWithGithubDesc": "Autoryzuj ORG2 przez GitHub Device Flow. Bez konieczności hostowania serwera", "oauthWaiting": "Oczekiwanie na autoryzację", "oauthDeviceCodeDesc": "Otwórz URL poniżej i wpisz ten kod", "oauthOpenGithub": "Otwórz GitHub", @@ -978,7 +978,7 @@ "filePathPlaceholder": "np. scripts/validate.py", "removeFile": "Usuń plik", "editorNoDraftTitle": "Brak rozpoczętego szkicu umiejętności", - "editorNoDraftDesc": "Zacznij od kliknięcia Utwórz na stronie Umiejętności lub wybierz umiejętność do edycji.", + "editorNoDraftDesc": "Zacznij od kliknięcia Utwórz na stronie Umiejętności lub wybierz umiejętność do edycji", "scopeWorkspace": "Specyficzne dla repo", "deleteConfirmTitle": "Usunąć skill «{{name}}»?", "deleteConfirmMessage": "Spowoduje to usunięcie skilla i wszystkich jego plików. Tej operacji nie można cofnąć." @@ -987,7 +987,7 @@ "tab": "MCP", "searchPlaceholder": "Szukaj serwerów MCP...", "noServers": "Brak skonfigurowanych serwerów MCP", - "noServersDesc": "Dodaj serwer MCP, aby rozszerzyć możliwości Agent o zewnętrzne narzędzia.", + "noServersDesc": "Dodaj serwer MCP, aby rozszerzyć możliwości Agent o zewnętrzne narzędzia", "addServer": "Dodaj serwer MCP", "editServer": "Edytuj serwer MCP", "serverName": "Nazwa serwera", @@ -1113,12 +1113,12 @@ }, "sessionProvenance": { "masterToggle": "Hooki pochodzenia", - "masterToggleDesc": "Po wyłączeniu wszystkie zarządzane hooki zostaną odinstalowane i żadne sygnały nie będą zbierane; wybory dla poszczególnych platform zostaną zachowane i przywrócone po ponownym włączeniu.", + "masterToggleDesc": "Po wyłączeniu wszystkie zarządzane hooki zostaną odinstalowane i żadne sygnały nie będą zbierane; wybory dla poszczególnych platform zostaną zachowane i przywrócone po ponownym włączeniu", "liveStatusToggle": "Stan agenta na żywo", - "liveStatusToggleDesc": "Pokazuje, czy uruchomieni agenci CLI pracują, czy czekają. Wyłączenie nie zatrzymuje rejestrowania pochodzenia.", + "liveStatusToggleDesc": "Pokazuje, czy uruchomieni agenci CLI pracują, czy czekają. Wyłączenie nie zatrzymuje rejestrowania pochodzenia", "title": "Pochodzenie sesji", "capture": "Rejestruj interakcje z plikami", - "description": "Rejestruje odczyty i zapisy plików jako metadane. Prompty, wyniki narzędzi i zawartość plików nie są przechowywane.", + "description": "Rejestruje odczyty i zapisy plików jako metadane. Prompty, wyniki narzędzi i zawartość plików nie są przechowywane", "installDrift": "Zapisane ustawienie różni się od zainstalowanego hooka. Przełącz rejestrowanie, aby naprawić zarządzany hook. Konfiguracja: {{path}}", "copyPath": "Kopiuj", "col": { @@ -1181,7 +1181,7 @@ "addMember": "Dodaj członka", "noMembers": "Dodaj członków, aby zbudować hierarchię org", "membersLabel": "Członkowie zespołu", - "membersDesc": "Każdy wiersz to członek z niezależnym uprawnieniem Writer i ustawieniami komunikacji. Nazwy muszą być unikalne; rola opisuje jedynie specjalizację.", + "membersDesc": "Każdy wiersz to członek z niezależnym uprawnieniem Writer i ustawieniami komunikacji. Nazwy muszą być unikalne; rola opisuje jedynie specjalizację", "memberName": "Nazwa", "memberNamePlaceholder": "Unikalna nazwa routingu (np. SDE-1)", "memberNameDuplicate": "Inny członek już używa tej nazwy. Nazwy muszą być unikalne w obrębie org.", @@ -1234,9 +1234,9 @@ "descriptionPlaceholder": "Czym zajmuje się ten Agent? (opcjonalnie)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Maks. współbieżność użycia narzędzi", - "maxToolUseConcurrencyDesc": "Współbieżne wywołania narzędzi na wiadomość asystenta. Domyślnie: 10.", + "maxToolUseConcurrencyDesc": "Współbieżne wywołania narzędzi na wiadomość asystenta. Domyślnie: 10", "subAgentWorktreeIsolationLabel": "Izolacja Worktree", - "subAgentWorktreeIsolationDesc": "Uruchom w tymczasowym Worktree Git (izolowany dostęp do plików i Shell).", + "subAgentWorktreeIsolationDesc": "Uruchom w tymczasowym Worktree Git (izolowany dostęp do plików i Shell)", "addSubAgent": "Dodaj Sub-Agent...", "noSubAgents": "Brak skonfigurowanych Sub-Agents." }, @@ -1269,30 +1269,30 @@ "applicableAgentsDesc": "Do których agentów ta reguła ma zastosowanie (pozostaw puste dla wszystkich)", "selectAgents": "Wybierz agentów…", "ruleSource": "Źródło", - "ruleSourceDesc": "Wybierz User dla wszystkich repo albo Repo dla wytycznej jednego repo.", + "ruleSourceDesc": "Wybierz User dla wszystkich repo albo Repo dla wytycznej jednego repo", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Preferencja użytkownika dostępna we wszystkich repo.", + "ruleSourceUserDesc": "Preferencja użytkownika dostępna we wszystkich repo", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Wytyczna zapisana dla jednego wybranego repo.", + "ruleSourceRepoDesc": "Wytyczna zapisana dla jednego wybranego repo", "ruleRepo": "Repo", "ruleRepoDesc": "Jedyne repo, którego dotyczy ta wytyczna", "selectRepo": "Wybierz repo…", "ruleSourcePersonal": "Osobiste", - "ruleSourcePersonalDesc": "Przechowywane w ~/.orgii/personal/rules/. Tylko OS Agent / sesje kanałów.", + "ruleSourcePersonalDesc": "Przechowywane w ~/.orgii/personal/rules/. Tylko OS Agent / sesje kanałów", "findSkills": { "title": "Szukaj Skills", "placeholder": "Szukaj Skills...", "installs": "Installs", "emptyTitle": "Szukaj Skills", - "emptySubtitle": "Wpisz co najmniej 2 znaki, a następnie naciśnij Enter, aby znaleźć Skills.", + "emptySubtitle": "Wpisz co najmniej 2 znaki, a następnie naciśnij Enter, aby znaleźć Skills", "noResults": "Nie znaleziono Skills", - "noResultsDesc": "Spróbuj użyć innego wyszukiwanego hasła." + "noResultsDesc": "Spróbuj użyć innego wyszukiwanego hasła" }, "importAgentTitle": "Importuj Agents z innych apps", "importAgentColumn": "Agent", "importedItemAgents": "agentów", "emptySelectionTitle": "Wybierz członka lub Zespół Agent", - "emptySelectionSubtitle": "Wybierz Agent lub Zespół Agent z paska bocznego, aby wyświetlić i skonfigurować.", + "emptySelectionSubtitle": "Wybierz Agent lub Zespół Agent z paska bocznego, aby wyświetlić i skonfigurować", "applicableWorkspace": "Dotyczy Workspace", "tableTabs": { "agents": "Agents", @@ -1325,18 +1325,18 @@ "cliManagedConfig": { "title": "Przełącznik konfiguracji CLI", "modeLabel": "Tryb", - "modeDesc": "Domyślny przywraca własną konfigurację CLI. Zarządzany przez ORG2 zapisuje konfigurację proxy z kopią zapasową.", + "modeDesc": "Domyślny przywraca własną konfigurację CLI. Zarządzany przez ORG2 zapisuje konfigurację proxy z kopią zapasową", "modeDefault": "Domyślny", "modeOrgii": "Zarządzany przez ORG2", "conflict": "Zmiana zewnętrzna", "conflictTitle": "Konflikt", - "conflictDesc": "Aktywna konfiguracja CLI zmieniła się po zapisaniu jej przez ORG2.", + "conflictDesc": "Aktywna konfiguracja CLI zmieniła się po zapisaniu jej przez ORG2", "proxyStatus": "Proxy", "proxyDefault": "Tryb domyślny", "proxyReady": "Proxy gotowe", "proxyNotReady": "Proxy niegotowe", "keyLabel": "Klucz", - "keyDesc": "Wyświetlane są tylko klucze API zgodne z tym CLI i zarządzanym proxy.", + "keyDesc": "Wyświetlane są tylko klucze API zgodne z tym CLI i zarządzanym proxy", "selectKey": "Wybierz klucz", "modelLabel": "Model", "selectModel": "Wybierz model", @@ -1349,7 +1349,7 @@ "forceRestore": "Wymuś przywrócenie", "applySuccess": "Zastosowano konfigurację zarządzaną przez ORG2", "restoreSuccess": "Przywrócono domyślną konfigurację", - "proxyLifecycleDesc": "W tym trybie ORG2 musi pozostać uruchomione. Zamknięcie okna zostawia proxy w zasobniku; wyjście z ORG2 bezpiecznie przywraca tryb Domyślny, chyba że konfiguracja zmieniła się zewnętrznie." + "proxyLifecycleDesc": "W tym trybie ORG2 musi pozostać uruchomione. Zamknięcie okna zostawia proxy w zasobniku; wyjście z ORG2 bezpiecznie przywraca tryb Domyślny, chyba że konfiguracja zmieniła się zewnętrznie" } }, "tableHeaders": { @@ -1546,7 +1546,7 @@ "elapsed": "Łączny czas: {{value}}s" }, "title": "Rezydentny Housekeeper", - "description": "Lokalny MiniCPM obsługuje dopracowywanie promptów, krótkie objaśnienia kroków i lekkie sterowanie UI. Zadania programistyczne i złożona konfiguracja ADE nadal używają głównego modelu Agenta.", + "description": "Lokalny MiniCPM obsługuje dopracowywanie promptów, krótkie objaśnienia kroków i lekkie sterowanie UI. Zadania programistyczne i złożona konfiguracja ADE nadal używają głównego modelu Agenta", "autoAccount": "Automatycznie wybierz konto vLLM MiniCPM", "tiles": { "model": "Model", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Włącz housekeepera", - "description": "Po wyłączeniu dopracowywanie promptów, objaśnienia kroków i lekkie sterowanie UI nie będą używać MiniCPM." + "description": "Po wyłączeniu dopracowywanie promptów, objaśnienia kroków i lekkie sterowanie UI nie będą używać MiniCPM" }, "account": { "title": "Konto vLLM MiniCPM", - "description": "Używa istniejącego konta vllm_api z KeyVault; nie tworzy osobnego magazynu poświadczeń." + "description": "Używa istniejącego konta vllm_api z KeyVault; nie tworzy osobnego magazynu poświadczeń" }, "model": { "title": "ID modelu", - "description": "Docker vLLM MiniCPM5-1B domyślnie używa openbmb/MiniCPM5-1B." + "description": "Docker vLLM MiniCPM5-1B domyślnie używa openbmb/MiniCPM5-1B" }, "context": { "title": "Bezpieczny budżet kontekstu", - "description": "Na GPU 4GB używaj ostrożnego budżetu 10000 tokenów zamiast polegać na teoretycznym limicie 32k." + "description": "Na GPU 4GB używaj ostrożnego budżetu 10000 tokenów zamiast polegać na teoretycznym limicie 32k" } }, "features": { "promptPolish": { "title": "Dopracowywanie promptów", - "description": "Ręcznie dopracuj wpis przed wysłaniem go do silniejszego modelu programistycznego." + "description": "Ręcznie dopracuj wpis przed wysłaniem go do silniejszego modelu programistycznego" }, "stepExplain": { "title": "Objaśnienia kroków Agenta", - "description": "Generuj jedno lub dwa krótkie objaśnienia po chińsku dla kroków odtwarzania sesji." + "description": "Generuj jedno lub dwa krótkie objaśnienia po chińsku dla kroków odtwarzania sesji" }, "uiControl": { "title": "Lekkie sterowanie ADE/UI", - "description": "MiniCPM może jedynie klasyfikować żądania według ścisłej lokalnej białej listy akcji." + "description": "MiniCPM może jedynie klasyfikować żądania według ścisłej lokalnej białej listy akcji" }, "contextCompact": { "title": "Automatyczna konserwacja kontekstu", - "description": "Pozwól MiniCPM utrzymywać odizolowane kroczące podsumowanie starszego kontekstu, gdy włączone sesje są bezczynne." + "description": "Pozwól MiniCPM utrzymywać odizolowane kroczące podsumowanie starszego kontekstu, gdy włączone sesje są bezczynne" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Udostępnij organizacji", "share": "Udostępnij", "sharedToOrg": "Skill udostępniony organizacji", - "shareToOrgHint": "Członkowie organizacji otrzymują bieżącą migawkę tego skilla; po edycji udostępnij ponownie, aby opublikować aktualizację.", + "shareToOrgHint": "Członkowie organizacji otrzymują bieżącą migawkę tego skilla; po edycji udostępnij ponownie, aby opublikować aktualizację", "shareOrgPlaceholder": "Organizacja" } } diff --git a/src/i18n/locales/pl/navigation.json b/src/i18n/locales/pl/navigation.json index a61e62fad4..f6de5292c0 100644 --- a/src/i18n/locales/pl/navigation.json +++ b/src/i18n/locales/pl/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "Model {{model}} właściciela nie jest dostępny z Twoimi kluczami — ten fork użyje zamiast tego {{fallback}}.", "forkModelUnavailable": "Model {{model}} właściciela nie jest dostępny z Twoimi kluczami — wybierz model przed uruchomieniem tego forka.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Anuluj", "deleteRoleOk": "Usuń", "deleteRoleTitle": "Usunąć rolę?", - "followUpSuggestionsDesc": "Sugeruj możliwe kolejne kroki po ukończonej turze elementu pracy. Wymaga dodatkowego żądania do modelu.", + "followUpSuggestionsDesc": "Sugeruj możliwe kolejne kroki po ukończonej turze elementu pracy. Wymaga dodatkowego żądania do modelu", "followUpSuggestionsLabel": "Sugestie kolejnych kroków Agenta", - "goalMaxTurnsDesc": "Kontynuuj pracę nad moim ostatnim żądaniem przez maksymalnie N dodatkowych tur po tym, jak Agent normalnie by się zatrzymał (0 = wył.).", + "goalMaxTurnsDesc": "Kontynuuj pracę nad moim ostatnim żądaniem przez maksymalnie N dodatkowych tur po tym, jak Agent normalnie by się zatrzymał (0 = wył.)", "goalMaxTurnsLabel": "Budżet kontynuacji celu", "guidanceLabel": "Wskazówki dla Agenta", "guidancePlaceholder": "Jak Agent ma dostosować swoje zachowanie, gdy ta rola jest aktywna?", - "modeSwitchAutoPlanDesc": "Automatycznie przełączaj oczekujące sugestie trybu Plan, gdy upłynie ich czas na potwierdzenie.", + "modeSwitchAutoPlanDesc": "Automatycznie przełączaj oczekujące sugestie trybu Plan, gdy upłynie ich czas na potwierdzenie", "modeSwitchAutoPlanLabel": "Automatyczne przełączanie w tryb Plan", "newRoleDefaultLabel": "Własna rola", - "pageDescription": "Określ rolę, którą właśnie pełnisz. Agent czyta wskazówki aktywnej roli i odpowiednio dostosowuje swoje zachowanie — na przykład zadaje mniej pytań doprecyzowujących, gdy pracujesz w skupieniu, albo grupuje podsumowania, gdy Cię nie ma.", + "pageDescription": "Określ rolę, którą właśnie pełnisz. Agent czyta wskazówki aktywnej roli i odpowiednio dostosowuje swoje zachowanie — na przykład zadaje mniej pytań doprecyzowujących, gdy pracujesz w skupieniu, albo grupuje podsumowania, gdy Cię nie ma", "pageTitle": "Moje role", - "planAutoApproveDesc": "Automatycznie zatwierdzaj oczekujące plany po N sekundach (0 = czekaj na mnie).", + "planAutoApproveDesc": "Automatycznie zatwierdzaj oczekujące plany po N sekundach (0 = czekaj na mnie)", "planAutoApproveLabel": "Automatyczne zatwierdzanie planu", - "questionAutoSkipDesc": "Automatycznie pomijaj oczekujące pytania Agenta po N sekundach (0 = czekaj na mnie).", + "questionAutoSkipDesc": "Automatycznie pomijaj oczekujące pytania Agenta po N sekundach (0 = czekaj na mnie)", "questionAutoSkipLabel": "Automatyczne pomijanie pytań", "roleNameLabel": "Nazwa", "roleNamePlaceholder": "Nazwa roli", "stanceAutonomous": "Autonomicznie — nigdy nie czekaj na mnie", "stanceDeferAndBatch": "Odłóż i grupuj — najpierw pracuj, pytaj później", - "stanceDesc": "Jak Agent traktuje decyzje blokujące, gdy ta rola jest aktywna.", + "stanceDesc": "Jak Agent traktuje decyzje blokujące, gdy ta rola jest aktywna", "stanceInteractive": "Interaktywnie — pytaj mnie swobodnie", "stanceLabel": "Postawa zachowania" }, diff --git a/src/i18n/locales/pl/onboarding.json b/src/i18n/locales/pl/onboarding.json index 20eee61b39..b975d1d983 100644 --- a/src/i18n/locales/pl/onboarding.json +++ b/src/i18n/locales/pl/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Ogólny przewodnik po układzie", - "description": "Poznaj panel czatu, Runtime, przełącznik trybu stacji i dok.", + "description": "Poznaj panel czatu, Runtime, przełącznik trybu stacji i dok", "duration": "1 min", "steps": { "chat-panel": { "title": "Panel czatu", - "body": "W tym miejscu użytkownicy prowadzą rozmowy z agentami, przeglądają aktywność i wysyłają dalsze instrukcje." + "body": "W tym miejscu użytkownicy prowadzą rozmowy z agentami, przeglądają aktywność i wysyłają dalsze instrukcje" }, "runtime": { "title": "Środowisko uruchomieniowe", - "body": "Tutaj sprawdzisz własne użycie i stan działania. W obszaru roboczego możesz też sprawdzić synchronizację członków oraz otworzyć szczegóły użycia Codex, Claude i Cursor." + "body": "Tutaj sprawdzisz własne użycie i stan działania. W obszaru roboczego możesz też sprawdzić synchronizację członków oraz otworzyć szczegóły użycia Codex, Claude i Cursor" }, "station-mode-pill": { "title": "Stacja przełączania tryby", - "body": "Użyj tej pigułki, aby przełączać tryby stacji. Pulpit oznacza My Station, Twoje miejsce pracy. Infinity oznacza Agent Station, widok aktywności agenta." + "body": "Użyj tej pigułki, aby przełączać tryby stacji. Pulpit oznacza My Station, Twoje miejsce pracy. Infinity oznacza Agent Station, widok aktywności agenta" }, "dock": { "title": "Dok Agent Station", - "body": "Dok przełącza aplikacje wewnątrz stacji. Wycieczka tymczasowo wyłącza automatyczne ukrywanie, więc te elementy sterujące pozostają widoczne." + "body": "Dok przełącza aplikacje wewnątrz stacji. Wycieczka tymczasowo wyłącza automatyczne ukrywanie, więc te elementy sterujące pozostają widoczne" } } }, "codeEditor": { "title": "Przewodnik po Edytorze kodu", - "description": "Poznaj karty, obszar roboczy edytora, kontrolę źródeł i historię Git.", + "description": "Poznaj karty, obszar roboczy edytora, kontrolę źródeł i historię Git", "duration": "2 min", "steps": { "tabs": { "title": "Karty Edytora kodu", - "body": "Na kartach gromadzone są pliki, różnice, terminale, widoki kontroli źródła i pulpity nawigacyjne, których używasz otwórz podczas pracy w repozytorium." + "body": "Na kartach gromadzone są pliki, różnice, terminale, widoki kontroli źródła i pulpity nawigacyjne, których używasz otwórz podczas pracy w repozytorium" }, "editor-surface": { "title": "Obszar roboczy edytora", - "body": "To jest główna powierzchnia Edytora kodu. Tutaj otwieraj pliki, sprawdzaj różnice, uruchamiaj terminale i przeglądaj wygenerowane zmiany." + "body": "To jest główna powierzchnia Edytora kodu. Tutaj otwieraj pliki, sprawdzaj różnice, uruchamiaj terminale i przeglądaj wygenerowane zmiany" }, "create-tabs": { "title": "Utwórz nowe karty", - "body": "Użyj menu plus na wszystkich kartach, aby tworzyć terminale, karty przeglądarki, pliki, pulpity nawigacyjne i narzędzia repo." + "body": "Użyj menu plus na wszystkich kartach, aby tworzyć terminale, karty przeglądarki, pliki, pulpity nawigacyjne i narzędzia repo" }, "source-control": { "title": "Zmiany w Gicie", - "body": "Open Source Control w celu przeglądania zmienionych plików, tworzenia lub cofania pracy, zatwierdzania, ściągania, wypychania, pobieraj i synchronizuj ze zdalnym." + "body": "Open Source Control w celu przeglądania zmienionych plików, tworzenia lub cofania pracy, zatwierdzania, ściągania, wypychania, pobieraj i synchronizuj ze zdalnym" }, "git-history": { "title": "Historia Git", - "body": "Historia Git przełącza Kontrolę źródła w tryb historii zatwierdzeń, dzięki czemu możesz sprawdzać poprzednie zatwierdzenia i powiązane zmiany." + "body": "Historia Git przełącza Kontrolę źródła w tryb historii zatwierdzeń, dzięki czemu możesz sprawdzać poprzednie zatwierdzenia i powiązane zmiany" } } } @@ -68,6 +68,6 @@ "getStarted": "Pierwsze kroki", "newFeatures": "Nowe funkcje", "branchesTitle": "Gałęzie repozytorium", - "branchesDescription": "Przełączaj gałęzie repozytorium bezpośrednio w Spotlight." + "branchesDescription": "Przełączaj gałęzie repozytorium bezpośrednio w Spotlight" } } diff --git a/src/i18n/locales/pl/projects.json b/src/i18n/locales/pl/projects.json index 423c647ca1..6f652d0e8f 100644 --- a/src/i18n/locales/pl/projects.json +++ b/src/i18n/locales/pl/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Ładowanie połączeń GitHub...", "noConnectionTitle": "Nie znaleziono połączenia GitHub", - "noConnectionDescription": "Najpierw dodaj połączenie GitHub w Integrations, a potem wróć tutaj, aby zaimportować GitHub Issues.", + "noConnectionDescription": "Najpierw dodaj połączenie GitHub w Integrations, a potem wróć tutaj, aby zaimportować GitHub Issues", "linkedRepoHint": "Ten Project zostanie też połączony z bieżącym Workspace repo: {{repoName}}", "errors": { "invalidRepo": "Użyj owner/repo albo adresu URL repozytorium GitHub." @@ -80,7 +80,7 @@ "importLinearOrgs": "Importuj obszary robocze Linear", "gitFolderPath": "Ścieżka folderu Git (opcjonalnie)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Połącz ten obszar roboczy z istniejącym drzewem roboczym Git, aby synchronizować folder.", + "gitFolderPathHint": "Połącz ten obszar roboczy z istniejącym drzewem roboczym Git, aby synchronizować folder", "gitFolderBadge": "Git", "gitFolderSynced": "Synchronizowane z folderem Git", "pendingSync": "Oczekuje na synchronizację", @@ -123,7 +123,7 @@ "addTeams": "Dodaj zespoły", "addLabels": "Dodaj etykiety", "addRepos": "Połącz Repo", - "noReposHint": "Brak dostępnych Repo. Najpierw dodaj Repo do swojego Workspace.", + "noReposHint": "Brak dostępnych Repo. Najpierw dodaj Repo do swojego Workspace", "addDate": "Dodaj datę", "clearDate": "Wyczyść datę", "noStatus": "Brak statusu", @@ -403,7 +403,7 @@ "prDraft": "Szkic", "changedFilesSection": "Zmienione pliki", "fileDiffClean": "Diff pliku jest czysty", - "fileDiffCleanHint": "Nie wykryto zmian w plikach.", + "fileDiffCleanHint": "Nie wykryto zmian w plikach", "costSummary": "Podsumowanie kosztów", "totalCost": "Łącznie", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Pokaż Work Items", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Dotyczy {{count}} wybranych elementów." + "hint": "Dotyczy {{count}} wybranych elementów" }, "batchStatus": { "title": "Ustaw status" @@ -457,7 +457,7 @@ "save": "Zapisz bieżący widok", "saveTitle": "Zapisz widok", "namePlaceholder": "Nazwa widoku", - "saveHint": "Zapisuje bieżące filtry; układ jest używany przy pierwszym otwarciu.", + "saveHint": "Zapisuje bieżące filtry; układ jest używany przy pierwszym otwarciu", "delete": "Usuń widok" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Ustaw właściwość", - "hint": "Stosuje jedną wartość właściwości do {{count}} wybranych elementów. Pozostaw wartość pustą, aby ją wyczyścić.", + "hint": "Stosuje jedną wartość właściwości do {{count}} wybranych elementów. Pozostaw wartość pustą, aby ją wyczyścić", "propertyPlaceholder": "Właściwość", "valuePlaceholder": "Wartość", "applied": "Zaktualizowano {{count}} elementów" }, "revisionConflict": { "title": "Rozwiąż konflikt edycji", - "description": "{{field}} zmieniło się po rewizji {{expected}}. Porównaj swoją edycję z rewizją {{actual}}, a następnie wybierz, którą wersję zachować.", + "description": "{{field}} zmieniło się po rewizji {{expected}}. Porównaj swoją edycję z rewizją {{actual}}, a następnie wybierz, którą wersję zachować", "mine": "Moja wersja", "latest": "Najnowsza wersja", "useLatest": "Użyj najnowszej", @@ -573,7 +573,7 @@ "confirmDelete": "Rozumiem, usuń tę historię", "sync": { "title": "Synchronizacja zewnętrzna", - "description": "Lustrzane odbicie zadań tej historii do zewnętrznego systemu, takiego jak Linear lub GitHub.", + "description": "Lustrzane odbicie zadań tej historii do zewnętrznego systemu, takiego jak Linear lub GitHub", "adapterPicker": { "title": "Adapter", "notAttached": "Nie podłączony", @@ -582,7 +582,7 @@ "changeWarning": "Odłącz bieżący adapter przed podłączeniem nowego.", "detachProjectMenuLabel": "Odłącz GitHub", "detachProjectTitle": "Odłączyć GitHub od {{project}}?", - "detachProjectDescription": "Synchronizacja GitHub Issues zostanie zatrzymana. Lokalny projekt i zaimportowane elementy pracy pozostaną w ORG2.", + "detachProjectDescription": "Synchronizacja GitHub Issues zostanie zatrzymana. Lokalny projekt i zaimportowane elementy pracy pozostaną w ORG2", "detachProjectAction": "Odłącz GitHub od {{project}}", "detachProjectSuccess": "Odłączono GitHub od {{project}}" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Ładowanie statusu webhook…", - "notInstalledDescription": "Zainstaluj sekret webhook, aby ten dostawca mógł bezpośrednio przesyłać zmiany zamiast czekać na kolejne odpytanie.", + "notInstalledDescription": "Zainstaluj sekret webhook, aby ten dostawca mógł bezpośrednio przesyłać zmiany zamiast czekać na kolejne odpytanie", "install": "Zainstaluj webhook", - "installedDescription": "Wklej URL do konfiguracji webhook swojego dostawcy i użyj poniższego sekretu do podpisywania dostarczeń.", + "installedDescription": "Wklej URL do konfiguracji webhook swojego dostawcy i użyj poniższego sekretu do podpisywania dostarczeń", "indicatorFresh": "Niedawne dostarczenie", "indicatorStale": "Brak niedawnego dostarczenia", "lastDeliveryNever": "Brak dostarczeń", @@ -627,7 +627,7 @@ "copyUrl": "Kopiuj URL", "rotate": "Rotuj sekret", "secretTitle": "Skopiuj ten sekret teraz — nie będzie wyświetlony ponownie", - "secretDescription": "Wklej ten sekret podpisu do konfiguracji webhook swojego dostawcy. Nie przechowujemy wartości w postaci jawnej po zamknięciu tego panelu.", + "secretDescription": "Wklej ten sekret podpisu do konfiguracji webhook swojego dostawcy. Nie przechowujemy wartości w postaci jawnej po zamknięciu tego panelu", "copySecret": "Kopiuj sekret", "dismissSecret": "Zapisałem go", "secretCopied": "Sekret skopiowany do schowka", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Statusy", "statusesBuiltin": "Statusy wbudowane", - "statusesBuiltinDescription": "Standardowe grupy przepływu pracy. Zawsze dostępne.", + "statusesBuiltinDescription": "Standardowe grupy przepływu pracy. Zawsze dostępne", "statusesCustom": "Statusy własne", - "statusesCustomDescription": "Nazwane aliasy dla grupy wbudowanej. Filtry, liczniki i tablice traktują je jak ich grupę.", + "statusesCustomDescription": "Nazwane aliasy dla grupy wbudowanej. Filtry, liczniki i tablice traktują je jak ich grupę", "statusNamePlaceholder": "Nazwa statusu", "noCustomStatuses": "Brak własnych statusów.", "statusArchive": "Archiwizuj status", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/pl/sessions.json b/src/i18n/locales/pl/sessions.json index 8587b7072d..b4ff705bfa 100644 --- a/src/i18n/locales/pl/sessions.json +++ b/src/i18n/locales/pl/sessions.json @@ -896,10 +896,10 @@ "exportJson": "Eksportuj JSON", "importAction": "Importuj Session", "exportDescription": "Eksportuj aktywną Session jako przenośny snapshot JSON", - "importDescription": "Importuj snapshot JSON Session do paska bocznego.", + "importDescription": "Importuj snapshot JSON Session do paska bocznego", "jsonSnapshotNote": "Zaimportowane Sessions są snapshotami tylko do odczytu i zachowują oryginalną historię zdarzeń", "chooseJson": "Wybierz plik JSON", - "chooseJsonHint": "Wybierz plik eksportu .orgii-session.json.", + "chooseJsonHint": "Wybierz plik eksportu .orgii-session.json", "loadingPreview": "Zliczanie zdarzeń Session…", "noActiveSession": "Nie wybrano aktywnej Session.", "importedName": "Zaimportowana Session: {{name}}", @@ -1927,7 +1927,7 @@ "start": "Start", "missingGit": { "title": "Brakuje Git", - "body": "Git nie jest zainstalowany albo nie można go znaleźć. Poproś ADE Manager lub SDE Agent o zainstalowanie Git na tym komputerze, a następnie uruchom ponownie ORG2." + "body": "Git nie jest zainstalowany albo nie można go znaleźć. Poproś ADE Manager lub SDE Agent o zainstalowanie Git na tym komputerze, a następnie uruchom ponownie ORG2" }, "model": "Model", "contextMenu": { @@ -2142,7 +2142,7 @@ "archiveTeardownRetained": "Zarchiwizowano, ale nie zwolniono {{count}} środowiska. Usuwanie pozostaje zablokowane.", "archiveTeardownQuiesced": "Zarchiwizowano i całkowicie zatrzymano. Można już trwale usunąć.", "dangerZone": "Strefa niebezpieczna", - "deleteDescription": "Trwale usuń ten zespół, wszystkie sesje i historię.", + "deleteDescription": "Trwale usuń ten zespół, wszystkie sesje i historię", "deleteTeam": "Usuń zespół", "deleteTitle": "Trwale usunąć ten zespół?", "deleteWarning": "Wszystkie sesje i historia zespołu zostaną trwale usunięte. Tej operacji nie można cofnąć.", diff --git a/src/i18n/locales/pl/settings.json b/src/i18n/locales/pl/settings.json index 49645e162d..95d29bc268 100644 --- a/src/i18n/locales/pl/settings.json +++ b/src/i18n/locales/pl/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Bezpieczeństwo pulpitu", "hideBeforeAction": "Ukryj ORG2 podczas sterowania pulpitem", - "hideBeforeActionHelper": "Ukrywa główne okno ORG2 podczas działania Peekaboo oraz pokazuje pasek Wingman i pływający podpis, aby Agent nie musiał zarządzać fokusem.", + "hideBeforeActionHelper": "Ukrywa główne okno ORG2 podczas działania Peekaboo oraz pokazuje pasek Wingman i pływający podpis, aby Agent nie musiał zarządzać fokusem", "antiDetection": "Wzmocnienie ochrony przed wykrywaniem automatyzacji (HID)", - "antiDetectionHelper": "Sprawia, że Peekaboo wysyła prawdziwe zdarzenia CGEvent (HID) dla kliknięć i naciśnięć klawiszy zamiast samych akcji Dostępności, dzięki czemu aplikacje z wykrywaniem automatyzacji (np. WeChat) rzadziej blokują sterowanie pulpitem.", + "antiDetectionHelper": "Sprawia, że Peekaboo wysyła prawdziwe zdarzenia CGEvent (HID) dla kliknięć i naciśnięć klawiszy zamiast samych akcji Dostępności, dzięki czemu aplikacje z wykrywaniem automatyzacji (np. WeChat) rzadziej blokują sterowanie pulpitem", "humanInputProfile": "Ludzkie tempo pisania", - "humanInputProfileHelper": "Stosuje profil czasowy zbliżony do ludzkiego dla syntetyzowanych naciśnięć klawiszy. Wyłącz, aby pisać z maksymalną prędkością.", + "humanInputProfileHelper": "Stosuje profil czasowy zbliżony do ludzkiego dla syntetyzowanych naciśnięć klawiszy. Wyłącz, aby pisać z maksymalną prędkością", "escapeAbort": "Klawisz Escape systemu przerywa", - "escapeAbortHelper": "Traktuj wciśnięcie sprzętowego Escape jako sygnał przerwania trwającej automatyzacji pulpitu. Nasze syntetyzowane naciśnięcia Escape są zawsze wyłączane." + "escapeAbortHelper": "Traktuj wciśnięcie sprzętowego Escape jako sygnał przerwania trwającej automatyzacji pulpitu. Nasze syntetyzowane naciśnięcia Escape są zawsze wyłączane" }, "skillMissingBins": "Brakuje: {{bins}}", "skillMissingEnv": "Brak zmiennych środowiskowych: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Strategia pull", "pullStrategyDesc": "Jak git pull integruje zmiany zdalne podczas synchronizacji", - "pullStrategyHint": "Rebase (domyślnie): Odtwarza Twoje commity na szczycie zdalnego. Tworzy liniową historię.\n\nMerge: Tworzy commit scalający, gdy gałęzie się rozeszły. Zachowuje pełną historię.\n\nFast-forward only: Pozwala na pull tylko, gdy scalanie nie jest potrzebne. Odmawia, jeśli gałęzie się rozeszły.", + "pullStrategyHint": "Rebase (domyślnie): Odtwarza Twoje commity na szczycie zdalnego. Tworzy liniową historię.\n\nMerge: Tworzy commit scalający, gdy gałęzie się rozeszły. Zachowuje pełną historię.\n\nFast-forward only: Pozwala na pull tylko, gdy scalanie nie jest potrzebne. Odmawia, jeśli gałęzie się rozeszły", "strategyMerge": "Merge", "strategyRebase": "Rebase (domyślnie)", "strategyFfOnly": "Tylko fast-forward (ścisłe)", @@ -602,7 +602,7 @@ "checkFailed": "Sprawdzanie aktualizacji nie powiodło się", "checking": "Sprawdzanie aktualizacji…", "officialInstalled": "Oficjalna aplikacja zainstalowana", - "officialInstalledDesc": "Wersja {{version}} jest zainstalowana w {{path}}. Ta lokalna kompilacja nadal działa bez zmian.", + "officialInstalledDesc": "Wersja {{version}} jest zainstalowana w {{path}}. Ta lokalna kompilacja nadal działa bez zmian", "downloadFailed": "Pobieranie aktualizacji nie powiodło się", "retryNow": "Ponów teraz", "downloadTimeout": "Przekroczono czas pobierania. Sprawdź sieć lub serwer proxy i spróbuj ponownie.", @@ -738,7 +738,7 @@ "tableVersion": "Wersja", "tableStatus": "Status", "installSection": "Instalacja", - "installHintNote": "Sugerowane polecenie instalacji dla Twojej platformy. Większość zależności systemowych wymaga uprawnień administratora, więc nie uruchamiamy ich automatycznie — skopiuj i wklej do swojego terminala." + "installHintNote": "Sugerowane polecenie instalacji dla Twojej platformy. Większość zależności systemowych wymaga uprawnień administratora, więc nie uruchamiamy ich automatycznie — skopiuj i wklej do swojego terminala" }, "storage": { "dataDirectory": "Katalog danych", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Włącz ewolucję dla {{agentName}}", "noAgentsTitle": "Brak dostępnych Agentów", - "noAgentsSubtitle": "Utwórz lub zaimportuj Agenta, aby skonfigurować ewolucję." + "noAgentsSubtitle": "Utwórz lub zaimportuj Agenta, aby skonfigurować ewolucję" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/pt/common.json b/src/i18n/locales/pt/common.json index 5c4ec38328..7803720857 100644 --- a/src/i18n/locales/pt/common.json +++ b/src/i18n/locales/pt/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Criar token", "openGitSettingsButton": "Abrir configurações", "configureInSettings": "Configure o Git nas configurações", - "configureInSettingsDesc": "Adicione acesso do GitHub App, salve um token ou escaneie credenciais locais em Configurações → Conexões e tente esta operação Git novamente." + "configureInSettingsDesc": "Adicione acesso do GitHub App, salve um token ou escaneie credenciais locais em Configurações → Conexões e tente esta operação Git novamente" }, "actions": { "publish": "Publicar", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Não foi possível obter o nome do repositório a partir do remote origin", "authRequired": { "title": "Conectar GitHub", - "description": "Vá para Configurações → Conexões para conectar sua conta do GitHub." + "description": "Vá para Configurações → Conexões para conectar sua conta do GitHub" }, "navigationTrail": "Navegação de pull requests", "failedToLoad": "Falha ao carregar pull requests", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Descreva o issue (opcional)…", "authRequired": { "title": "Conectar GitHub", - "description": "Vá para Configurações → Conexões para conectar sua conta do GitHub." + "description": "Vá para Configurações → Conexões para conectar sua conta do GitHub" }, "reAuthRequired": "Autorização do GitHub necessária", - "reAuthDescription": "Seu token do GitHub expirou. Vá para Configurações → Conexões para reconectar.", + "reAuthDescription": "Seu token do GitHub expirou. Vá para Configurações → Conexões para reconectar", "goToSettings": "Ir para Configurações", "loadingTimeline": "Carregando atividade…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "Sair do ORG2?", - "subtitle": "As sessões em execução manterão o estado atual. Você poderá reabrir o ORG2 mais tarde.", + "subtitle": "As sessões em execução manterão o estado atual. Você poderá reabrir o ORG2 mais tarde", "cancel": "Cancelar", "confirm": "Sair" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "O Safari guarda os cookies em uma pasta protegida pelo macOS. Permita o ORG2 em Acesso Total ao Disco nos Ajustes do Sistema e verifique novamente.", + "explain": "O Safari guarda os cookies em uma pasta protegida pelo macOS. Permita o ORG2 em Acesso Total ao Disco nos Ajustes do Sistema e verifique novamente", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/pt/integrations.json b/src/i18n/locales/pt/integrations.json index a6bf7da3bd..20a666b9e5 100644 --- a/src/i18n/locales/pt/integrations.json +++ b/src/i18n/locales/pt/integrations.json @@ -18,7 +18,7 @@ "removeLocal": "Remover local", "unlist": "Remover anúncio", "confirmRemoveTitle": "Remover \"{{name}}\"?", - "confirmRemoveMessage": "Isso removerá a chave salva localmente. Esta ação não pode ser desfeita.", + "confirmRemoveMessage": "Isso removerá a chave salva localmente. Esta ação não pode ser desfeita", "toasts": { "refreshed": "{{name}} atualizado com sucesso", "refreshError": "Falha ao atualizar {{name}}: {{error}}", @@ -69,10 +69,10 @@ "accountEmail": "Email da conta" }, "customModels": { - "manualSetupHint": "Adicione o ID exato aceito pelo endpoint e um nome opcional. A descoberta é opcional; ativar um modelo não verifica sua compatibilidade.", + "manualSetupHint": "Adicione o ID exato aceito pelo endpoint e um nome opcional. A descoberta é opcional; ativar um modelo não verifica sua compatibilidade", "modelNamePlaceholder": "Digite o id do modelo...", "displayNamePlaceholder": "Rótulo opcional", - "emptyHint": "Nenhum modelo personalizado adicionado ainda.", + "emptyHint": "Nenhum modelo personalizado adicionado ainda", "addModel": "Adicionar modelo", "testRequiresEndpoint": "Informe um endpoint e uma chave de API para testar este modelo", "invalidModelId": "IDs de modelo devem ter de 1 a 256 bytes, sem espaços nem caracteres de controle.", @@ -146,7 +146,7 @@ "keysVerified": "Chaves verificadas", "failedMessage": "Sua chave de API e o token de sessão não parecem pertencer à mesma conta do Cursor.", "failedError": "Erro: {{error}}", - "failedHint": "Crie um novo anúncio com chaves correspondentes da mesma conta do Cursor.", + "failedHint": "Crie um novo anúncio com chaves correspondentes da mesma conta do Cursor", "listingRejected": "Anúncio rejeitado", "rejectedByAdmin": "Este anúncio foi rejeitado por um administrador." }, @@ -268,7 +268,7 @@ "opensEmbeddedBrowser": "Use o navegador interno para conectar sua conta Cursor.", "loggedIn": "Logado", "loginStep": "Login", - "signInToCursorHint": "Entre na sua conta Cursor. Esta janela fecha automaticamente após o login.", + "signInToCursorHint": "Entre na sua conta Cursor. Esta janela fecha automaticamente após o login", "loadingText": "Carregando...", "failedToLoadBrowser": "Falha ao carregar o navegador", "copilotCreatePat": "Criar GitHub Personal Access Token", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Login do Cursor", "modelCount": "{{count}} modelos", "cursorLoginReadyTitle": "Conta Cursor conectada", - "cursorLoginReadyDesc": "Gere e cole uma Cursor API Key abaixo. O Cursor agent não funcionará sem esta API Key.", + "cursorLoginReadyDesc": "Gere e cole uma Cursor API Key abaixo. O Cursor agent não funcionará sem esta API Key", "cursorApiKeyBrowserHint": "Após o login, o ORG2 abre o dashboard do Cursor. Gere uma User API Key lá e cole abaixo", "cursorApiKeyRecommendedTitle": "Cursor API Key recomendada", "cursorApiKeyRecommendedDesc": "Você pode continuar sem uma Cursor API Key se quiser usar o Cursor apenas com os Rust agents da ORG2; basta entrar com o navegador interno ou fornecer um session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "O Gateway roteia mensagens recebidas de todos os canais. Escolha uma chave de API + modelo que ele deve usar para roteamento semântico.", + "description": "O Gateway roteia mensagens recebidas de todos os canais. Escolha uma chave de API + modelo que ele deve usar para roteamento semântico", "statusReady": "Pronto", "statusUnconfigured": "Não configurado", "account": "Conta da chave de API", @@ -581,7 +581,7 @@ "model": "Modelo", "modelPlaceholder": "Selecione um modelo", "groupPerUser": "Isolar sessões de chat de grupo por usuário", - "groupPerUserDesc": "Cada participante de um chat de grupo recebe seu próprio contexto de sessão." + "groupPerUserDesc": "Cada participante de um chat de grupo recebe seu próprio contexto de sessão" }, "emailProtocol": "Protocolo", "matrixDeviceNamePlaceholder": "Bot do ORG2" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Abra a URL de verificação e insira este código para autorizar o GitHub.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "Nada detectado", - "scanEmptyDesc": "Nenhum token do gh CLI, credential helper ou chave SSH foi encontrado. Escolha outro método acima.", + "scanEmptyDesc": "Nenhum token do gh CLI, credential helper ou chave SSH foi encontrado. Escolha outro método acima", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Credenciais detectadas", - "scanResultsDesc": "Escolha uma para importar. Validamos os tokens no GitHub antes de salvar.", + "scanResultsDesc": "Escolha uma para importar. Validamos os tokens no GitHub antes de salvar", "scanSshKey": "Chave SSH — {{name}}", "scanning": "Verificando…", - "scanningDesc": "Procurando tokens do gh CLI, credential helpers e chaves SSH nesta máquina.", + "scanningDesc": "Procurando tokens do gh CLI, credential helpers e chaves SSH nesta máquina", "sshKeyPath": "Caminho da chave SSH", "sshKeyPathDesc": "Caminho absoluto da chave privada (ex.: ~/.ssh/id_ed25519). A chave pública correspondente já deve estar registrada no GitHub.", "scanSelectRequired": "Escolha uma credencial detectada para importar.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Alterar o provedor Browser CLI exige reiniciar o ORG2 antes que os agentes vejam a ferramenta selecionada. Reiniciar agora?", "sidecarDownloadsSectionTitle": "Downloads de sidecars", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Baixa o binário do Agent Browser para esta plataforma em ~/.orgii/bin. O ORG2 nunca baixa isso na inicialização.", + "sidecarAgentBrowserDesc": "Baixa o binário do Agent Browser para esta plataforma em ~/.orgii/bin. O ORG2 nunca baixa isso na inicialização", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Baixa o binário macOS do Peekaboo para automação de desktop em ~/.orgii/bin. Plataformas sem suporte permanecem desativadas.", + "sidecarPeekabooDesc": "Baixa o binário macOS do Peekaboo para automação de desktop em ~/.orgii/bin. Plataformas sem suporte permanecem desativadas", "sidecarUnsupported": "Sem suporte", "sidecarInstalled": "Instalado", "sidecarNotInstalled": "Não instalado", @@ -867,7 +867,7 @@ "connectMethodDesc": "Escolha como conectar sua conta do GitHub", "githubApp": "GitHub App", "detectFromSystem": "Detectar do sistema", - "detectFromSystemDesc": "Use gh CLI, chaves SSH ou credential helpers Git.", + "detectFromSystemDesc": "Use gh CLI, chaves SSH ou credential helpers Git", "credentialsDetected": "Credenciais detectadas", "detectedVia": "Detectado via {{source}}", "sshKeyLabel": "Chave SSH", @@ -887,7 +887,7 @@ "noCredentialsFound": "Nenhuma credencial do GitHub encontrada", "noCredentialsHint": "Instale o GitHub CLI (gh) ou configure chaves SSH para usar a detecção local", "manuallyAddToken": "Adicionar token manualmente", - "manualTokenDesc": "Cole um GitHub PAT para operações Git HTTPS.", + "manualTokenDesc": "Cole um GitHub PAT para operações Git HTTPS", "autoDetect": "Detectar automaticamente", "autoDetectTokenSaved": "Token do GitHub salvo", "autoDetectSshSwitched": "Remote alterado para SSH", @@ -913,7 +913,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Adicionar {{name}} <{{email}}> aos commits Git criados no ORG2", "noTokenYet": "Precisa de um Token?", - "createTokenDesc": "Abra o GitHub e crie um PAT com acesso repo.", + "createTokenDesc": "Abra o GitHub e crie um PAT com acesso repo", "accountConnected": "Conta do GitHub conectada", "disconnectMsg": "Tem certeza de que deseja desconectar? Isso removerá o acesso a todos os Repos desta conta.", "disconnectTitle": "Desconectar conta do GitHub", @@ -922,7 +922,7 @@ "connectRepoDesc": "Conecte uma conta do GitHub para acessar Repos", "github": "GitHub", "signInWithGithub": "Entrar com GitHub", - "signInWithGithubDesc": "Autorize o ORG2 via fluxo de dispositivo do GitHub. Sem hospedagem de servidor.", + "signInWithGithubDesc": "Autorize o ORG2 via fluxo de dispositivo do GitHub. Sem hospedagem de servidor", "oauthWaiting": "Aguardando autorização", "oauthDeviceCodeDesc": "Abra a URL abaixo e insira este código", "oauthOpenGithub": "Abrir GitHub", @@ -978,7 +978,7 @@ "filePathPlaceholder": "ex.: scripts/validate.py", "removeFile": "Remover arquivo", "editorNoDraftTitle": "Nenhum rascunho de Skill em andamento", - "editorNoDraftDesc": "Comece clicando em Criar na página de Skills, ou escolha um Skill para editar.", + "editorNoDraftDesc": "Comece clicando em Criar na página de Skills, ou escolha um Skill para editar", "scopeWorkspace": "Específico do repo", "deleteConfirmTitle": "Excluir skill «{{name}}»?", "deleteConfirmMessage": "Isso removerá o skill e todos os seus arquivos. Esta ação não pode ser desfeita." @@ -987,7 +987,7 @@ "tab": "MCP", "searchPlaceholder": "Buscar servidores MCP...", "noServers": "Nenhum servidor MCP configurado", - "noServersDesc": "Adicione um servidor MCP para estender as capacidades do Agent com ferramentas externas.", + "noServersDesc": "Adicione um servidor MCP para estender as capacidades do Agent com ferramentas externas", "addServer": "Adicionar servidor MCP", "editServer": "Editar servidor MCP", "serverName": "Nome do servidor", @@ -1113,12 +1113,12 @@ }, "sessionProvenance": { "masterToggle": "Hooks de proveniência", - "masterToggleDesc": "Quando desativado, todos os hooks gerenciados são desinstalados e nenhum sinal é capturado; as escolhas de cada plataforma são mantidas e restauradas ao reativar.", + "masterToggleDesc": "Quando desativado, todos os hooks gerenciados são desinstalados e nenhum sinal é capturado; as escolhas de cada plataforma são mantidas e restauradas ao reativar", "liveStatusToggle": "Status do agente em tempo real", - "liveStatusToggleDesc": "Mostra se os agentes de CLI estão trabalhando ou aguardando. Desativar mantém a captura de proveniência.", + "liveStatusToggleDesc": "Mostra se os agentes de CLI estão trabalhando ou aguardando. Desativar mantém a captura de proveniência", "title": "Proveniência da sessão", "capture": "Registrar interações com arquivos", - "description": "Registra leituras e gravações de arquivos como metadados. Prompts, saídas de ferramentas e conteúdo dos arquivos não são armazenados.", + "description": "Registra leituras e gravações de arquivos como metadados. Prompts, saídas de ferramentas e conteúdo dos arquivos não são armazenados", "installDrift": "A preferência salva e o hook instalado são diferentes. Alterne a captura para reparar o hook gerenciado. Configuração: {{path}}", "copyPath": "Copiar", "col": { @@ -1181,7 +1181,7 @@ "addMember": "Adicionar membro", "noMembers": "Adicione membros para montar a hierarquia da sua equipe", "membersLabel": "Membros do time", - "membersDesc": "Cada linha é um membro com concessão de Writer e configurações de comunicação independentes. Os nomes devem ser únicos; o papel descreve apenas a especialidade.", + "membersDesc": "Cada linha é um membro com concessão de Writer e configurações de comunicação independentes. Os nomes devem ser únicos; o papel descreve apenas a especialidade", "memberName": "Nome", "memberNamePlaceholder": "Nome de roteamento único (ex.: SDE-1)", "memberNameDuplicate": "Outro membro já usa este nome. Os nomes devem ser únicos dentro da Org.", @@ -1234,9 +1234,9 @@ "descriptionPlaceholder": "O que este Agent faz? (opcional)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Concorrência máxima de uso de ferramentas", - "maxToolUseConcurrencyDesc": "Chamadas de ferramenta concorrentes por mensagem do assistente. Padrão: 10.", + "maxToolUseConcurrencyDesc": "Chamadas de ferramenta concorrentes por mensagem do assistente. Padrão: 10", "subAgentWorktreeIsolationLabel": "Isolamento de Worktree", - "subAgentWorktreeIsolationDesc": "Executar em um Worktree Git temporário (acesso isolado a arquivos e Shell).", + "subAgentWorktreeIsolationDesc": "Executar em um Worktree Git temporário (acesso isolado a arquivos e Shell)", "addSubAgent": "Adicionar Sub-Agent...", "noSubAgents": "Nenhum Sub-Agent configurado." }, @@ -1269,30 +1269,30 @@ "applicableAgentsDesc": "A quais Agents esta regra se aplica (deixe vazio para todos)", "selectAgents": "Selecionar Agents…", "ruleSource": "Origem", - "ruleSourceDesc": "Escolha User para todos os repos ou Repo para uma diretriz específica de um repo.", + "ruleSourceDesc": "Escolha User para todos os repos ou Repo para uma diretriz específica de um repo", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Uma preferência de usuário disponível em todos os repos.", + "ruleSourceUserDesc": "Uma preferência de usuário disponível em todos os repos", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Uma diretriz salva para um único repo selecionado.", + "ruleSourceRepoDesc": "Uma diretriz salva para um único repo selecionado", "ruleRepo": "Repo", "ruleRepoDesc": "O único repo ao qual esta diretriz se aplica", "selectRepo": "Selecionar repo…", "ruleSourcePersonal": "Pessoal", - "ruleSourcePersonalDesc": "Armazenada em ~/.orgii/personal/rules/. Apenas sessões de OS Agent / canal.", + "ruleSourcePersonalDesc": "Armazenada em ~/.orgii/personal/rules/. Apenas sessões de OS Agent / canal", "findSkills": { "title": "Buscar Skills", "placeholder": "Buscar Skills...", "installs": "Installs", "emptyTitle": "Buscar Skills", - "emptySubtitle": "Digite pelo menos 2 caracteres e pressione Enter para encontrar Skills.", + "emptySubtitle": "Digite pelo menos 2 caracteres e pressione Enter para encontrar Skills", "noResults": "Nenhum Skill encontrado", - "noResultsDesc": "Tente outro termo de busca." + "noResultsDesc": "Tente outro termo de busca" }, "importAgentTitle": "Importar Agents de outros apps", "importAgentColumn": "Agent", "importedItemAgents": "Agents", "emptySelectionTitle": "Selecione um membro ou uma Equipe Agent", - "emptySelectionSubtitle": "Escolha um Agent ou Equipe Agent na barra lateral para visualizar e configurar.", + "emptySelectionSubtitle": "Escolha um Agent ou Equipe Agent na barra lateral para visualizar e configurar", "applicableWorkspace": "Workspace aplicável", "tableTabs": { "agents": "Agents", @@ -1325,18 +1325,18 @@ "cliManagedConfig": { "title": "Troca de configuração da CLI", "modeLabel": "Modo", - "modeDesc": "Padrão restaura a configuração própria da CLI. Gerenciado pelo ORG2 grava uma configuração de proxy com backup.", + "modeDesc": "Padrão restaura a configuração própria da CLI. Gerenciado pelo ORG2 grava uma configuração de proxy com backup", "modeDefault": "Padrão", "modeOrgii": "Gerenciado pelo ORG2", "conflict": "Alteração externa", "conflictTitle": "Conflito", - "conflictDesc": "A configuração ativa da CLI mudou depois que o ORG2 a gravou.", + "conflictDesc": "A configuração ativa da CLI mudou depois que o ORG2 a gravou", "proxyStatus": "Proxy", "proxyDefault": "Modo padrão", "proxyReady": "Proxy pronto", "proxyNotReady": "Proxy não está pronto", "keyLabel": "Chave", - "keyDesc": "Somente chaves de API compatíveis com esta CLI e com o proxy gerenciado são exibidas.", + "keyDesc": "Somente chaves de API compatíveis com esta CLI e com o proxy gerenciado são exibidas", "selectKey": "Selecionar chave", "modelLabel": "Modelo", "selectModel": "Selecionar modelo", @@ -1349,7 +1349,7 @@ "forceRestore": "Forçar restauração", "applySuccess": "Configuração gerenciada pelo ORG2 aplicada", "restoreSuccess": "Configuração padrão restaurada", - "proxyLifecycleDesc": "Mantenha o ORG2 em execução enquanto usa este modo. Fechar a janela mantém o proxy na bandeja; sair do ORG2 restaura o Padrão com segurança, a menos que a configuração tenha sido alterada externamente." + "proxyLifecycleDesc": "Mantenha o ORG2 em execução enquanto usa este modo. Fechar a janela mantém o proxy na bandeja; sair do ORG2 restaura o Padrão com segurança, a menos que a configuração tenha sido alterada externamente" } }, "tableHeaders": { @@ -1546,7 +1546,7 @@ "elapsed": "Tempo total: {{value}}s" }, "title": "Housekeeper residente", - "description": "O MiniCPM local cuida do polimento de prompts, de explicações curtas de etapas e do controle leve de UI. Tarefas de programação e configurações complexas de ADE continuam usando o modelo principal do agent.", + "description": "O MiniCPM local cuida do polimento de prompts, de explicações curtas de etapas e do controle leve de UI. Tarefas de programação e configurações complexas de ADE continuam usando o modelo principal do agent", "autoAccount": "Selecionar automaticamente a conta vLLM do MiniCPM", "tiles": { "model": "Modelo", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Ativar housekeeper", - "description": "Quando desativado, o polimento de prompts, as explicações de etapas e o controle leve de UI não usarão o MiniCPM." + "description": "Quando desativado, o polimento de prompts, as explicações de etapas e o controle leve de UI não usarão o MiniCPM" }, "account": { "title": "Conta vLLM do MiniCPM", - "description": "Reutiliza uma conta vllm_api existente do KeyVault; nenhum armazenamento de credenciais separado é criado." + "description": "Reutiliza uma conta vllm_api existente do KeyVault; nenhum armazenamento de credenciais separado é criado" }, "model": { "title": "ID do modelo", - "description": "O Docker vLLM MiniCPM5-1B usa openbmb/MiniCPM5-1B por padrão." + "description": "O Docker vLLM MiniCPM5-1B usa openbmb/MiniCPM5-1B por padrão" }, "context": { "title": "Orçamento de contexto seguro", - "description": "Usa um orçamento conservador de 10000 tokens em GPUs de 4GB em vez de confiar no limite teórico de 32k." + "description": "Usa um orçamento conservador de 10000 tokens em GPUs de 4GB em vez de confiar no limite teórico de 32k" } }, "features": { "promptPolish": { "title": "Polimento de prompts", - "description": "Aprimora manualmente a entrada antes de enviá-la ao modelo de programação mais forte." + "description": "Aprimora manualmente a entrada antes de enviá-la ao modelo de programação mais forte" }, "stepExplain": { "title": "Explicações das etapas do Agent", - "description": "Gera uma ou duas explicações curtas em chinês para as etapas do replay da sessão." + "description": "Gera uma ou duas explicações curtas em chinês para as etapas do replay da sessão" }, "uiControl": { "title": "Controle leve de ADE/UI", - "description": "O MiniCPM só pode classificar solicitações em uma lista estrita de ações locais permitidas." + "description": "O MiniCPM só pode classificar solicitações em uma lista estrita de ações locais permitidas" }, "contextCompact": { "title": "Manutenção automática de contexto", - "description": "Permite que o MiniCPM mantenha um resumo contínuo e isolado do contexto mais antigo enquanto as sessões ativadas estão ociosas." + "description": "Permite que o MiniCPM mantenha um resumo contínuo e isolado do contexto mais antigo enquanto as sessões ativadas estão ociosas" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Compartilhar com a organização", "share": "Compartilhar", "sharedToOrg": "Skill compartilhada com a organização", - "shareToOrgHint": "Os membros da organização recebem o snapshot atual desta skill; compartilhe novamente após editar para publicar uma atualização.", + "shareToOrgHint": "Os membros da organização recebem o snapshot atual desta skill; compartilhe novamente após editar para publicar uma atualização", "shareOrgPlaceholder": "Organização" } } diff --git a/src/i18n/locales/pt/navigation.json b/src/i18n/locales/pt/navigation.json index dd47e82452..1bfa884180 100644 --- a/src/i18n/locales/pt/navigation.json +++ b/src/i18n/locales/pt/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "O modelo {{model}} do proprietário não está disponível com suas chaves — este fork usará {{fallback}} no lugar.", "forkModelUnavailable": "O modelo {{model}} do proprietário não está disponível com suas chaves — escolha um modelo antes de executar este fork.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Cancelar", "deleteRoleOk": "Excluir", "deleteRoleTitle": "Excluir função?", - "followUpSuggestionsDesc": "Sugere possíveis próximos passos após um turno concluído de item de trabalho. Isso usa uma solicitação adicional ao modelo.", + "followUpSuggestionsDesc": "Sugere possíveis próximos passos após um turno concluído de item de trabalho. Isso usa uma solicitação adicional ao modelo", "followUpSuggestionsLabel": "Sugestões de follow-up do Agent", - "goalMaxTurnsDesc": "Continuar trabalhando na minha última solicitação por até N turnos extras depois que o agent normalmente pararia (0 = desativado).", + "goalMaxTurnsDesc": "Continuar trabalhando na minha última solicitação por até N turnos extras depois que o agent normalmente pararia (0 = desativado)", "goalMaxTurnsLabel": "Orçamento de continuação do objetivo", "guidanceLabel": "Orientação do Agent", "guidancePlaceholder": "Como o agent deve adaptar seu comportamento quando esta função estiver ativa?", - "modeSwitchAutoPlanDesc": "Alterna automaticamente as sugestões pendentes de modo Planejar quando o temporizador de confirmação expira.", + "modeSwitchAutoPlanDesc": "Alterna automaticamente as sugestões pendentes de modo Planejar quando o temporizador de confirmação expira", "modeSwitchAutoPlanLabel": "Plano automático na troca de modo", "newRoleDefaultLabel": "Função personalizada", - "pageDescription": "Defina a função que você está exercendo agora. O agent lê a orientação da função ativa e adapta seu comportamento — por exemplo, fazendo menos perguntas de esclarecimento quando você está concentrado ou agrupando resumos quando você está ausente.", + "pageDescription": "Defina a função que você está exercendo agora. O agent lê a orientação da função ativa e adapta seu comportamento — por exemplo, fazendo menos perguntas de esclarecimento quando você está concentrado ou agrupando resumos quando você está ausente", "pageTitle": "Minhas funções", - "planAutoApproveDesc": "Aprova automaticamente planos pendentes após N segundos (0 = esperar por mim).", + "planAutoApproveDesc": "Aprova automaticamente planos pendentes após N segundos (0 = esperar por mim)", "planAutoApproveLabel": "Aprovação automática de planos", - "questionAutoSkipDesc": "Pula automaticamente perguntas pendentes do agent após N segundos (0 = esperar por mim).", + "questionAutoSkipDesc": "Pula automaticamente perguntas pendentes do agent após N segundos (0 = esperar por mim)", "questionAutoSkipLabel": "Pular perguntas automaticamente", "roleNameLabel": "Nome", "roleNamePlaceholder": "Nome da função", "stanceAutonomous": "Autônomo — nunca esperar por mim", "stanceDeferAndBatch": "Adiar e agrupar — trabalhar primeiro, perguntar depois", - "stanceDesc": "Como o agent trata decisões bloqueantes enquanto esta função está ativa.", + "stanceDesc": "Como o agent trata decisões bloqueantes enquanto esta função está ativa", "stanceInteractive": "Interativo — perguntar à vontade", "stanceLabel": "Postura de comportamento" }, diff --git a/src/i18n/locales/pt/onboarding.json b/src/i18n/locales/pt/onboarding.json index 2d56c51094..741b3bfbb0 100644 --- a/src/i18n/locales/pt/onboarding.json +++ b/src/i18n/locales/pt/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Tour de layout geral", - "description": "Conheça o painel de chat, Runtime, o seletor de modo e o dock.", + "description": "Conheça o painel de chat, Runtime, o seletor de modo e o dock", "duration": "1 min", "steps": { "chat-panel": { "title": "Painel de bate-papo", - "body": "É onde os usuários conversam com agentes, analisam atividades e enviam instruções de acompanhamento." + "body": "É onde os usuários conversam com agentes, analisam atividades e enviam instruções de acompanhamento" }, "runtime": { "title": "Runtime", - "body": "Veja aqui seu uso e o status de execução. Em um espaço de trabalho, você também pode conferir a sincronização dos membros e abrir os detalhes de uso do Codex, Claude e Cursor." + "body": "Veja aqui seu uso e o status de execução. Em um espaço de trabalho, você também pode conferir a sincronização dos membros e abrir os detalhes de uso do Codex, Claude e Cursor" }, "station-mode-pill": { "title": "Alternar estação modos", - "body": "Use esta pílula para alternar os modos de estação. Desktop significa My Station, seu espaço de trabalho. Infinito significa Agent Station, a visualização da atividade do agente." + "body": "Use esta pílula para alternar os modos de estação. Desktop significa My Station, seu espaço de trabalho. Infinito significa Agent Station, a visualização da atividade do agente" }, "dock": { "title": "Agent Station dock", - "body": "O dock alterna aplicativos dentro da estação. O tour desativa temporariamente a ocultação automática para que esses controles permaneçam visíveis." + "body": "O dock alterna aplicativos dentro da estação. O tour desativa temporariamente a ocultação automática para que esses controles permaneçam visíveis" } } }, "codeEditor": { "title": "Tour do editor de código", - "description": "Conheça as abas, o espaço do editor, o controle de código-fonte e o histórico do Git.", + "description": "Conheça as abas, o espaço do editor, o controle de código-fonte e o histórico do Git", "duration": "2 min", "steps": { "tabs": { "title": "Guias do editor de código", - "body": "As guias coletam os arquivos, diferenças, terminais, visualizações de controle de origem e painéis que você abre enquanto trabalhando no repositório." + "body": "As guias coletam os arquivos, diferenças, terminais, visualizações de controle de origem e painéis que você abre enquanto trabalhando no repositório" }, "editor-surface": { "title": "Espaço de trabalho do editor", - "body": "Esta é a superfície principal do editor de código. Abra arquivos, inspecione diferenças, execute terminais e revise as alterações geradas aqui." + "body": "Esta é a superfície principal do editor de código. Abra arquivos, inspecione diferenças, execute terminais e revise as alterações geradas aqui" }, "create-tabs": { "title": "Criar novas guias", - "body": "Use o menu de adição em Todas as guias para criar terminais, guias do navegador, arquivos, painéis e utilitários de repositório." + "body": "Use o menu de adição em Todas as guias para criar terminais, guias do navegador, arquivos, painéis e utilitários de repositório" }, "source-control": { "title": "Alterações do Git", - "body": "Open Source Control para revisar arquivos alterados, preparar ou desestabilizar trabalho, confirmar, puxar, enviar, buscar e sincronizar com o controle remoto." + "body": "Open Source Control para revisar arquivos alterados, preparar ou desestabilizar trabalho, confirmar, puxar, enviar, buscar e sincronizar com o controle remoto" }, "git-history": { "title": "Histórico do Git", - "body": "O histórico do Git alterna o controle de origem para o modo de histórico de commits para que você possa inspecionar commits anteriores e alterações relacionadas." + "body": "O histórico do Git alterna o controle de origem para o modo de histórico de commits para que você possa inspecionar commits anteriores e alterações relacionadas" } } } @@ -68,6 +68,6 @@ "getStarted": "Primeiros passos", "newFeatures": "Novidades", "branchesTitle": "Branches do repositório", - "branchesDescription": "Troque de branch do repositório diretamente pelo Spotlight." + "branchesDescription": "Troque de branch do repositório diretamente pelo Spotlight" } } diff --git a/src/i18n/locales/pt/projects.json b/src/i18n/locales/pt/projects.json index af3912ee3a..9bff725e99 100644 --- a/src/i18n/locales/pt/projects.json +++ b/src/i18n/locales/pt/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Carregando conexões GitHub...", "noConnectionTitle": "Nenhuma conexão GitHub encontrada", - "noConnectionDescription": "Adicione primeiro uma conexão GitHub em Integrations e depois volte aqui para importar GitHub Issues.", + "noConnectionDescription": "Adicione primeiro uma conexão GitHub em Integrations e depois volte aqui para importar GitHub Issues", "linkedRepoHint": "Este Project também será vinculado ao repo do Workspace atual: {{repoName}}", "errors": { "invalidRepo": "Use owner/repo ou uma URL de repositório GitHub." @@ -80,7 +80,7 @@ "importLinearOrgs": "Importar espaços de trabalho do Linear", "gitFolderPath": "Caminho da pasta Git (opcional)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Vincule este espaço de trabalho a uma árvore de trabalho Git existente para sincronização de pasta.", + "gitFolderPathHint": "Vincule este espaço de trabalho a uma árvore de trabalho Git existente para sincronização de pasta", "gitFolderBadge": "Git", "gitFolderSynced": "Sincronizado com uma pasta Git", "pendingSync": "Sincronização pendente", @@ -123,7 +123,7 @@ "addTeams": "Adicionar equipes", "addLabels": "Adicionar etiquetas", "addRepos": "Vincular repos", - "noReposHint": "Nenhum repo disponível. Adicione um repo ao seu Workspace primeiro.", + "noReposHint": "Nenhum repo disponível. Adicione um repo ao seu Workspace primeiro", "addDate": "Adicionar data", "clearDate": "Limpar data", "noStatus": "Sem status", @@ -403,7 +403,7 @@ "prDraft": "Rascunho", "changedFilesSection": "Arquivos Alterados", "fileDiffClean": "Diff de arquivos está limpo", - "fileDiffCleanHint": "Nenhuma alteração de arquivo detectada.", + "fileDiffCleanHint": "Nenhuma alteração de arquivo detectada", "costSummary": "Resumo de Custos", "totalCost": "Total", "tokens": "tokens", @@ -413,7 +413,7 @@ "viewWorkItems": "Ver itens de trabalho", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Aplica-se a {{count}} itens selecionados." + "hint": "Aplica-se a {{count}} itens selecionados" }, "batchStatus": { "title": "Definir status" @@ -457,7 +457,7 @@ "save": "Salvar visualização atual", "saveTitle": "Salvar visualização", "namePlaceholder": "Nome da visualização", - "saveHint": "Captura os filtros atuais; o layout define a primeira abertura.", + "saveHint": "Captura os filtros atuais; o layout define a primeira abertura", "delete": "Excluir visualização" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Definir propriedade", - "hint": "Aplica um valor de propriedade a {{count}} itens selecionados. Deixe o valor vazio para limpá-lo.", + "hint": "Aplica um valor de propriedade a {{count}} itens selecionados. Deixe o valor vazio para limpá-lo", "propertyPlaceholder": "Propriedade", "valuePlaceholder": "Valor", "applied": "{{count}} itens atualizados" }, "revisionConflict": { "title": "Resolver conflito de edição", - "description": "{{field}} mudou após a revisão {{expected}}. Compare sua edição com a revisão {{actual}} e escolha qual versão manter.", + "description": "{{field}} mudou após a revisão {{expected}}. Compare sua edição com a revisão {{actual}} e escolha qual versão manter", "mine": "Minha versão", "latest": "Versão mais recente", "useLatest": "Usar a mais recente", @@ -573,7 +573,7 @@ "confirmDelete": "Eu entendo, excluir esta história", "sync": { "title": "Sincronização Externa", - "description": "Espelhe os itens de trabalho desta história para um sistema externo como o Linear ou o GitHub.", + "description": "Espelhe os itens de trabalho desta história para um sistema externo como o Linear ou o GitHub", "adapterPicker": { "title": "Adaptador", "notAttached": "Não conectado", @@ -582,7 +582,7 @@ "changeWarning": "Desconecte o adaptador atual antes de conectar um novo.", "detachProjectMenuLabel": "Desvincular GitHub", "detachProjectTitle": "Desvincular o GitHub de {{project}}?", - "detachProjectDescription": "A sincronização de GitHub Issues será interrompida. O projeto local e os itens de trabalho importados permanecerão no ORG2.", + "detachProjectDescription": "A sincronização de GitHub Issues será interrompida. O projeto local e os itens de trabalho importados permanecerão no ORG2", "detachProjectAction": "Desvincular o GitHub de {{project}}", "detachProjectSuccess": "GitHub desvinculado de {{project}}" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Carregando status do webhook…", - "notInstalledDescription": "Instale um segredo de webhook para permitir que este provedor envie alterações diretamente em vez de esperar pelo próximo poll.", + "notInstalledDescription": "Instale um segredo de webhook para permitir que este provedor envie alterações diretamente em vez de esperar pelo próximo poll", "install": "Instalar webhook", - "installedDescription": "Cole a URL na configuração de webhook do seu provedor e use o segredo abaixo para assinar as entregas.", + "installedDescription": "Cole a URL na configuração de webhook do seu provedor e use o segredo abaixo para assinar as entregas", "indicatorFresh": "Entrega recente", "indicatorStale": "Nenhuma entrega recente", "lastDeliveryNever": "Nenhuma entrega ainda", @@ -627,7 +627,7 @@ "copyUrl": "Copiar URL", "rotate": "Rotacionar segredo", "secretTitle": "Copie este segredo agora — ele não será exibido novamente", - "secretDescription": "Cole este segredo de assinatura na configuração de webhook do seu provedor. Não armazenamos o valor em texto plano depois que você dispensa este painel.", + "secretDescription": "Cole este segredo de assinatura na configuração de webhook do seu provedor. Não armazenamos o valor em texto plano depois que você dispensa este painel", "copySecret": "Copiar segredo", "dismissSecret": "Eu salvei", "secretCopied": "Segredo copiado para a área de transferência", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Status", "statusesBuiltin": "Status integrados", - "statusesBuiltinDescription": "As categorias padrão do fluxo de trabalho. Sempre disponíveis.", + "statusesBuiltinDescription": "As categorias padrão do fluxo de trabalho. Sempre disponíveis", "statusesCustom": "Status personalizados", - "statusesCustomDescription": "Aliases nomeados sobre uma categoria integrada. Filtros, contagens e quadros os tratam como sua categoria.", + "statusesCustomDescription": "Aliases nomeados sobre uma categoria integrada. Filtros, contagens e quadros os tratam como sua categoria", "statusNamePlaceholder": "Nome do status", "noCustomStatuses": "Ainda não há status personalizados.", "statusArchive": "Arquivar status", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/pt/sessions.json b/src/i18n/locales/pt/sessions.json index 607fe66198..b40f3890d4 100644 --- a/src/i18n/locales/pt/sessions.json +++ b/src/i18n/locales/pt/sessions.json @@ -896,10 +896,10 @@ "exportJson": "Exportar JSON", "importAction": "Importar Session", "exportDescription": "Exporte a Session ativa como um snapshot JSON portátil", - "importDescription": "Importe um snapshot JSON de Session para a barra lateral.", + "importDescription": "Importe um snapshot JSON de Session para a barra lateral", "jsonSnapshotNote": "Sessions importadas são snapshots somente leitura e mantêm o histórico original de eventos", "chooseJson": "Escolher arquivo JSON", - "chooseJsonHint": "Selecione um arquivo de exportação .orgii-session.json.", + "chooseJsonHint": "Selecione um arquivo de exportação .orgii-session.json", "loadingPreview": "Contando eventos da Session…", "noActiveSession": "Nenhuma Session ativa selecionada.", "importedName": "Session importada: {{name}}", @@ -1927,7 +1927,7 @@ "start": "Iniciar", "missingGit": { "title": "Git ausente", - "body": "O Git não está instalado ou não foi encontrado. Peça ao ADE Manager ou ao SDE Agent para instalar o Git nesta máquina e depois reinicie o ORG2." + "body": "O Git não está instalado ou não foi encontrado. Peça ao ADE Manager ou ao SDE Agent para instalar o Git nesta máquina e depois reinicie o ORG2" }, "model": "Modelo", "contextMenu": { @@ -2142,7 +2142,7 @@ "archiveTeardownRetained": "Arquivada, mas {{count}} processo não pôde ser liberado. A exclusão continua bloqueada.", "archiveTeardownQuiesced": "Arquivada e totalmente encerrada. A exclusão permanente já está disponível.", "dangerZone": "Zona de perigo", - "deleteDescription": "Excluir permanentemente esta equipe, todas as sessões e o histórico.", + "deleteDescription": "Excluir permanentemente esta equipe, todas as sessões e o histórico", "deleteTeam": "Excluir equipe", "deleteTitle": "Excluir esta equipe permanentemente?", "deleteWarning": "Isso exclui permanentemente todas as sessões e o histórico da equipe. A ação não pode ser desfeita.", diff --git a/src/i18n/locales/pt/settings.json b/src/i18n/locales/pt/settings.json index 298d1ae350..62467077c6 100644 --- a/src/i18n/locales/pt/settings.json +++ b/src/i18n/locales/pt/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Segurança de Desktop", "hideBeforeAction": "Ocultar ORG2 durante o controle da área de trabalho", - "hideBeforeActionHelper": "Oculta a janela principal do ORG2 enquanto o Peekaboo opera e mostra a barra Wingman com uma legenda flutuante para que o Agent não precise gerenciar o foco.", + "hideBeforeActionHelper": "Oculta a janela principal do ORG2 enquanto o Peekaboo opera e mostra a barra Wingman com uma legenda flutuante para que o Agent não precise gerenciar o foco", "antiDetection": "Reforço anti-automação HID", - "antiDetectionHelper": "Faz o Peekaboo enviar eventos CGEvent (HID) reais para cliques e teclas em vez de ações de Acessibilidade puras, para que apps com detecção de automação (ex.: WeChat) tenham menos probabilidade de bloquear o controle da área de trabalho.", + "antiDetectionHelper": "Faz o Peekaboo enviar eventos CGEvent (HID) reais para cliques e teclas em vez de ações de Acessibilidade puras, para que apps com detecção de automação (ex.: WeChat) tenham menos probabilidade de bloquear o controle da área de trabalho", "humanInputProfile": "Cadência de digitação humana", - "humanInputProfileHelper": "Aplica um perfil de tempo semelhante ao humano às teclas sintetizadas. Desative para digitar na velocidade máxima.", + "humanInputProfileHelper": "Aplica um perfil de tempo semelhante ao humano às teclas sintetizadas. Desative para digitar na velocidade máxima", "escapeAbort": "Tecla Escape do sistema aborta", - "escapeAbortHelper": "Trata uma tecla Escape pressionada por hardware como sinal de abortar para automação de desktop em andamento. Nossos próprios pressionamentos sintetizados de Escape são sempre excluídos." + "escapeAbortHelper": "Trata uma tecla Escape pressionada por hardware como sinal de abortar para automação de desktop em andamento. Nossos próprios pressionamentos sintetizados de Escape são sempre excluídos" }, "skillMissingBins": "Faltando: {{bins}}", "skillMissingEnv": "Variáveis de ambiente faltando: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Estratégia de pull", "pullStrategyDesc": "Como o git pull integra alterações remotas ao sincronizar", - "pullStrategyHint": "Rebase (padrão): Reaplica seus commits sobre o remoto. Cria um histórico linear.\n\nMerge: Cria um commit de merge quando os branches divergiram. Preserva o histórico completo.\n\nApenas fast-forward: Permite pull apenas quando nenhum merge é necessário. Recusa se os branches divergiram.", + "pullStrategyHint": "Rebase (padrão): Reaplica seus commits sobre o remoto. Cria um histórico linear.\n\nMerge: Cria um commit de merge quando os branches divergiram. Preserva o histórico completo.\n\nApenas fast-forward: Permite pull apenas quando nenhum merge é necessário. Recusa se os branches divergiram", "strategyMerge": "Merge", "strategyRebase": "Rebase (padrão)", "strategyFfOnly": "Apenas fast-forward (estrito)", @@ -602,7 +602,7 @@ "checkFailed": "Falha ao buscar atualizações", "checking": "Buscando atualizações…", "officialInstalled": "Aplicativo oficial instalado", - "officialInstalledDesc": "{{version}} foi instalado em {{path}}. Este build local continua em execução sem alterações.", + "officialInstalledDesc": "{{version}} foi instalado em {{path}}. Este build local continua em execução sem alterações", "downloadFailed": "Falha no download da atualização", "retryNow": "Tentar novamente agora", "downloadTimeout": "O download excedeu o tempo limite. Verifique a rede ou o proxy e tente novamente.", @@ -738,7 +738,7 @@ "tableVersion": "Versão", "tableStatus": "Status", "installSection": "Instalar", - "installHintNote": "Comando de instalação sugerido para sua plataforma. A maioria das dependências do sistema requer privilégios de administrador, então não as executamos automaticamente — copie e cole no seu terminal." + "installHintNote": "Comando de instalação sugerido para sua plataforma. A maioria das dependências do sistema requer privilégios de administrador, então não as executamos automaticamente — copie e cole no seu terminal" }, "storage": { "dataDirectory": "Diretório de Dados", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Ativar Evolução para {{agentName}}", "noAgentsTitle": "Nenhum Agent disponível", - "noAgentsSubtitle": "Crie ou importe um Agent para configurar a Evolução." + "noAgentsSubtitle": "Crie ou importe um Agent para configurar a Evolução" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/ru/common.json b/src/i18n/locales/ru/common.json index 5d755f80c9..cb211869fb 100644 --- a/src/i18n/locales/ru/common.json +++ b/src/i18n/locales/ru/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Создать token", "openGitSettingsButton": "Открыть настройки", "configureInSettings": "Настройте Git в настройках", - "configureInSettingsDesc": "Добавьте доступ GitHub App, сохраните token или просканируйте локальные учетные данные в Настройки → Подключения, затем повторите эту операцию Git." + "configureInSettingsDesc": "Добавьте доступ GitHub App, сохраните token или просканируйте локальные учетные данные в Настройки → Подключения, затем повторите эту операцию Git" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Не удалось определить имя репозитория из remote origin", "authRequired": { "title": "Подключить GitHub", - "description": "Перейдите в Настройки → Подключения, чтобы подключить учётную запись GitHub." + "description": "Перейдите в Настройки → Подключения, чтобы подключить учётную запись GitHub" }, "navigationTrail": "Навигация по pull request", "failedToLoad": "Не удалось загрузить pull requests", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Опишите issue (необязательно)…", "authRequired": { "title": "Подключить GitHub", - "description": "Перейдите в Настройки → Подключения, чтобы подключить учётную запись GitHub." + "description": "Перейдите в Настройки → Подключения, чтобы подключить учётную запись GitHub" }, "reAuthRequired": "Требуется авторизация GitHub", - "reAuthDescription": "Срок действия вашего token GitHub истёк. Перейдите в Настройки → Подключения, чтобы переподключиться.", + "reAuthDescription": "Срок действия вашего token GitHub истёк. Перейдите в Настройки → Подключения, чтобы переподключиться", "goToSettings": "Перейти в настройки", "loadingTimeline": "Загрузка активности…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "Выйти из ORG2?", - "subtitle": "Запущенные сеансы сохранят текущее состояние. Вы сможете открыть ORG2 позже.", + "subtitle": "Запущенные сеансы сохранят текущее состояние. Вы сможете открыть ORG2 позже", "cancel": "Отмена", "confirm": "Выйти" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari хранит файлы cookie в папке, защищённой macOS. Разрешите ORG2 полный доступ к диску в системных настройках и повторите проверку.", + "explain": "Safari хранит файлы cookie в папке, защищённой macOS. Разрешите ORG2 полный доступ к диску в системных настройках и повторите проверку", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/ru/integrations.json b/src/i18n/locales/ru/integrations.json index 6d6e015733..907c5cc80a 100644 --- a/src/i18n/locales/ru/integrations.json +++ b/src/i18n/locales/ru/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "Удалить локальный", "unlist": "Снять с публикации", "confirmRemoveTitle": "Удалить \"{{name}}\"?", - "confirmRemoveMessage": "Локальные учётные данные будут удалены. Это действие нельзя отменить.", + "confirmRemoveMessage": "Локальные учётные данные будут удалены. Это действие нельзя отменить", "toasts": { "refreshed": "{{name}} успешно обновлён", "refreshError": "Не удалось обновить {{name}}: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "Email аккаунта" }, "customModels": { - "manualSetupHint": "Укажите точный ID модели для вашей конечной точки и необязательное имя. Обнаружение моделей необязательно; включение не проверяет совместимость.", + "manualSetupHint": "Укажите точный ID модели для вашей конечной точки и необязательное имя. Обнаружение моделей необязательно; включение не проверяет совместимость", "modelNamePlaceholder": "Введите id модели...", "displayNamePlaceholder": "Необязательная метка", - "emptyHint": "Пользовательские модели ещё не добавлены.", + "emptyHint": "Пользовательские модели ещё не добавлены", "addModel": "Добавить модель", "testRequiresEndpoint": "Укажите конечную точку и ключ API, чтобы протестировать эту модель", "invalidModelId": "Идентификатор модели должен быть длиной от 1 до 256 байт без пробелов и управляющих символов.", @@ -145,7 +145,7 @@ "keysVerified": "Учётные данные проверены", "failedMessage": "Ваш API Key и Session Token, похоже, не принадлежат одному аккаунту Cursor.", "failedError": "Ошибка: {{error}}", - "failedHint": "Пожалуйста, создайте новое предложение с совпадающими учётными данными из одного аккаунта Cursor.", + "failedHint": "Пожалуйста, создайте новое предложение с совпадающими учётными данными из одного аккаунта Cursor", "listingRejected": "Предложение отклонено", "rejectedByAdmin": "Это предложение было отклонено администратором." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "Используйте встроенный браузер, чтобы подключить аккаунт Cursor.", "loggedIn": "Вход выполнен", "loginStep": "Вход", - "signInToCursorHint": "Войдите в аккаунт Cursor. Это окно автоматически закроется после входа.", + "signInToCursorHint": "Войдите в аккаунт Cursor. Это окно автоматически закроется после входа", "copilotCreatePat": "Создать GitHub Personal Access Token", "copilotCreatePatDesc": "Открывает встроенный браузер для создания GitHub PAT", "copilotTokenValidated": "Token подтверждён", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Вход в Cursor", "modelCount": "{{count}} моделей", "cursorLoginReadyTitle": "Аккаунт Cursor подключён", - "cursorLoginReadyDesc": "Создайте и вставьте Cursor API Key ниже. Cursor agent не будет работать без этого API Key.", + "cursorLoginReadyDesc": "Создайте и вставьте Cursor API Key ниже. Cursor agent не будет работать без этого API Key", "cursorApiKeyBrowserHint": "После входа ORG2 откроет Cursor dashboard. Создайте там User API Key и вставьте его ниже", "cursorApiKeyRecommendedTitle": "Рекомендуется Cursor API Key", "cursorApiKeyRecommendedDesc": "Вы можете продолжить без Cursor API Key, если хотите использовать Cursor только с Rust agents ORG2; просто войдите через внутренний браузер или укажите session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway маршрутизирует входящие сообщения от всех каналов. Выберите API-ключ и модель для семантической маршрутизации.", + "description": "Gateway маршрутизирует входящие сообщения от всех каналов. Выберите API-ключ и модель для семантической маршрутизации", "statusReady": "Настроено", "statusUnconfigured": "Не настроено", "account": "Аккаунт API-ключа", @@ -581,7 +581,7 @@ "model": "Модель", "modelPlaceholder": "Выбрать модель", "groupPerUser": "Изолировать сессии группового чата по пользователям", - "groupPerUserDesc": "Каждый участник группового чата получает собственный контекст сессии." + "groupPerUserDesc": "Каждый участник группового чата получает собственный контекст сессии" }, "emailProtocol": "Протокол", "matrixDeviceNamePlaceholder": "Бот ORG2" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Откройте URL подтверждения и введите этот код, чтобы авторизовать GitHub.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "Ничего не обнаружено", - "scanEmptyDesc": "Token gh CLI, credential helpers или SSH-ключи не найдены. Выберите другой способ выше.", + "scanEmptyDesc": "Token gh CLI, credential helpers или SSH-ключи не найдены. Выберите другой способ выше", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Обнаруженные учётные данные", - "scanResultsDesc": "Выберите одни для импорта. Перед сохранением мы проверяем token в GitHub.", + "scanResultsDesc": "Выберите одни для импорта. Перед сохранением мы проверяем token в GitHub", "scanSshKey": "SSH-ключ — {{name}}", "scanning": "Сканирование…", - "scanningDesc": "Поиск token gh CLI, credential helpers и SSH-ключей на этом компьютере.", + "scanningDesc": "Поиск token gh CLI, credential helpers и SSH-ключей на этом компьютере", "sshKeyPath": "Путь к SSH-ключу", "sshKeyPathDesc": "Абсолютный путь к закрытому ключу (напр. ~/.ssh/id_ed25519). Соответствующий открытый ключ уже должен быть зарегистрирован на GitHub.", "scanSelectRequired": "Выберите обнаруженные учётные данные для импорта.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "После смены провайдера Browser CLI нужно перезапустить ORG2, чтобы агенты увидели выбранный инструмент. Перезапустить сейчас?", "sidecarDownloadsSectionTitle": "Загрузки sidecar", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Загрузить бинарный файл Agent Browser для этой платформы в ~/.orgii/bin. ORG2 никогда не загружает его при запуске.", + "sidecarAgentBrowserDesc": "Загрузить бинарный файл Agent Browser для этой платформы в ~/.orgii/bin. ORG2 никогда не загружает его при запуске", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Загрузить macOS-бинарный файл Peekaboo для автоматизации рабочего стола в ~/.orgii/bin. Неподдерживаемые платформы остаются отключенными.", + "sidecarPeekabooDesc": "Загрузить macOS-бинарный файл Peekaboo для автоматизации рабочего стола в ~/.orgii/bin. Неподдерживаемые платформы остаются отключенными", "sidecarUnsupported": "Не поддерживается", "sidecarInstalled": "Установлено", "sidecarNotInstalled": "Не установлено", @@ -874,7 +874,7 @@ "connectMethodDesc": "Выберите способ подключения учётной записи GitHub", "githubApp": "GitHub App", "detectFromSystem": "Обнаружить в системе", - "detectFromSystemDesc": "Используйте gh CLI, SSH-ключи или Git credential helpers.", + "detectFromSystemDesc": "Используйте gh CLI, SSH-ключи или Git credential helpers", "credentialsDetected": "Учётные данные обнаружены", "detectedVia": "Обнаружено через {{source}}", "sshKeyLabel": "SSH-ключ", @@ -894,7 +894,7 @@ "noCredentialsFound": "Учётные данные GitHub не найдены", "noCredentialsHint": "Установите GitHub CLI (gh) или настройте SSH-ключи для локального обнаружения", "manuallyAddToken": "Добавить token вручную", - "manualTokenDesc": "Вставьте GitHub PAT для HTTPS-операций Git.", + "manualTokenDesc": "Вставьте GitHub PAT для HTTPS-операций Git", "autoDetect": "Автообнаружение", "autoDetectTokenSaved": "GitHub token сохранён", "autoDetectSshSwitched": "Remote переключён на SSH", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Добавлять {{name}} <{{email}}> в Git commit, созданные из ORG2", "noTokenYet": "Нужен Token?", - "createTokenDesc": "Откройте GitHub и создайте PAT с доступом repo.", + "createTokenDesc": "Откройте GitHub и создайте PAT с доступом repo", "accountConnected": "Аккаунт GitHub подключён", "disconnectMsg": "Вы уверены, что хотите отключить? Это удалит доступ ко всем репо этого аккаунта.", "disconnectTitle": "Отключить аккаунт GitHub", @@ -929,7 +929,7 @@ "connectRepoDesc": "Подключите аккаунт GitHub для доступа к репо", "github": "GitHub", "signInWithGithub": "Войти через GitHub", - "signInWithGithubDesc": "Авторизуйте ORG2 через GitHub Device Flow. Свой сервер не нужен.", + "signInWithGithubDesc": "Авторизуйте ORG2 через GitHub Device Flow. Свой сервер не нужен", "oauthWaiting": "Ожидание авторизации", "oauthDeviceCodeDesc": "Откройте URL ниже и введите этот код", "oauthOpenGithub": "Открыть GitHub", @@ -985,7 +985,7 @@ "filePathPlaceholder": "напр. scripts/validate.py", "removeFile": "Удалить файл", "editorNoDraftTitle": "Нет активного черновика Skill", - "editorNoDraftDesc": "Нажмите «Создать» на странице Skills или выберите Skill для редактирования.", + "editorNoDraftDesc": "Нажмите «Создать» на странице Skills или выберите Skill для редактирования", "scopeWorkspace": "Для repo", "deleteConfirmTitle": "Удалить навык «{{name}}»?", "deleteConfirmMessage": "Это удалит навык и все его файлы. Действие необратимо." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "Поиск MCP серверов...", "noServers": "Нет настроенных MCP серверов", - "noServersDesc": "Добавьте MCP сервер для расширения возможностей агента внешними инструментами.", + "noServersDesc": "Добавьте MCP сервер для расширения возможностей агента внешними инструментами", "addServer": "Добавить MCP сервер", "editServer": "Редактировать MCP сервер", "serverName": "Имя сервера", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "Хуки происхождения", - "masterToggleDesc": "При отключении все управляемые хуки удаляются и сигналы не собираются; выбор для каждой платформы сохраняется и восстанавливается при повторном включении.", + "masterToggleDesc": "При отключении все управляемые хуки удаляются и сигналы не собираются; выбор для каждой платформы сохраняется и восстанавливается при повторном включении", "liveStatusToggle": "Статус агента в реальном времени", - "liveStatusToggleDesc": "Показывает, работают или ожидают запущенные CLI-агенты. При отключении сбор данных о происхождении продолжается.", + "liveStatusToggleDesc": "Показывает, работают или ожидают запущенные CLI-агенты. При отключении сбор данных о происхождении продолжается", "title": "Происхождение сессий", "capture": "Записывать взаимодействия с файлами", - "description": "Записывает чтение и запись файлов как метаданные. Запросы, вывод инструментов и содержимое файлов не сохраняются.", + "description": "Записывает чтение и запись файлов как метаданные. Запросы, вывод инструментов и содержимое файлов не сохраняются", "installDrift": "Сохранённая настройка не совпадает с установленным hook. Переключите запись, чтобы восстановить управляемый hook. Конфигурация: {{path}}", "copyPath": "Копировать", "col": { @@ -1185,7 +1185,7 @@ "addMember": "Добавить участника", "noMembers": "Добавьте участников для построения иерархии Org", "membersLabel": "Участники команды", - "membersDesc": "Каждая строка — участник с независимыми правом Writer и настройками связи. Имена должны быть уникальны; роль только описывает специализацию.", + "membersDesc": "Каждая строка — участник с независимыми правом Writer и настройками связи. Имена должны быть уникальны; роль только описывает специализацию", "memberName": "Имя", "memberNamePlaceholder": "Уникальное имя маршрутизации (напр. SDE-1)", "memberNameDuplicate": "Другой участник уже использует это name. Name должны быть уникальны в рамках организации.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "Что делает этот агент? (необязательно)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Одновременных вызовов инструментов на сообщение. По умолчанию: 10.", + "maxToolUseConcurrencyDesc": "Одновременных вызовов инструментов на сообщение. По умолчанию: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "Запуск во временном Git Worktree (изолированный доступ к файлам и Shell).", + "subAgentWorktreeIsolationDesc": "Запуск во временном Git Worktree (изолированный доступ к файлам и Shell)", "addSubAgent": "Добавить Sub-Agent...", "noSubAgents": "Sub-agents не настроены." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "К каким агентам применяется правило (пусто = все)", "selectAgents": "Выбрать агентов…", "ruleSource": "Источник", - "ruleSourceDesc": "Выберите User для всех репозиториев или Repo для правила одного репозитория.", + "ruleSourceDesc": "Выберите User для всех репозиториев или Repo для правила одного репозитория", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Пользовательское предпочтение, доступное во всех репозиториях.", + "ruleSourceUserDesc": "Пользовательское предпочтение, доступное во всех репозиториях", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Правило, сохранённое для одного выбранного репозитория.", + "ruleSourceRepoDesc": "Правило, сохранённое для одного выбранного репозитория", "ruleRepo": "Repo", "ruleRepoDesc": "Единственный репозиторий, к которому применяется это правило", "selectRepo": "Выберите repo…", "ruleSourcePersonal": "Персональное", - "ruleSourcePersonalDesc": "Хранится в ~/.orgii/personal/rules/. Только OS Agent / channel.", + "ruleSourcePersonalDesc": "Хранится в ~/.orgii/personal/rules/. Только OS Agent / channel", "findSkills": { "title": "Поиск Skills", "placeholder": "Поиск Skills...", "installs": "Installs", "emptyTitle": "Поиск Skills", - "emptySubtitle": "Введите минимум 2 символа, затем нажмите Enter, чтобы найти Skills.", + "emptySubtitle": "Введите минимум 2 символа, затем нажмите Enter, чтобы найти Skills", "noResults": "Skills не найдены", - "noResultsDesc": "Попробуйте другой поисковый запрос." + "noResultsDesc": "Попробуйте другой поисковый запрос" }, "importAgentTitle": "Импортировать Agents из других apps", "importAgentColumn": "Агент", "importedItemAgents": "агенты", "emptySelectionTitle": "Выберите участника или Команду Agent", - "emptySelectionSubtitle": "Выберите Agent или Команду Agent на боковой панели, чтобы просмотреть и настроить его.", + "emptySelectionSubtitle": "Выберите Agent или Команду Agent на боковой панели, чтобы просмотреть и настроить его", "applicableWorkspace": "Применимый Workspace", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "Переключение конфигурации CLI", "modeLabel": "Режим", - "modeDesc": "«По умолчанию» восстанавливает собственную конфигурацию CLI. «Управляется ORG2» записывает прокси-конфигурацию с резервной копией.", + "modeDesc": "«По умолчанию» восстанавливает собственную конфигурацию CLI. «Управляется ORG2» записывает прокси-конфигурацию с резервной копией", "modeDefault": "По умолчанию", "modeOrgii": "Управляется ORG2", "conflict": "Внешнее изменение", "conflictTitle": "Конфликт", - "conflictDesc": "Активная конфигурация CLI изменилась после того, как ORG2 записал её.", + "conflictDesc": "Активная конфигурация CLI изменилась после того, как ORG2 записал её", "proxyStatus": "Прокси", "proxyDefault": "Режим по умолчанию", "proxyReady": "Прокси готов", "proxyNotReady": "Прокси не готов", "keyLabel": "Ключ", - "keyDesc": "Показаны только API-ключи, совместимые с этим CLI и управляемым прокси.", + "keyDesc": "Показаны только API-ключи, совместимые с этим CLI и управляемым прокси", "selectKey": "Выберите ключ", "modelLabel": "Модель", "selectModel": "Выберите модель", @@ -1356,7 +1356,7 @@ "forceRestore": "Восстановить принудительно", "applySuccess": "Управляемая конфигурация ORG2 применена", "restoreSuccess": "Конфигурация по умолчанию восстановлена", - "proxyLifecycleDesc": "Не закрывайте ORG2, пока используете этот режим. При закрытии окна прокси остаётся в трее; при выходе из ORG2 конфигурация по умолчанию безопасно восстанавливается, если она не была изменена извне." + "proxyLifecycleDesc": "Не закрывайте ORG2, пока используете этот режим. При закрытии окна прокси остаётся в трее; при выходе из ORG2 конфигурация по умолчанию безопасно восстанавливается, если она не была изменена извне" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Общее время: {{value}}s" }, "title": "Резидентный Housekeeper", - "description": "Локальный MiniCPM выполняет доработку промптов, короткие пояснения шагов и лёгкое управление UI. Задачи кодирования и сложная настройка ADE по-прежнему используют основную модель агента.", + "description": "Локальный MiniCPM выполняет доработку промптов, короткие пояснения шагов и лёгкое управление UI. Задачи кодирования и сложная настройка ADE по-прежнему используют основную модель агента", "autoAccount": "Автовыбор аккаунта MiniCPM vLLM", "tiles": { "model": "Модель", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Включить Housekeeper", - "description": "Когда отключено, доработка промптов, пояснения шагов и лёгкое управление UI не будут использовать MiniCPM." + "description": "Когда отключено, доработка промптов, пояснения шагов и лёгкое управление UI не будут использовать MiniCPM" }, "account": { "title": "Аккаунт vLLM MiniCPM", - "description": "Повторно использует существующий аккаунт KeyVault vllm_api; отдельное хранилище учётных данных не создаётся." + "description": "Повторно использует существующий аккаунт KeyVault vllm_api; отдельное хранилище учётных данных не создаётся" }, "model": { "title": "ID модели", - "description": "Docker vLLM MiniCPM5-1B по умолчанию использует openbmb/MiniCPM5-1B." + "description": "Docker vLLM MiniCPM5-1B по умолчанию использует openbmb/MiniCPM5-1B" }, "context": { "title": "Безопасный бюджет контекста", - "description": "Использовать консервативный бюджет в 10000 token на GPU с 4 ГБ вместо теоретического лимита 32k." + "description": "Использовать консервативный бюджет в 10000 token на GPU с 4 ГБ вместо теоретического лимита 32k" } }, "features": { "promptPolish": { "title": "Доработка промптов", - "description": "Вручную дорабатывать ввод перед отправкой более сильной модели для кодирования." + "description": "Вручную дорабатывать ввод перед отправкой более сильной модели для кодирования" }, "stepExplain": { "title": "Пояснения шагов Agent", - "description": "Генерировать одно-два коротких пояснения на китайском для шагов воспроизведения сессии." + "description": "Генерировать одно-два коротких пояснения на китайском для шагов воспроизведения сессии" }, "uiControl": { "title": "Лёгкое управление ADE/UI", - "description": "MiniCPM может только классифицировать запросы по строгому локальному белому списку действий." + "description": "MiniCPM может только классифицировать запросы по строгому локальному белому списку действий" }, "contextCompact": { "title": "Автоматическое обслуживание контекста", - "description": "Позволить MiniCPM поддерживать изолированное скользящее резюме старого контекста, пока включённые сессии простаивают." + "description": "Позволить MiniCPM поддерживать изолированное скользящее резюме старого контекста, пока включённые сессии простаивают" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Поделиться с организацией", "share": "Поделиться", "sharedToOrg": "Skill доступен организации", - "shareToOrgHint": "Участники организации получат текущий снимок этого Skill; после редактирования поделитесь снова, чтобы опубликовать обновление.", + "shareToOrgHint": "Участники организации получат текущий снимок этого Skill; после редактирования поделитесь снова, чтобы опубликовать обновление", "shareOrgPlaceholder": "Организация" } } diff --git a/src/i18n/locales/ru/navigation.json b/src/i18n/locales/ru/navigation.json index 2edc3fd23c..34f3cc1826 100644 --- a/src/i18n/locales/ru/navigation.json +++ b/src/i18n/locales/ru/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "Модель владельца {{model}} недоступна с вашими ключами — этот форк будет использовать {{fallback}}.", "forkModelUnavailable": "Модель владельца {{model}} недоступна с вашими ключами — выберите модель перед запуском этого форка.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Отмена", "deleteRoleOk": "Удалить", "deleteRoleTitle": "Удалить роль?", - "followUpSuggestionsDesc": "Предлагать возможные следующие шаги после завершённого хода по рабочему элементу. Использует дополнительный запрос к модели.", + "followUpSuggestionsDesc": "Предлагать возможные следующие шаги после завершённого хода по рабочему элементу. Использует дополнительный запрос к модели", "followUpSuggestionsLabel": "Предложения Agent по следующим шагам", - "goalMaxTurnsDesc": "Продолжать работу над моим последним запросом до N дополнительных ходов после того, как агент обычно остановился бы (0 = выкл.).", + "goalMaxTurnsDesc": "Продолжать работу над моим последним запросом до N дополнительных ходов после того, как агент обычно остановился бы (0 = выкл.)", "goalMaxTurnsLabel": "Бюджет продолжения цели", "guidanceLabel": "Указания для Agent", "guidancePlaceholder": "Как агент должен менять своё поведение, когда эта роль активна?", - "modeSwitchAutoPlanDesc": "Автоматически применять ожидающие предложения перехода в режим Plan по истечении таймера подтверждения.", + "modeSwitchAutoPlanDesc": "Автоматически применять ожидающие предложения перехода в режим Plan по истечении таймера подтверждения", "modeSwitchAutoPlanLabel": "Автопереход в режим Plan", "newRoleDefaultLabel": "Своя роль", - "pageDescription": "Определите роль, в которой вы сейчас находитесь. Агент читает указания активной роли и соответственно меняет поведение — например, задаёт меньше уточняющих вопросов, когда вы сосредоточены, или объединяет сводки, когда вас нет.", + "pageDescription": "Определите роль, в которой вы сейчас находитесь. Агент читает указания активной роли и соответственно меняет поведение — например, задаёт меньше уточняющих вопросов, когда вы сосредоточены, или объединяет сводки, когда вас нет", "pageTitle": "Мои роли", - "planAutoApproveDesc": "Автоматически утверждать ожидающие планы через N секунд (0 = ждать меня).", + "planAutoApproveDesc": "Автоматически утверждать ожидающие планы через N секунд (0 = ждать меня)", "planAutoApproveLabel": "Автоутверждение планов", - "questionAutoSkipDesc": "Автоматически пропускать ожидающие вопросы агента через N секунд (0 = ждать меня).", + "questionAutoSkipDesc": "Автоматически пропускать ожидающие вопросы агента через N секунд (0 = ждать меня)", "questionAutoSkipLabel": "Автопропуск вопросов", "roleNameLabel": "Название", "roleNamePlaceholder": "Название роли", "stanceAutonomous": "Автономно — никогда не ждать меня", "stanceDeferAndBatch": "Отложить и объединить — сначала работа, вопросы потом", - "stanceDesc": "Как агент обрабатывает блокирующие решения, пока эта роль активна.", + "stanceDesc": "Как агент обрабатывает блокирующие решения, пока эта роль активна", "stanceInteractive": "Интерактивно — спрашивать меня свободно", "stanceLabel": "Модель поведения" }, diff --git a/src/i18n/locales/ru/onboarding.json b/src/i18n/locales/ru/onboarding.json index 64bee47914..37cd85348f 100644 --- a/src/i18n/locales/ru/onboarding.json +++ b/src/i18n/locales/ru/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Обзор общего макета", - "description": "Познакомьтесь с панелью чата, Runtime, переключателем режимов и доком.", + "description": "Познакомьтесь с панелью чата, Runtime, переключателем режимов и доком", "duration": "1 минута", "steps": { "chat-panel": { "title": "Панель чата", - "body": "Здесь пользователи общаются с агентами, просматривают действия и отправляют последующие инструкции." + "body": "Здесь пользователи общаются с агентами, просматривают действия и отправляют последующие инструкции" }, "runtime": { "title": "Среда выполнения", - "body": "Здесь можно посмотреть собственное использование и состояние выполнения. В рабочем пространстве также доступны статус синхронизации участников и сведения об использовании Codex, Claude и Cursor." + "body": "Здесь можно посмотреть собственное использование и состояние выполнения. В рабочем пространстве также доступны статус синхронизации участников и сведения об использовании Codex, Claude и Cursor" }, "station-mode-pill": { "title": "Переключение станции режимы", - "body": "Используйте эту таблетку для переключения режимов станции. Рабочий стол означает «Моя станция», ваше рабочее пространство. Infinity означает Agent Station, представление активности агента." + "body": "Используйте эту таблетку для переключения режимов станции. Рабочий стол означает «Моя станция», ваше рабочее пространство. Infinity означает Agent Station, представление активности агента" }, "dock": { "title": "Док-станция Agent Station", - "body": "Док-станция переключает приложения внутри станции. В обзоре временно отключается автоматическое скрытие, поэтому эти элементы управления остаются видимыми." + "body": "Док-станция переключает приложения внутри станции. В обзоре временно отключается автоматическое скрытие, поэтому эти элементы управления остаются видимыми" } } }, "codeEditor": { "title": "Обзор редактора кода", - "description": "Познакомьтесь с вкладками, рабочей областью редактора, управлением исходным кодом и историей Git.", + "description": "Познакомьтесь с вкладками, рабочей областью редактора, управлением исходным кодом и историей Git", "duration": "2 минуты", "steps": { "tabs": { "title": "Вкладки редактора кода", - "body": "Вкладки собирают файлы, различия, терминалы, представления системы управления версиями и панели мониторинга, которые вы открываете. во время работы в репозитории." + "body": "Вкладки собирают файлы, различия, терминалы, представления системы управления версиями и панели мониторинга, которые вы открываете. во время работы в репозитории" }, "editor-surface": { "title": "Рабочая область редактора", - "body": "Это основной редактор кода поверхность. Открывайте файлы, проверяйте различия, запускайте терминалы и просматривайте внесенные изменения здесь." + "body": "Это основной редактор кода поверхность. Открывайте файлы, проверяйте различия, запускайте терминалы и просматривайте внесенные изменения здесь" }, "create-tabs": { "title": "Создавайте новые вкладки", - "body": "Используйте меню «плюс» на вкладках «Все вкладки», чтобы создавать терминалы, вкладки браузера, файлы, информационные панели и утилиты репозитория." + "body": "Используйте меню «плюс» на вкладках «Все вкладки», чтобы создавать терминалы, вкладки браузера, файлы, информационные панели и утилиты репозитория" }, "source-control": { "title": "Изменения Git", - "body": "Откройте систему управления исходным кодом для просмотра измененных файлов, подготовки или отмены работы, фиксации, извлечения, отправки, извлечения и т. д. синхронизироваться с пультом." + "body": "Откройте систему управления исходным кодом для просмотра измененных файлов, подготовки или отмены работы, фиксации, извлечения, отправки, извлечения и т. д. синхронизироваться с пультом" }, "git-history": { "title": "История Git", - "body": "Git History переключает систему управления исходным кодом в режим истории коммитов, чтобы вы могли проверять предыдущие коммиты и связанные с ними изменения." + "body": "Git History переключает систему управления исходным кодом в режим истории коммитов, чтобы вы могли проверять предыдущие коммиты и связанные с ними изменения" } } } @@ -68,6 +68,6 @@ "getStarted": "Начало работы", "newFeatures": "Новые функции", "branchesTitle": "Ветки репозитория", - "branchesDescription": "Переключайте ветки репозитория прямо в Spotlight." + "branchesDescription": "Переключайте ветки репозитория прямо в Spotlight" } } diff --git a/src/i18n/locales/ru/projects.json b/src/i18n/locales/ru/projects.json index bd30646ec0..78c57bc7d9 100644 --- a/src/i18n/locales/ru/projects.json +++ b/src/i18n/locales/ru/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Загрузка подключений GitHub...", "noConnectionTitle": "Подключение GitHub не найдено", - "noConnectionDescription": "Сначала добавьте подключение GitHub в Integrations, затем вернитесь сюда, чтобы импортировать GitHub Issues.", + "noConnectionDescription": "Сначала добавьте подключение GitHub в Integrations, затем вернитесь сюда, чтобы импортировать GitHub Issues", "linkedRepoHint": "Этот Project также будет связан с текущим Workspace repo: {{repoName}}", "errors": { "invalidRepo": "Используйте owner/repo или URL репозитория GitHub." @@ -80,7 +80,7 @@ "importLinearOrgs": "Импортировать рабочие пространства Linear", "gitFolderPath": "Путь к папке Git (необязательно)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Свяжите это рабочее пространство с существующим рабочим деревом Git для синхронизации папки.", + "gitFolderPathHint": "Свяжите это рабочее пространство с существующим рабочим деревом Git для синхронизации папки", "gitFolderBadge": "Git", "gitFolderSynced": "Синхронизируется с папкой Git", "pendingSync": "Ожидает синхронизации", @@ -123,7 +123,7 @@ "addTeams": "Добавить команды", "addLabels": "Добавить метки", "addRepos": "Привязать репо", - "noReposHint": "Нет доступных репо. Сначала добавьте репо в рабочее пространство.", + "noReposHint": "Нет доступных репо. Сначала добавьте репо в рабочее пространство", "addDate": "Добавить дату", "clearDate": "Очистить дату", "noStatus": "Нет статуса", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "Нет изменений файлов", - "fileDiffCleanHint": "Изменения файлов не обнаружены.", + "fileDiffCleanHint": "Изменения файлов не обнаружены", "costSummary": "Итого по затратам", "totalCost": "Итого", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Смотреть Work Items", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Применяется к {{count}} выбранным элементам." + "hint": "Применяется к {{count}} выбранным элементам" }, "batchStatus": { "title": "Установить статус" @@ -457,7 +457,7 @@ "save": "Сохранить текущее представление", "saveTitle": "Сохранить представление", "namePlaceholder": "Название представления", - "saveHint": "Сохраняет текущие фильтры; компоновка задаёт вид при первом открытии.", + "saveHint": "Сохраняет текущие фильтры; компоновка задаёт вид при первом открытии", "delete": "Удалить представление" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Задать свойство", - "hint": "Применяет одно значение свойства к выбранным элементам ({{count}}). Оставьте значение пустым, чтобы очистить его.", + "hint": "Применяет одно значение свойства к выбранным элементам ({{count}}). Оставьте значение пустым, чтобы очистить его", "propertyPlaceholder": "Свойство", "valuePlaceholder": "Значение", "applied": "Обновлено элементов: {{count}}" }, "revisionConflict": { "title": "Разрешить конфликт правок", - "description": "{{field}} изменилось после ревизии {{expected}}. Сравните вашу правку с ревизией {{actual}} и выберите, какую версию сохранить.", + "description": "{{field}} изменилось после ревизии {{expected}}. Сравните вашу правку с ревизией {{actual}} и выберите, какую версию сохранить", "mine": "Моя версия", "latest": "Последняя версия", "useLatest": "Использовать последнюю", @@ -573,7 +573,7 @@ "sidebarSync": "Синхронизация", "sync": { "title": "Внешняя синхронизация", - "description": "Зеркалирует рабочие элементы этого Project во внешнюю систему, например Linear или GitHub.", + "description": "Зеркалирует рабочие элементы этого Project во внешнюю систему, например Linear или GitHub", "adapterPicker": { "title": "Адаптер", "notAttached": "Не подключён", @@ -582,7 +582,7 @@ "changeWarning": "Отключите текущий адаптер перед подключением нового.", "detachProjectMenuLabel": "Отвязать GitHub", "detachProjectTitle": "Отвязать GitHub от {{project}}?", - "detachProjectDescription": "Синхронизация GitHub Issues остановится. Локальный Project и импортированные рабочие элементы останутся в ORG2.", + "detachProjectDescription": "Синхронизация GitHub Issues остановится. Локальный Project и импортированные рабочие элементы останутся в ORG2", "detachProjectAction": "Отвязать GitHub от {{project}}", "detachProjectSuccess": "GitHub отвязан от {{project}}" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Загрузка статуса Webhook…", - "notInstalledDescription": "Установите секрет Webhook, чтобы поставщик отправлял изменения напрямую, не дожидаясь следующего опроса.", + "notInstalledDescription": "Установите секрет Webhook, чтобы поставщик отправлял изменения напрямую, не дожидаясь следующего опроса", "install": "Установить Webhook", - "installedDescription": "Вставьте URL в конфигурацию Webhook вашего поставщика и используйте секрет ниже для подписи доставок.", + "installedDescription": "Вставьте URL в конфигурацию Webhook вашего поставщика и используйте секрет ниже для подписи доставок", "indicatorFresh": "Недавняя доставка", "indicatorStale": "Нет недавних доставок", "lastDeliveryNever": "Доставок ещё не было", @@ -627,7 +627,7 @@ "copyUrl": "Копировать URL", "rotate": "Сменить секрет", "secretTitle": "Скопируйте этот секрет сейчас — он больше не будет показан", - "secretDescription": "Вставьте этот секрет подписи в конфигурацию Webhook вашего поставщика. Открытое значение не сохраняется после закрытия панели.", + "secretDescription": "Вставьте этот секрет подписи в конфигурацию Webhook вашего поставщика. Открытое значение не сохраняется после закрытия панели", "copySecret": "Копировать секрет", "dismissSecret": "Я сохранил его", "secretCopied": "Секрет скопирован в буфер обмена", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Статусы", "statusesBuiltin": "Встроенные статусы", - "statusesBuiltinDescription": "Стандартные категории рабочего процесса. Доступны всегда.", + "statusesBuiltinDescription": "Стандартные категории рабочего процесса. Доступны всегда", "statusesCustom": "Пользовательские статусы", - "statusesCustomDescription": "Именованные псевдонимы для встроенной категории. Фильтры, счётчики и доски считают их своей категорией.", + "statusesCustomDescription": "Именованные псевдонимы для встроенной категории. Фильтры, счётчики и доски считают их своей категорией", "statusNamePlaceholder": "Название статуса", "noCustomStatuses": "Пользовательских статусов пока нет.", "statusArchive": "Архивировать статус", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/ru/sessions.json b/src/i18n/locales/ru/sessions.json index 3385cf60d7..009e6977f9 100644 --- a/src/i18n/locales/ru/sessions.json +++ b/src/i18n/locales/ru/sessions.json @@ -896,10 +896,10 @@ "exportJson": "Экспорт JSON", "importAction": "Импортировать Session", "exportDescription": "Экспортируйте активную Session как переносимый JSON-снимок", - "importDescription": "Импортируйте JSON-снимок Session в боковую панель.", + "importDescription": "Импортируйте JSON-снимок Session в боковую панель", "jsonSnapshotNote": "Импортированные Sessions являются снимками только для чтения и сохраняют исходную историю событий", "chooseJson": "Выбрать JSON-файл", - "chooseJsonHint": "Выберите файл экспорта .orgii-session.json.", + "chooseJsonHint": "Выберите файл экспорта .orgii-session.json", "loadingPreview": "Подсчет событий Session…", "noActiveSession": "Активная Session не выбрана.", "importedName": "Импортированная Session: {{name}}", @@ -1908,7 +1908,7 @@ "start": "Начать", "missingGit": { "title": "Git отсутствует", - "body": "Git не установлен или не найден. Попросите ADE Manager или SDE Agent установить Git на этот компьютер, затем перезапустите ORG2." + "body": "Git не установлен или не найден. Попросите ADE Manager или SDE Agent установить Git на этот компьютер, затем перезапустите ORG2" }, "model": "Модель", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "Команда архивирована, но не удалось освободить {{count}} среду. Удаление по-прежнему заблокировано.", "archiveTeardownQuiesced": "Команда архивирована и полностью остановлена. Теперь доступно окончательное удаление.", "dangerZone": "Опасная зона", - "deleteDescription": "Окончательно удалить эту команду, все ее сеансы и историю.", + "deleteDescription": "Окончательно удалить эту команду, все ее сеансы и историю", "deleteTeam": "Удалить команду", "deleteTitle": "Окончательно удалить эту команду?", "deleteWarning": "Все сеансы и история команды будут удалены навсегда. Это действие нельзя отменить.", diff --git a/src/i18n/locales/ru/settings.json b/src/i18n/locales/ru/settings.json index acc8640bd0..fa3953bb87 100644 --- a/src/i18n/locales/ru/settings.json +++ b/src/i18n/locales/ru/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "Скрывать ORG2 при управлении рабочим столом", - "hideBeforeActionHelper": "Скрывает главное окно ORG2 во время работы Peekaboo и показывает панель Wingman с плавающей подписью, чтобы Agent не управлял фокусом вручную.", + "hideBeforeActionHelper": "Скрывает главное окно ORG2 во время работы Peekaboo и показывает панель Wingman с плавающей подписью, чтобы Agent не управлял фокусом вручную", "antiDetection": "Защита от обнаружения автоматизации (HID)", - "antiDetectionHelper": "Заставляет Peekaboo отправлять настоящие события CGEvent (HID) для кликов и нажатий клавиш вместо чистых действий Accessibility, чтобы приложения с детекцией автоматизации (например, WeChat) реже блокировали управление рабочим столом.", + "antiDetectionHelper": "Заставляет Peekaboo отправлять настоящие события CGEvent (HID) для кликов и нажатий клавиш вместо чистых действий Accessibility, чтобы приложения с детекцией автоматизации (например, WeChat) реже блокировали управление рабочим столом", "humanInputProfile": "Человекоподобный ритм ввода", - "humanInputProfileHelper": "Применяет человекоподобный профиль таймингов к синтезированным нажатиям клавиш. Отключите для ввода на максимальной скорости.", + "humanInputProfileHelper": "Применяет человекоподобный профиль таймингов к синтезированным нажатиям клавиш. Отключите для ввода на максимальной скорости", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Отсутствует: {{bins}}", "skillMissingEnv": "Отсутствуют переменные окружения: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Стратегия pull", "pullStrategyDesc": "Как git pull интегрирует изменения с remote при синхронизации", - "pullStrategyHint": "Rebase (по умолчанию): Replays ваши commits поверх remote. Создаёт linear history.\n\nMerge: Создаёт merge commit при diverge branches. Сохраняет полный history.\n\nFast-forward only: Разрешает pull только когда merge не нужен. Отказывает если branches diverged.", + "pullStrategyHint": "Rebase (по умолчанию): Replays ваши commits поверх remote. Создаёт linear history.\n\nMerge: Создаёт merge commit при diverge branches. Сохраняет полный history.\n\nFast-forward only: Разрешает pull только когда merge не нужен. Отказывает если branches diverged", "strategyMerge": "Merge", "strategyRebase": "Rebase (по умолчанию)", "strategyFfOnly": "Только Fast-forward (строго)", @@ -602,7 +602,7 @@ "checkFailed": "Не удалось проверить обновления", "checking": "Проверка обновлений…", "officialInstalled": "Официальное приложение установлено", - "officialInstalledDesc": "Версия {{version}} установлена в {{path}}. Эта локальная сборка продолжает работать без изменений.", + "officialInstalledDesc": "Версия {{version}} установлена в {{path}}. Эта локальная сборка продолжает работать без изменений", "downloadFailed": "Не удалось загрузить обновление", "retryNow": "Повторить сейчас", "downloadTimeout": "Время ожидания загрузки истекло. Проверьте сеть или прокси и повторите попытку.", @@ -738,7 +738,7 @@ "tableVersion": "Версия", "tableStatus": "Статус", "installSection": "Установка", - "installHintNote": "Предлагаемая команда установки для вашей платформы. Большинство системных зависимостей требует прав администратора, поэтому мы не запускаем их автоматически — скопируйте и вставьте в свой terminal." + "installHintNote": "Предлагаемая команда установки для вашей платформы. Большинство системных зависимостей требует прав администратора, поэтому мы не запускаем их автоматически — скопируйте и вставьте в свой terminal" }, "storage": { "dataDirectory": "Каталог данных", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Включить эволюцию для {{agentName}}", "noAgentsTitle": "Нет доступных Agent", - "noAgentsSubtitle": "Создайте или импортируйте Agent, чтобы настроить эволюцию." + "noAgentsSubtitle": "Создайте или импортируйте Agent, чтобы настроить эволюцию" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/tr/common.json b/src/i18n/locales/tr/common.json index ae4ec09e49..c7b221d29d 100644 --- a/src/i18n/locales/tr/common.json +++ b/src/i18n/locales/tr/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Token oluştur", "openGitSettingsButton": "Ayarları aç", "configureInSettings": "Git’i ayarlarda yapılandır", - "configureInSettingsDesc": "Ayarlar → Bağlantılar içinde GitHub App erişimi ekleyin, token kaydedin veya yerel kimlik bilgilerini tarayın; ardından bu Git işlemini yeniden deneyin." + "configureInSettingsDesc": "Ayarlar → Bağlantılar içinde GitHub App erişimi ekleyin, token kaydedin veya yerel kimlik bilgilerini tarayın; ardından bu Git işlemini yeniden deneyin" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Depo adı origin remote'tan çözümlenemedi", "authRequired": { "title": "GitHub'ı bağla", - "description": "GitHub hesabınızı bağlamak için Ayarlar → Bağlantılar bölümüne gidin." + "description": "GitHub hesabınızı bağlamak için Ayarlar → Bağlantılar bölümüne gidin" }, "navigationTrail": "Pull request gezinmesi", "failedToLoad": "Pull requestler yüklenemedi", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Issue’yu açıklayın (isteğe bağlı)…", "authRequired": { "title": "GitHub'ı bağla", - "description": "GitHub hesabınızı bağlamak için Ayarlar → Bağlantılar bölümüne gidin." + "description": "GitHub hesabınızı bağlamak için Ayarlar → Bağlantılar bölümüne gidin" }, "reAuthRequired": "GitHub yetkilendirmesi gerekli", - "reAuthDescription": "GitHub token'ınızın süresi doldu. Yeniden bağlanmak için Ayarlar → Bağlantılar bölümüne gidin.", + "reAuthDescription": "GitHub token'ınızın süresi doldu. Yeniden bağlanmak için Ayarlar → Bağlantılar bölümüne gidin", "goToSettings": "Ayarlara git", "loadingTimeline": "Etkinlik yükleniyor…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "ORG2'den çıkılsın mı?", - "subtitle": "Çalışan oturumlar mevcut durumunu korur. ORG2'yi daha sonra yeniden açabilirsiniz.", + "subtitle": "Çalışan oturumlar mevcut durumunu korur. ORG2'yi daha sonra yeniden açabilirsiniz", "cancel": "İptal", "confirm": "Çık" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari, çerezleri macOS tarafından korunan bir klasörde tutar. Sistem Ayarları’ndaki Tam Disk Erişimi bölümünde ORG2’ye izin verin, ardından yeniden kontrol edin.", + "explain": "Safari, çerezleri macOS tarafından korunan bir klasörde tutar. Sistem Ayarları’ndaki Tam Disk Erişimi bölümünde ORG2’ye izin verin, ardından yeniden kontrol edin", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/tr/integrations.json b/src/i18n/locales/tr/integrations.json index 23c7120ba8..05f7727e20 100644 --- a/src/i18n/locales/tr/integrations.json +++ b/src/i18n/locales/tr/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "Yereli Kaldır", "unlist": "Listeden Çıkar", "confirmRemoveTitle": "\"{{name}}\" kaldırılsın mı?", - "confirmRemoveMessage": "Yerel kimlik bilgileri kaldırılacak. Bu işlem geri alınamaz.", + "confirmRemoveMessage": "Yerel kimlik bilgileri kaldırılacak. Bu işlem geri alınamaz", "toasts": { "refreshed": "{{name}} başarıyla yenilendi", "refreshError": "{{name}} yenilenemedi: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "Hesap e-postası" }, "customModels": { - "manualSetupHint": "Uç noktanızın kabul ettiği tam model kimliğini ve isteğe bağlı görünen adı ekleyin. Model keşfi isteğe bağlıdır; etkinleştirmek uyumluluğu doğrulamaz.", + "manualSetupHint": "Uç noktanızın kabul ettiği tam model kimliğini ve isteğe bağlı görünen adı ekleyin. Model keşfi isteğe bağlıdır; etkinleştirmek uyumluluğu doğrulamaz", "modelNamePlaceholder": "Model id girin...", "displayNamePlaceholder": "İsteğe bağlı etiket", - "emptyHint": "Henüz özel model eklenmedi.", + "emptyHint": "Henüz özel model eklenmedi", "addModel": "Model Ekle", "testRequiresEndpoint": "Bu modeli test etmek için bir uç nokta ve API anahtarı girin", "invalidModelId": "Model kimlikleri boşluk veya denetim karakteri içermeden 1–256 bayt olmalıdır.", @@ -145,7 +145,7 @@ "keysVerified": "Kimlik Bilgileri Doğrulandı", "failedMessage": "API Key ve Session Token'ınız aynı Cursor hesabına ait görünmüyor.", "failedError": "Hata: {{error}}", - "failedHint": "Lütfen aynı Cursor hesabından eşleşen kimlik bilgileriyle yeni bir liste oluşturun.", + "failedHint": "Lütfen aynı Cursor hesabından eşleşen kimlik bilgileriyle yeni bir liste oluşturun", "listingRejected": "Liste Reddedildi", "rejectedByAdmin": "Bu liste bir yönetici tarafından reddedildi." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "Cursor hesabınızı bağlamak için dahili tarayıcıyı kullanın.", "loggedIn": "Giriş yapıldı", "loginStep": "Giriş", - "signInToCursorHint": "Cursor hesabınızda oturum açın. Girişten sonra bu pencere otomatik olarak kapanır.", + "signInToCursorHint": "Cursor hesabınızda oturum açın. Girişten sonra bu pencere otomatik olarak kapanır", "copilotCreatePat": "GitHub Personal Access Token Oluştur", "copilotCreatePatDesc": "GitHub PAT oluşturmak için dahili tarayıcıyı açar", "copilotTokenValidated": "Token doğrulandı", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Cursor girişi", "modelCount": "{{count}} model", "cursorLoginReadyTitle": "Cursor hesabı bağlandı", - "cursorLoginReadyDesc": "Aşağıda bir Cursor API Key oluşturup yapıştırın. Cursor agent bu API Key olmadan çalışmaz.", + "cursorLoginReadyDesc": "Aşağıda bir Cursor API Key oluşturup yapıştırın. Cursor agent bu API Key olmadan çalışmaz", "cursorApiKeyBrowserHint": "Giriş yaptıktan sonra ORG2 Cursor dashboard'u açar. Orada bir User API Key oluşturun ve aşağıya yapıştırın", "cursorApiKeyRecommendedTitle": "Cursor API Key önerilir", "cursorApiKeyRecommendedDesc": "Cursor'u yalnızca ORG2'nin Rust agents ile kullanmak istiyorsanız Cursor API Key olmadan devam edebilirsiniz; sadece dahili tarayıcıyla oturum açın veya bir session token sağlayın", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway, her kanaldan gelen mesajları yönlendirir. Semantik yönlendirme için kullanılacak API anahtarı ve modeli seçin.", + "description": "Gateway, her kanaldan gelen mesajları yönlendirir. Semantik yönlendirme için kullanılacak API anahtarı ve modeli seçin", "statusReady": "Yapılandırıldı", "statusUnconfigured": "Yapılandırılmadı", "account": "API Anahtarı Hesabı", @@ -581,7 +581,7 @@ "model": "Model", "modelPlaceholder": "Model seçin", "groupPerUser": "Grup sohbet oturumlarını kullanıcı başına izole et", - "groupPerUserDesc": "Grup sohbetindeki her katılımcı kendi oturum bağlamına sahip olur." + "groupPerUserDesc": "Grup sohbetindeki her katılımcı kendi oturum bağlamına sahip olur" }, "emailProtocol": "Protokol", "matrixDeviceNamePlaceholder": "ORG2 botu" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Doğrulama URL'sini açın ve GitHub'ı yetkilendirmek için bu kodu girin.", "scanCredHelper": "Git kimlik yardımcısı ({{name}})", "scanEmpty": "Hiçbir şey algılanmadı", - "scanEmptyDesc": "gh CLI token'ı, kimlik yardımcısı veya SSH anahtarı bulunamadı. Yukarıdan başka bir yöntem seçin.", + "scanEmptyDesc": "gh CLI token'ı, kimlik yardımcısı veya SSH anahtarı bulunamadı. Yukarıdan başka bir yöntem seçin", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Algılanan kimlik bilgileri", - "scanResultsDesc": "İçe aktarmak için birini seçin. Token'lar kaydedilmeden önce GitHub'da doğrulanır.", + "scanResultsDesc": "İçe aktarmak için birini seçin. Token'lar kaydedilmeden önce GitHub'da doğrulanır", "scanSshKey": "SSH anahtarı — {{name}}", "scanning": "Taranıyor…", - "scanningDesc": "Bu makinede gh CLI token'ları, kimlik yardımcıları ve SSH anahtarları aranıyor.", + "scanningDesc": "Bu makinede gh CLI token'ları, kimlik yardımcıları ve SSH anahtarları aranıyor", "sshKeyPath": "SSH anahtarı yolu", "sshKeyPathDesc": "Özel anahtarın mutlak yolu (örn. ~/.ssh/id_ed25519). Eşleşen genel anahtar GitHub'da zaten kayıtlı olmalıdır.", "scanSelectRequired": "İçe aktarmak için algılanan bir kimlik bilgisi seçin.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Browser CLI sağlayıcısını değiştirmek, Agent'ların seçilen aracı görmesi için ORG2'nin yeniden başlatılmasını gerektirir. Şimdi yeniden başlatılsın mı?", "sidecarDownloadsSectionTitle": "Sidecar indirmeleri", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Bu platform için Agent Browser ikili dosyasını ~/.orgii/bin içine indirir. ORG2 bunu başlangıçta asla indirmez.", + "sidecarAgentBrowserDesc": "Bu platform için Agent Browser ikili dosyasını ~/.orgii/bin içine indirir. ORG2 bunu başlangıçta asla indirmez", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Masaüstü otomasyonu için macOS Peekaboo ikili dosyasını ~/.orgii/bin içine indirir. Desteklenmeyen platformlar devre dışı kalır.", + "sidecarPeekabooDesc": "Masaüstü otomasyonu için macOS Peekaboo ikili dosyasını ~/.orgii/bin içine indirir. Desteklenmeyen platformlar devre dışı kalır", "sidecarUnsupported": "Desteklenmiyor", "sidecarInstalled": "Yüklü", "sidecarNotInstalled": "Yüklü değil", @@ -874,7 +874,7 @@ "connectMethodDesc": "GitHub hesabınızı nasıl bağlayacağınızı seçin", "githubApp": "GitHub App", "detectFromSystem": "Sistemden Algıla", - "detectFromSystemDesc": "gh CLI, SSH anahtarları veya Git kimlik yardımcılarını kullanın.", + "detectFromSystemDesc": "gh CLI, SSH anahtarları veya Git kimlik yardımcılarını kullanın", "credentialsDetected": "Kimlik bilgileri algılandı", "detectedVia": "{{source}} üzerinden algılandı", "sshKeyLabel": "SSH Anahtarı", @@ -894,7 +894,7 @@ "noCredentialsFound": "GitHub kimlik bilgileri bulunamadı", "noCredentialsHint": "Yerel algılama için GitHub CLI (gh) yükleyin veya SSH anahtarları ayarlayın", "manuallyAddToken": "Token’ı elle ekle", - "manualTokenDesc": "HTTPS Git işlemleri için GitHub PAT yapıştırın.", + "manualTokenDesc": "HTTPS Git işlemleri için GitHub PAT yapıştırın", "autoDetect": "Otomatik algıla", "autoDetectTokenSaved": "GitHub token kaydedildi", "autoDetectSshSwitched": "Remote SSH’ye geçirildi", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "ORG2 üzerinden oluşturulan Git commit'lerine {{name}} <{{email}}> ekle", "noTokenYet": "Token gerekiyor mu?", - "createTokenDesc": "GitHub’ı açıp repo erişimli bir PAT oluşturun.", + "createTokenDesc": "GitHub’ı açıp repo erişimli bir PAT oluşturun", "accountConnected": "GitHub hesabı bağlandı", "disconnectMsg": "Bağlantıyı kesmek istediğinizden emin misiniz? Bu, bu hesaptaki tüm depolara erişimi kaldıracaktır.", "disconnectTitle": "GitHub Hesabı Bağlantısını Kes", @@ -929,7 +929,7 @@ "connectRepoDesc": "Depolara erişmek için bir GitHub hesabı bağlayın", "github": "GitHub", "signInWithGithub": "GitHub ile oturum aç", - "signInWithGithubDesc": "ORG2'yi GitHub Device Flow üzerinden yetkilendirin. Sunucu barındırma gerekmez.", + "signInWithGithubDesc": "ORG2'yi GitHub Device Flow üzerinden yetkilendirin. Sunucu barındırma gerekmez", "oauthWaiting": "Yetkilendirme bekleniyor", "oauthDeviceCodeDesc": "Aşağıdaki URL'yi açın ve bu kodu girin", "oauthOpenGithub": "GitHub'ı aç", @@ -985,7 +985,7 @@ "filePathPlaceholder": "ör. scripts/validate.py", "removeFile": "Dosyayı kaldır", "editorNoDraftTitle": "Devam eden bir Skill taslağı yok", - "editorNoDraftDesc": "Skills sayfasında Oluştur'a tıklayın veya düzenlemek için bir Skill seçin.", + "editorNoDraftDesc": "Skills sayfasında Oluştur'a tıklayın veya düzenlemek için bir Skill seçin", "scopeWorkspace": "Repo-specific", "deleteConfirmTitle": "«{{name}}» becerisini sil?", "deleteConfirmMessage": "Bu işlem beceriyi ve tüm dosyalarını kaldıracaktır. Bu eylem geri alınamaz." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "MCP sunucularını ara...", "noServers": "Yapılandırılmış MCP sunucusu yok", - "noServersDesc": "Agent yeteneklerini harici araçlarla genişletmek için bir MCP sunucusu ekleyin.", + "noServersDesc": "Agent yeteneklerini harici araçlarla genişletmek için bir MCP sunucusu ekleyin", "addServer": "MCP Sunucusu Ekle", "editServer": "MCP Sunucusunu Düzenle", "serverName": "Sunucu Adı", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "Kaynak izleme hook'ları", - "masterToggleDesc": "Kapatıldığında tüm yönetilen hook'lar kaldırılır ve hiçbir sinyal yakalanmaz; platform seçimleri korunur ve yeniden açıldığında geri yüklenir.", + "masterToggleDesc": "Kapatıldığında tüm yönetilen hook'lar kaldırılır ve hiçbir sinyal yakalanmaz; platform seçimleri korunur ve yeniden açıldığında geri yüklenir", "liveStatusToggle": "Canlı ajan durumu", - "liveStatusToggleDesc": "Çalışan CLI ajanlarının çalıştığını veya beklediğini gösterir. Kapatılsa da kaynak izleme sürer.", + "liveStatusToggleDesc": "Çalışan CLI ajanlarının çalıştığını veya beklediğini gösterir. Kapatılsa da kaynak izleme sürer", "title": "Oturum kaynağı", "capture": "Dosya etkileşimlerini kaydet", - "description": "Dosya okuma ve yazma işlemlerini meta veri olarak kaydeder. İstemler, araç çıktıları ve dosya içerikleri saklanmaz.", + "description": "Dosya okuma ve yazma işlemlerini meta veri olarak kaydeder. İstemler, araç çıktıları ve dosya içerikleri saklanmaz", "installDrift": "Kaydedilen tercih ile yüklü hook farklı. Yönetilen hook'u onarmak için kaydı değiştirin. Yapılandırma: {{path}}", "copyPath": "Kopyala", "col": { @@ -1185,7 +1185,7 @@ "addMember": "Üye Ekle", "noMembers": "Org hiyerarşinizi oluşturmak için üye ekleyin", "membersLabel": "Takım Üyeleri", - "membersDesc": "Her satır, bağımsız Writer izni ve iletişim ayarları olan bir üyedir. Adlar benzersiz olmalıdır; rol yalnızca uzmanlığı açıklar.", + "membersDesc": "Her satır, bağımsız Writer izni ve iletişim ayarları olan bir üyedir. Adlar benzersiz olmalıdır; rol yalnızca uzmanlığı açıklar", "memberName": "Ad", "memberNamePlaceholder": "Benzersiz yönlendirme adı (örn. SDE-1)", "memberNameDuplicate": "Başka bir üye bu name'i zaten kullanıyor. Name ekip içinde benzersiz olmalıdır.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "Bu agent ne yapar? (isteğe bağlı)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Mesaj başına eşzamanlı Tool çağrısı sayısı. Varsayılan: 10.", + "maxToolUseConcurrencyDesc": "Mesaj başına eşzamanlı Tool çağrısı sayısı. Varsayılan: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "Geçici Git Worktree'de çalıştır (dosya ve Shell erişimi izole).", + "subAgentWorktreeIsolationDesc": "Geçici Git Worktree'de çalıştır (dosya ve Shell erişimi izole)", "addSubAgent": "Sub-Agent Ekle...", "noSubAgents": "Yapılandırılmış sub-agent yok." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "Bu kuralın uygulanacağı Agent'lar (boş = tümü)", "selectAgents": "Agent seç…", "ruleSource": "Kaynak", - "ruleSourceDesc": "Tüm repolar için User, tek repo kılavuzu için Repo seçin.", + "ruleSourceDesc": "Tüm repolar için User, tek repo kılavuzu için Repo seçin", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Tüm repolarda kullanılabilen bir kullanıcı tercihi.", + "ruleSourceUserDesc": "Tüm repolarda kullanılabilen bir kullanıcı tercihi", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Seçilen tek repo için kaydedilen bir kılavuz.", + "ruleSourceRepoDesc": "Seçilen tek repo için kaydedilen bir kılavuz", "ruleRepo": "Repo", "ruleRepoDesc": "Bu kılavuzun geçerli olduğu tek repo", "selectRepo": "Repo seç…", "ruleSourcePersonal": "Kişisel", - "ruleSourcePersonalDesc": "~/.orgii/personal/rules/ konumunda saklanır. Yalnızca OS Agent / channel oturumları.", + "ruleSourcePersonalDesc": "~/.orgii/personal/rules/ konumunda saklanır. Yalnızca OS Agent / channel oturumları", "findSkills": { "title": "Skills ara", "placeholder": "Skills ara...", "installs": "Installs", "emptyTitle": "Skills ara", - "emptySubtitle": "Skills bulmak için en az 2 karakter girin ve Enter’a basın.", + "emptySubtitle": "Skills bulmak için en az 2 karakter girin ve Enter’a basın", "noResults": "Skills bulunamadı", - "noResultsDesc": "Farklı bir arama terimi deneyin." + "noResultsDesc": "Farklı bir arama terimi deneyin" }, "importAgentTitle": "Agents öğelerini diğer apps içinden içe aktar", "importAgentColumn": "Agent", "importedItemAgents": "agent'lar", "emptySelectionTitle": "Bir üye veya Agent Ekibi seçin", - "emptySelectionSubtitle": "Görüntülemek ve yapılandırmak için kenar çubuğundan bir Agent veya Agent Ekibi seçin.", + "emptySelectionSubtitle": "Görüntülemek ve yapılandırmak için kenar çubuğundan bir Agent veya Agent Ekibi seçin", "applicableWorkspace": "Uygulanacak Workspace", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "CLI yapılandırma anahtarı", "modeLabel": "Mod", - "modeDesc": "Varsayılan, CLI'ın kendi yapılandırmasını geri yükler. ORG2 Yönetimli, yedeklenmiş bir proxy yapılandırması yazar.", + "modeDesc": "Varsayılan, CLI'ın kendi yapılandırmasını geri yükler. ORG2 Yönetimli, yedeklenmiş bir proxy yapılandırması yazar", "modeDefault": "Varsayılan", "modeOrgii": "ORG2 Yönetimli", "conflict": "Harici değişiklik", "conflictTitle": "Çakışma", - "conflictDesc": "Etkin CLI yapılandırması ORG2 yazdıktan sonra değişti.", + "conflictDesc": "Etkin CLI yapılandırması ORG2 yazdıktan sonra değişti", "proxyStatus": "Proxy", "proxyDefault": "Varsayılan mod", "proxyReady": "Proxy hazır", "proxyNotReady": "Proxy hazır değil", "keyLabel": "Anahtar", - "keyDesc": "Yalnızca bu CLI ve yönetimli proxy ile uyumlu API anahtarları gösterilir.", + "keyDesc": "Yalnızca bu CLI ve yönetimli proxy ile uyumlu API anahtarları gösterilir", "selectKey": "Anahtar seç", "modelLabel": "Model", "selectModel": "Model seç", @@ -1356,7 +1356,7 @@ "forceRestore": "Zorla Geri Yükle", "applySuccess": "ORG2 yönetimli yapılandırma uygulandı", "restoreSuccess": "Varsayılan yapılandırma geri yüklendi", - "proxyLifecycleDesc": "Bu modu kullanırken ORG2'yi çalışır durumda tutun. Pencereyi kapatmak proxy'yi tepside tutar; ORG2'den çıkmak, yapılandırma harici olarak değişmediği sürece Varsayılanı güvenle geri yükler." + "proxyLifecycleDesc": "Bu modu kullanırken ORG2'yi çalışır durumda tutun. Pencereyi kapatmak proxy'yi tepside tutar; ORG2'den çıkmak, yapılandırma harici olarak değişmediği sürece Varsayılanı güvenle geri yükler" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Toplam süre: {{value}}s" }, "title": "Yerleşik Housekeeper", - "description": "Yerel MiniCPM istem düzeltme, kısa adım açıklamaları ve hafif UI denetimini üstlenir. Kodlama görevleri ve karmaşık ADE kurulumu yine ana agent modelini kullanır.", + "description": "Yerel MiniCPM istem düzeltme, kısa adım açıklamaları ve hafif UI denetimini üstlenir. Kodlama görevleri ve karmaşık ADE kurulumu yine ana agent modelini kullanır", "autoAccount": "MiniCPM vLLM hesabını otomatik seç", "tiles": { "model": "Model", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Housekeeper'ı etkinleştir", - "description": "Devre dışı bırakıldığında istem düzeltme, adım açıklamaları ve hafif UI denetimi MiniCPM kullanmaz." + "description": "Devre dışı bırakıldığında istem düzeltme, adım açıklamaları ve hafif UI denetimi MiniCPM kullanmaz" }, "account": { "title": "vLLM MiniCPM hesabı", - "description": "Mevcut bir KeyVault vllm_api hesabını yeniden kullanır; ayrı bir kimlik bilgisi deposu oluşturulmaz." + "description": "Mevcut bir KeyVault vllm_api hesabını yeniden kullanır; ayrı bir kimlik bilgisi deposu oluşturulmaz" }, "model": { "title": "Model kimliği", - "description": "Docker vLLM MiniCPM5-1B varsayılan olarak openbmb/MiniCPM5-1B kullanır." + "description": "Docker vLLM MiniCPM5-1B varsayılan olarak openbmb/MiniCPM5-1B kullanır" }, "context": { "title": "Güvenli bağlam bütçesi", - "description": "4GB GPU'larda teorik 32k sınırına güvenmek yerine ihtiyatlı bir 10000 token bütçesi kullan." + "description": "4GB GPU'larda teorik 32k sınırına güvenmek yerine ihtiyatlı bir 10000 token bütçesi kullan" } }, "features": { "promptPolish": { "title": "İstem düzeltme", - "description": "Girdiyi daha güçlü kodlama modeline göndermeden önce manuel olarak düzeltin." + "description": "Girdiyi daha güçlü kodlama modeline göndermeden önce manuel olarak düzeltin" }, "stepExplain": { "title": "Agent adım açıklamaları", - "description": "Oturum tekrarı adımları için bir veya iki kısa Çince açıklama oluştur." + "description": "Oturum tekrarı adımları için bir veya iki kısa Çince açıklama oluştur" }, "uiControl": { "title": "Hafif ADE/UI denetimi", - "description": "MiniCPM istekleri yalnızca katı bir yerel eylem beyaz listesine göre sınıflandırabilir." + "description": "MiniCPM istekleri yalnızca katı bir yerel eylem beyaz listesine göre sınıflandırabilir" }, "contextCompact": { "title": "Otomatik bağlam bakımı", - "description": "Etkin oturumlar boştayken MiniCPM'in eski bağlamın yalıtılmış, kayan bir özetini tutmasına izin ver." + "description": "Etkin oturumlar boştayken MiniCPM'in eski bağlamın yalıtılmış, kayan bir özetini tutmasına izin ver" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Organizasyonla paylaş", "share": "Paylaş", "sharedToOrg": "Skill organizasyonla paylaşıldı", - "shareToOrgHint": "Organizasyon üyeleri bu Skill'in geçerli anlık görüntüsünü alır; düzenledikten sonra güncelleme yayınlamak için yeniden paylaşın.", + "shareToOrgHint": "Organizasyon üyeleri bu Skill'in geçerli anlık görüntüsünü alır; düzenledikten sonra güncelleme yayınlamak için yeniden paylaşın", "shareOrgPlaceholder": "Organizasyon" } } diff --git a/src/i18n/locales/tr/navigation.json b/src/i18n/locales/tr/navigation.json index f200bce40a..b5c344f96f 100644 --- a/src/i18n/locales/tr/navigation.json +++ b/src/i18n/locales/tr/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "Sahibin modeli {{model}} anahtarlarınızla kullanılamıyor — bu çatal bunun yerine {{fallback}} kullanacak.", "forkModelUnavailable": "Sahibin modeli {{model}} anahtarlarınızla kullanılamıyor — bu çatalı çalıştırmadan önce bir model seçin.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "İptal", "deleteRoleOk": "Sil", "deleteRoleTitle": "Rol silinsin mi?", - "followUpSuggestionsDesc": "Tamamlanan bir iş öğesi turundan sonra olası sonraki adımları öner. Bu, ek bir model isteği kullanır.", + "followUpSuggestionsDesc": "Tamamlanan bir iş öğesi turundan sonra olası sonraki adımları öner. Bu, ek bir model isteği kullanır", "followUpSuggestionsLabel": "Agent takip önerileri", - "goalMaxTurnsDesc": "Agent normalde duracağı noktadan sonra son isteğim için en fazla N ek tur daha çalışmaya devam et (0 = kapalı).", + "goalMaxTurnsDesc": "Agent normalde duracağı noktadan sonra son isteğim için en fazla N ek tur daha çalışmaya devam et (0 = kapalı)", "goalMaxTurnsLabel": "Hedef sürdürme bütçesi", "guidanceLabel": "Agent yönlendirmesi", "guidancePlaceholder": "Bu rol etkinken agent davranışını nasıl uyarlamalı?", - "modeSwitchAutoPlanDesc": "Bekleyen Plan modu önerilerini onay süresi dolduğunda otomatik olarak değiştir.", + "modeSwitchAutoPlanDesc": "Bekleyen Plan modu önerilerini onay süresi dolduğunda otomatik olarak değiştir", "modeSwitchAutoPlanLabel": "Mod değişimi otomatik plan", "newRoleDefaultLabel": "Özel rol", - "pageDescription": "Şu anda üstlendiğiniz rolü tanımlayın. Agent, etkin rolün yönlendirmesini okur ve davranışını buna göre uyarlar — örneğin siz odaklanmışken daha az açıklayıcı soru sorar veya siz uzaktayken özetleri toplu halde sunar.", + "pageDescription": "Şu anda üstlendiğiniz rolü tanımlayın. Agent, etkin rolün yönlendirmesini okur ve davranışını buna göre uyarlar — örneğin siz odaklanmışken daha az açıklayıcı soru sorar veya siz uzaktayken özetleri toplu halde sunar", "pageTitle": "Rollerim", - "planAutoApproveDesc": "Bekleyen planları N saniye sonra otomatik onayla (0 = beni bekle).", + "planAutoApproveDesc": "Bekleyen planları N saniye sonra otomatik onayla (0 = beni bekle)", "planAutoApproveLabel": "Plan otomatik onayı", - "questionAutoSkipDesc": "Bekleyen agent sorularını N saniye sonra otomatik atla (0 = beni bekle).", + "questionAutoSkipDesc": "Bekleyen agent sorularını N saniye sonra otomatik atla (0 = beni bekle)", "questionAutoSkipLabel": "Soru otomatik atlama", "roleNameLabel": "Ad", "roleNamePlaceholder": "Rol adı", "stanceAutonomous": "Özerk — beni asla bekleme", "stanceDeferAndBatch": "Ertele ve topla — önce çalış, sonra sor", - "stanceDesc": "Bu rol etkinken agent'ın engelleyici kararları nasıl ele alacağı.", + "stanceDesc": "Bu rol etkinken agent'ın engelleyici kararları nasıl ele alacağı", "stanceInteractive": "Etkileşimli — bana serbestçe sor", "stanceLabel": "Davranış duruşu" }, diff --git a/src/i18n/locales/tr/onboarding.json b/src/i18n/locales/tr/onboarding.json index 06ee9281f1..405915c4b7 100644 --- a/src/i18n/locales/tr/onboarding.json +++ b/src/i18n/locales/tr/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Genel düzen turu", - "description": "Sohbet panelini, Runtime’ı, istasyon modu seçicisini ve dock’u tanıyın.", + "description": "Sohbet panelini, Runtime’ı, istasyon modu seçicisini ve dock’u tanıyın", "duration": "1 dk.", "steps": { "chat-panel": { "title": "Sohbet Paneli", - "body": "Bu, kullanıcıların temsilcilerle sohbet ettiği, etkinliği incelediği ve takip talimatlarını gönderdiği yerdir." + "body": "Bu, kullanıcıların temsilcilerle sohbet ettiği, etkinliği incelediği ve takip talimatlarını gönderdiği yerdir" }, "runtime": { "title": "Çalışma zamanı", - "body": "Kendi kullanımınızı ve çalışma durumunu burada görün. Bir çalışma alanıta üye eşitleme durumunu da inceleyebilir ve Codex, Claude ile Cursor kullanım ayrıntılarını açabilirsiniz." + "body": "Kendi kullanımınızı ve çalışma durumunu burada görün. Bir çalışma alanıta üye eşitleme durumunu da inceleyebilir ve Codex, Claude ile Cursor kullanım ayrıntılarını açabilirsiniz" }, "station-mode-pill": { "title": "İstasyon değiştir modlar", - "body": "İstasyon modlarını değiştirmek için bu hapı kullanın. Masaüstü, My Station, yani çalışma alanınız anlamına gelir. Sonsuzluk, ajan etkinlik görünümü olan Agent Station anlamına gelir." + "body": "İstasyon modlarını değiştirmek için bu hapı kullanın. Masaüstü, My Station, yani çalışma alanınız anlamına gelir. Sonsuzluk, ajan etkinlik görünümü olan Agent Station anlamına gelir" }, "dock": { "title": "Agent Station bağlantı istasyonu", - "body": "Dok, istasyonun içindeki uygulamaları değiştirir. Tur, otomatik gizlemeyi geçici olarak devre dışı bırakır, böylece bu kontroller görünür kalır." + "body": "Dok, istasyonun içindeki uygulamaları değiştirir. Tur, otomatik gizlemeyi geçici olarak devre dışı bırakır, böylece bu kontroller görünür kalır" } } }, "codeEditor": { "title": "Kod Düzenleyici turu", - "description": "Sekmeleri, düzenleyici çalışma alanını, kaynak kontrolünü ve Git geçmişini tanıyın.", + "description": "Sekmeleri, düzenleyici çalışma alanını, kaynak kontrolünü ve Git geçmişini tanıyın", "duration": "2 dk.", "steps": { "tabs": { "title": "Kod Düzenleyici sekmeleri", - "body": "Sekmeler, açıkken açtığınız dosyaları, farkları, terminalleri, kaynak kontrol görünümlerini ve kontrol panellerini toplar. depoda çalışmak." + "body": "Sekmeler, açıkken açtığınız dosyaları, farkları, terminalleri, kaynak kontrol görünümlerini ve kontrol panellerini toplar. depoda çalışmak" }, "editor-surface": { "title": "Düzenleyici çalışma alanı", - "body": "Bu, ana Kod Düzenleyici yüzeyidir. Dosyaları açın, farkları inceleyin, terminalleri çalıştırın ve oluşturulan değişiklikleri burada inceleyin." + "body": "Bu, ana Kod Düzenleyici yüzeyidir. Dosyaları açın, farkları inceleyin, terminalleri çalıştırın ve oluşturulan değişiklikleri burada inceleyin" }, "create-tabs": { "title": "Yeni sekmeler oluşturun", - "body": "Terminaller, tarayıcı sekmeleri, dosyalar, kontrol panelleri ve depo yardımcı programları oluşturmak için Tüm Sekmeler'deki artı menüsünü kullanın." + "body": "Terminaller, tarayıcı sekmeleri, dosyalar, kontrol panelleri ve depo yardımcı programları oluşturmak için Tüm Sekmeler'deki artı menüsünü kullanın" }, "source-control": { "title": "Git değişiklikleri", - "body": "Değiştirilen dosyaları incelemek, çalışmayı hazırlamak veya geri almak, onaylamak, çekmek, göndermek, göndermek için Kaynak Denetimini açın. getir ve uzaktan kumandayla senkronize et." + "body": "Değiştirilen dosyaları incelemek, çalışmayı hazırlamak veya geri almak, onaylamak, çekmek, göndermek, göndermek için Kaynak Denetimini açın. getir ve uzaktan kumandayla senkronize et" }, "git-history": { "title": "Git geçmişi", - "body": "Git Geçmişi, Kaynak Kontrolünü taahhüt geçmişi moduna geçirir, böylece önceki taahhütleri ve ilgili değişiklikleri inceleyebilirsiniz." + "body": "Git Geçmişi, Kaynak Kontrolünü taahhüt geçmişi moduna geçirir, böylece önceki taahhütleri ve ilgili değişiklikleri inceleyebilirsiniz" } } } @@ -68,6 +68,6 @@ "getStarted": "Başlarken", "newFeatures": "Yeni özellikler", "branchesTitle": "Depo dalları", - "branchesDescription": "Depo dallarını doğrudan Spotlight üzerinden değiştirin." + "branchesDescription": "Depo dallarını doğrudan Spotlight üzerinden değiştirin" } } diff --git a/src/i18n/locales/tr/projects.json b/src/i18n/locales/tr/projects.json index aa32472aea..dfb0f890a3 100644 --- a/src/i18n/locales/tr/projects.json +++ b/src/i18n/locales/tr/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "GitHub bağlantıları yükleniyor...", "noConnectionTitle": "GitHub bağlantısı bulunamadı", - "noConnectionDescription": "Önce Integrations içinde bir GitHub bağlantısı ekleyin, ardından GitHub Issues içe aktarmak için buraya dönün.", + "noConnectionDescription": "Önce Integrations içinde bir GitHub bağlantısı ekleyin, ardından GitHub Issues içe aktarmak için buraya dönün", "linkedRepoHint": "Bu Project ayrıca geçerli Workspace repo ile ilişkilendirilecek: {{repoName}}", "errors": { "invalidRepo": "owner/repo veya GitHub depo URL'si kullanın." @@ -80,7 +80,7 @@ "importLinearOrgs": "Linear çalışma alanlarını içe aktar", "gitFolderPath": "Git klasör yolu (isteğe bağlı)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Klasör senkronizasyonu için bu çalışma alanını mevcut bir Git çalışma ağacına bağlayın.", + "gitFolderPathHint": "Klasör senkronizasyonu için bu çalışma alanını mevcut bir Git çalışma ağacına bağlayın", "gitFolderBadge": "Git", "gitFolderSynced": "Bir Git klasörüyle senkronize edildi", "pendingSync": "Senkronizasyon bekleniyor", @@ -123,7 +123,7 @@ "addTeams": "Takım ekle", "addLabels": "Etiket ekle", "addRepos": "Depoları bağla", - "noReposHint": "Kullanılabilir depo yok. Önce çalışma alanına bir depo ekleyin.", + "noReposHint": "Kullanılabilir depo yok. Önce çalışma alanına bir depo ekleyin", "addDate": "Tarih ekle", "clearDate": "Tarihi temizle", "noStatus": "Durum yok", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "Dosya değişikliği yok", - "fileDiffCleanHint": "Dosya değişikliği algılanmadı.", + "fileDiffCleanHint": "Dosya değişikliği algılanmadı", "costSummary": "Maliyet özeti", "totalCost": "Toplam", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Work Item'ları görüntüle", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Seçilen {{count}} öğeye uygulanır." + "hint": "Seçilen {{count}} öğeye uygulanır" }, "batchStatus": { "title": "Durumu ayarla" @@ -457,7 +457,7 @@ "save": "Geçerli görünümü kaydet", "saveTitle": "Görünümü kaydet", "namePlaceholder": "Görünüm adı", - "saveHint": "Geçerli filtreleri yakalar; düzen ilk açılışı belirler.", + "saveHint": "Geçerli filtreleri yakalar; düzen ilk açılışı belirler", "delete": "Görünümü sil" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Özellik ayarla", - "hint": "Seçili {{count}} öğeye tek bir özellik değeri uygular. Temizlemek için değeri boş bırakın.", + "hint": "Seçili {{count}} öğeye tek bir özellik değeri uygular. Temizlemek için değeri boş bırakın", "propertyPlaceholder": "Özellik", "valuePlaceholder": "Değer", "applied": "{{count}} öğe güncellendi" }, "revisionConflict": { "title": "Düzenleme çakışmasını çöz", - "description": "{{field}}, {{expected}} revizyonundan sonra değişti. Düzenlemenizi {{actual}} revizyonuyla karşılaştırın, ardından hangi sürümün korunacağını seçin.", + "description": "{{field}}, {{expected}} revizyonundan sonra değişti. Düzenlemenizi {{actual}} revizyonuyla karşılaştırın, ardından hangi sürümün korunacağını seçin", "mine": "Benim sürümüm", "latest": "En son sürüm", "useLatest": "En sonu kullan", @@ -573,7 +573,7 @@ "sidebarSync": "Senkronizasyon", "sync": { "title": "Harici Senkronizasyon", - "description": "Bu Projectnin iş öğelerini Linear veya GitHub gibi harici bir sisteme yansıtın.", + "description": "Bu Projectnin iş öğelerini Linear veya GitHub gibi harici bir sisteme yansıtın", "adapterPicker": { "title": "Adaptör", "notAttached": "Bağlı değil", @@ -582,7 +582,7 @@ "changeWarning": "Yeni bir adaptör bağlamadan önce mevcut adaptörü ayırın.", "detachProjectMenuLabel": "GitHub bağlantısını kaldır", "detachProjectTitle": "{{project}} için GitHub bağlantısı kaldırılsın mı?", - "detachProjectDescription": "GitHub Issues senkronizasyonu duracak. Yerel proje ve içe aktarılan iş öğeleri ORG2'de kalacak.", + "detachProjectDescription": "GitHub Issues senkronizasyonu duracak. Yerel proje ve içe aktarılan iş öğeleri ORG2'de kalacak", "detachProjectAction": "{{project}} için GitHub bağlantısını kaldır", "detachProjectSuccess": "{{project}} için GitHub bağlantısı kaldırıldı" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Webhook durumu yükleniyor…", - "notInstalledDescription": "Sağlayıcının değişiklikleri bir sonraki yoklamayı beklemeden doğrudan göndermesi için bir webhook gizli anahtarı kurun.", + "notInstalledDescription": "Sağlayıcının değişiklikleri bir sonraki yoklamayı beklemeden doğrudan göndermesi için bir webhook gizli anahtarı kurun", "install": "Webhook'u kur", - "installedDescription": "URL'yi sağlayıcınızın webhook yapılandırmasına yapıştırın ve aşağıdaki gizli anahtarla teslimleri imzalayın.", + "installedDescription": "URL'yi sağlayıcınızın webhook yapılandırmasına yapıştırın ve aşağıdaki gizli anahtarla teslimleri imzalayın", "indicatorFresh": "Yakın zamanda teslim", "indicatorStale": "Yakın zamanda teslim yok", "lastDeliveryNever": "Henüz teslim yok", @@ -627,7 +627,7 @@ "copyUrl": "URL'yi kopyala", "rotate": "Gizli anahtarı yenile", "secretTitle": "Bu gizli anahtarı şimdi kopyalayın — tekrar gösterilmeyecek", - "secretDescription": "Bu imza gizli anahtarını sağlayıcınızın webhook yapılandırmasına yapıştırın. Bu paneli kapattıktan sonra düz metin değerini saklamayız.", + "secretDescription": "Bu imza gizli anahtarını sağlayıcınızın webhook yapılandırmasına yapıştırın. Bu paneli kapattıktan sonra düz metin değerini saklamayız", "copySecret": "Gizli anahtarı kopyala", "dismissSecret": "Kaydettim", "secretCopied": "Gizli anahtar panoya kopyalandı", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Durumlar", "statusesBuiltin": "Yerleşik durumlar", - "statusesBuiltinDescription": "Standart iş akışı grupları. Her zaman kullanılabilir.", + "statusesBuiltinDescription": "Standart iş akışı grupları. Her zaman kullanılabilir", "statusesCustom": "Özel durumlar", - "statusesCustomDescription": "Yerleşik bir grup üzerindeki adlandırılmış takma adlar. Filtreler, sayımlar ve panolar bunları grupları gibi ele alır.", + "statusesCustomDescription": "Yerleşik bir grup üzerindeki adlandırılmış takma adlar. Filtreler, sayımlar ve panolar bunları grupları gibi ele alır", "statusNamePlaceholder": "Durum adı", "noCustomStatuses": "Henüz özel durum yok.", "statusArchive": "Durumu arşivle", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/tr/sessions.json b/src/i18n/locales/tr/sessions.json index 1a87f5b9b4..3563384d47 100644 --- a/src/i18n/locales/tr/sessions.json +++ b/src/i18n/locales/tr/sessions.json @@ -896,10 +896,10 @@ "exportJson": "JSON dışa aktar", "importAction": "Session içe aktar", "exportDescription": "Etkin Session'ı taşınabilir bir JSON anlık görüntüsü olarak dışa aktarın", - "importDescription": "Bir Session JSON anlık görüntüsünü kenar çubuğuna içe aktarın.", + "importDescription": "Bir Session JSON anlık görüntüsünü kenar çubuğuna içe aktarın", "jsonSnapshotNote": "İçe aktarılan Sessions salt okunur anlık görüntülerdir ve özgün olay geçmişini korur", "chooseJson": "JSON dosyası seç", - "chooseJsonHint": "Bir .orgii-session.json dışa aktarma dosyası seçin.", + "chooseJsonHint": "Bir .orgii-session.json dışa aktarma dosyası seçin", "loadingPreview": "Session olayları sayılıyor…", "noActiveSession": "Etkin Session seçilmedi.", "importedName": "İçe aktarılan Session: {{name}}", @@ -1908,7 +1908,7 @@ "start": "Başlat", "missingGit": { "title": "Git eksik", - "body": "Git yüklü değil veya bulunamadı. ADE Manager ya da SDE Agent’tan bu makineye Git kurmasını isteyin, ardından ORG2’yi yeniden başlatın." + "body": "Git yüklü değil veya bulunamadı. ADE Manager ya da SDE Agent’tan bu makineye Git kurmasını isteyin, ardından ORG2’yi yeniden başlatın" }, "model": "Model", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "Arşivlendi ancak {{count}} çalışma ortamı serbest bırakılamadı. Silme engelli kalır.", "archiveTeardownQuiesced": "Arşivlendi ve tamamen durduruldu. Kalıcı silme artık kullanılabilir.", "dangerZone": "Tehlikeli Bölge", - "deleteDescription": "Bu ekibi, tüm oturumlarını ve geçmişini kalıcı olarak sil.", + "deleteDescription": "Bu ekibi, tüm oturumlarını ve geçmişini kalıcı olarak sil", "deleteTeam": "Ekibi sil", "deleteTitle": "Bu ekip kalıcı olarak silinsin mi?", "deleteWarning": "Ekibin tüm oturumları ve geçmişi kalıcı olarak silinir. Bu işlem geri alınamaz.", diff --git a/src/i18n/locales/tr/settings.json b/src/i18n/locales/tr/settings.json index e785508c94..dad828b60e 100644 --- a/src/i18n/locales/tr/settings.json +++ b/src/i18n/locales/tr/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "Masaüstü kontrolü sırasında ORG2’yi gizle", - "hideBeforeActionHelper": "Peekaboo çalışırken ana ORG2 penceresini gizler ve Wingman çubuğu ile yüzen açıklamayı gösterir; böylece Agent odağı yönetmek zorunda kalmaz.", + "hideBeforeActionHelper": "Peekaboo çalışırken ana ORG2 penceresini gizler ve Wingman çubuğu ile yüzen açıklamayı gösterir; böylece Agent odağı yönetmek zorunda kalmaz", "antiDetection": "HID otomasyon karşıtı sertleştirme", - "antiDetectionHelper": "Peekaboo’nun tıklamalar ve tuş vuruşları için saf Erişilebilirlik eylemleri yerine gerçek CGEvent (HID) girişleri göndermesini sağlar; böylece otomasyon algılama özelliği olan uygulamaların (ör. WeChat) masaüstü kontrolünü engelleme olasılığı azalır.", + "antiDetectionHelper": "Peekaboo’nun tıklamalar ve tuş vuruşları için saf Erişilebilirlik eylemleri yerine gerçek CGEvent (HID) girişleri göndermesini sağlar; böylece otomasyon algılama özelliği olan uygulamaların (ör. WeChat) masaüstü kontrolünü engelleme olasılığı azalır", "humanInputProfile": "İnsansı yazma temposu", - "humanInputProfileHelper": "Sentezlenen tuş vuruşlarına insana benzer bir zamanlama profili uygular. En yüksek hızda yazmak için devre dışı bırakın.", + "humanInputProfileHelper": "Sentezlenen tuş vuruşlarına insana benzer bir zamanlama profili uygular. En yüksek hızda yazmak için devre dışı bırakın", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Eksik: {{bins}}", "skillMissingEnv": "Eksik ortam değişkenleri: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Pull stratejisi", "pullStrategyDesc": "Senkronizasyon sırasında git pull'un remote değişiklikleri nasıl entegre edeceği", - "pullStrategyHint": "Rebase (varsayılan): Commit'lerinizi remote üzerine replays. Linear history oluşturur.\n\nMerge: Branches diverged olduğunda merge commit oluşturur. Tam history'yi korur.\n\nFast-forward only: Merge gerekmediğinde pull'a izin verir. Branches diverged ise reddeder.", + "pullStrategyHint": "Rebase (varsayılan): Commit'lerinizi remote üzerine replays. Linear history oluşturur.\n\nMerge: Branches diverged olduğunda merge commit oluşturur. Tam history'yi korur.\n\nFast-forward only: Merge gerekmediğinde pull'a izin verir. Branches diverged ise reddeder", "strategyMerge": "Merge", "strategyRebase": "Rebase (varsayılan)", "strategyFfOnly": "Yalnızca Fast-forward (katı)", @@ -602,7 +602,7 @@ "checkFailed": "Güncelleme denetimi başarısız", "checking": "Güncellemeler denetleniyor…", "officialInstalled": "Resmi uygulama yüklendi", - "officialInstalledDesc": "{{version}}, {{path}} konumuna yüklendi. Bu yerel derleme değişmeden çalışmaya devam ediyor.", + "officialInstalledDesc": "{{version}}, {{path}} konumuna yüklendi. Bu yerel derleme değişmeden çalışmaya devam ediyor", "downloadFailed": "Güncelleme indirmesi başarısız", "retryNow": "Şimdi yeniden dene", "downloadTimeout": "İndirme zaman aşımına uğradı. Ağınızı veya proxy ayarlarınızı kontrol edip yeniden deneyin.", @@ -762,7 +762,7 @@ "tableVersion": "Sürüm", "tableStatus": "Durum", "installSection": "Yükle", - "installHintNote": "Platformunuz için önerilen yükleme komutu. Çoğu sistem bağımlılığı yönetici izni gerektirir, bu yüzden otomatik çalıştırmıyoruz — kopyalayıp terminal'inize yapıştırın." + "installHintNote": "Platformunuz için önerilen yükleme komutu. Çoğu sistem bağımlılığı yönetici izni gerektirir, bu yüzden otomatik çalıştırmıyoruz — kopyalayıp terminal'inize yapıştırın" }, "agentSessions": { "chatFontSize": "Sohbet Yazı Boyutu", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "{{agentName}} için Evrim’i etkinleştir", "noAgentsTitle": "Kullanılabilir Agent yok", - "noAgentsSubtitle": "Evrim’i yapılandırmak için bir Agent oluşturun veya içe aktarın." + "noAgentsSubtitle": "Evrim’i yapılandırmak için bir Agent oluşturun veya içe aktarın" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/vi/common.json b/src/i18n/locales/vi/common.json index 1c47e5f68c..636f8b8159 100644 --- a/src/i18n/locales/vi/common.json +++ b/src/i18n/locales/vi/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "Tạo token", "openGitSettingsButton": "Mở cài đặt", "configureInSettings": "Cấu hình Git trong cài đặt", - "configureInSettingsDesc": "Thêm quyền truy cập GitHub App, lưu token hoặc quét thông tin xác thực cục bộ trong Cài đặt → Kết nối, rồi thử lại thao tác Git này." + "configureInSettingsDesc": "Thêm quyền truy cập GitHub App, lưu token hoặc quét thông tin xác thực cục bộ trong Cài đặt → Kết nối, rồi thử lại thao tác Git này" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "Không thể phân tích tên kho lưu trữ từ remote origin", "authRequired": { "title": "Kết nối GitHub", - "description": "Vào Cài đặt → Kết nối để kết nối tài khoản GitHub của bạn." + "description": "Vào Cài đặt → Kết nối để kết nối tài khoản GitHub của bạn" }, "navigationTrail": "Điều hướng pull request", "failedToLoad": "Không thể tải pull request", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "Mô tả issue (tùy chọn)…", "authRequired": { "title": "Kết nối GitHub", - "description": "Vào Cài đặt → Kết nối để kết nối tài khoản GitHub của bạn." + "description": "Vào Cài đặt → Kết nối để kết nối tài khoản GitHub của bạn" }, "reAuthRequired": "Cần ủy quyền GitHub", - "reAuthDescription": "Token GitHub của bạn đã hết hạn. Vào Cài đặt → Kết nối để kết nối lại.", + "reAuthDescription": "Token GitHub của bạn đã hết hạn. Vào Cài đặt → Kết nối để kết nối lại", "goToSettings": "Đến Cài đặt", "loadingTimeline": "Đang tải hoạt động…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "Thoát ORG2?", - "subtitle": "Các phiên đang chạy sẽ giữ nguyên trạng thái hiện tại. Bạn có thể mở lại ORG2 sau.", + "subtitle": "Các phiên đang chạy sẽ giữ nguyên trạng thái hiện tại. Bạn có thể mở lại ORG2 sau", "cancel": "Hủy", "confirm": "Thoát" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "Needs Full Disk Access", - "explain": "Safari lưu cookie trong thư mục được macOS bảo vệ. Cho phép ORG2 trong mục Truy cập toàn bộ ổ đĩa của Cài đặt hệ thống, rồi kiểm tra lại.", + "explain": "Safari lưu cookie trong thư mục được macOS bảo vệ. Cho phép ORG2 trong mục Truy cập toàn bộ ổ đĩa của Cài đặt hệ thống, rồi kiểm tra lại", "openSettings": "Open System Settings", "checkAgain": "Check again" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "{{count}} cookies were skipped", "empty": { "title": "No supported browsers found", - "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from." + "body": "Install Chrome, Edge, Brave, or Firefox with saved logins to import from" }, "category": { "banking": "Bank", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "Couldn't open System Settings", - "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow.", + "keychainDenied": "Keychain access was denied. Pick the profile again and choose Allow", "listFailed": "Couldn't find browsers to import from", "previewFailed": "Couldn't read cookies from that browser", "importFailed": "Couldn't import the selected cookies" diff --git a/src/i18n/locales/vi/integrations.json b/src/i18n/locales/vi/integrations.json index 34818341e2..0fb75b4148 100644 --- a/src/i18n/locales/vi/integrations.json +++ b/src/i18n/locales/vi/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "Xóa cục bộ", "unlist": "Hủy niêm yết", "confirmRemoveTitle": "Xóa \"{{name}}\"?", - "confirmRemoveMessage": "Thông tin xác thực cục bộ sẽ bị xóa. Hành động này không thể hoàn tác.", + "confirmRemoveMessage": "Thông tin xác thực cục bộ sẽ bị xóa. Hành động này không thể hoàn tác", "toasts": { "refreshed": "{{name}} đã làm mới thành công", "refreshError": "Không thể làm mới {{name}}: {{error}}", @@ -68,10 +68,10 @@ "accountEmail": "Email tài khoản" }, "customModels": { - "manualSetupHint": "Nhập ID mô hình chính xác mà điểm cuối chấp nhận và tên hiển thị tùy chọn. Không bắt buộc khám phá mô hình; bật mô hình không xác minh tính tương thích.", + "manualSetupHint": "Nhập ID mô hình chính xác mà điểm cuối chấp nhận và tên hiển thị tùy chọn. Không bắt buộc khám phá mô hình; bật mô hình không xác minh tính tương thích", "modelNamePlaceholder": "Nhập id mô hình...", "displayNamePlaceholder": "Nhãn tùy chọn", - "emptyHint": "Chưa thêm mô hình tùy chỉnh nào.", + "emptyHint": "Chưa thêm mô hình tùy chỉnh nào", "addModel": "Thêm mô hình", "testRequiresEndpoint": "Nhập điểm cuối và khóa API để kiểm tra mô hình này", "invalidModelId": "ID mô hình phải dài 1–256 byte, không chứa khoảng trắng hoặc ký tự điều khiển.", @@ -145,7 +145,7 @@ "keysVerified": "Thông tin xác thực đã được xác minh", "failedMessage": "API Key và Session Token của bạn dường như không thuộc cùng một tài khoản Cursor.", "failedError": "Lỗi: {{error}}", - "failedHint": "Vui lòng tạo danh sách mới với thông tin xác thực phù hợp từ cùng một tài khoản Cursor.", + "failedHint": "Vui lòng tạo danh sách mới với thông tin xác thực phù hợp từ cùng một tài khoản Cursor", "listingRejected": "Danh sách bị từ chối", "rejectedByAdmin": "Danh sách này đã bị từ chối bởi quản trị viên." }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "Dùng trình duyệt tích hợp để kết nối tài khoản Cursor của bạn.", "loggedIn": "Đã đăng nhập", "loginStep": "Đăng nhập", - "signInToCursorHint": "Đăng nhập vào tài khoản Cursor của bạn. Cửa sổ này sẽ tự đóng sau khi đăng nhập.", + "signInToCursorHint": "Đăng nhập vào tài khoản Cursor của bạn. Cửa sổ này sẽ tự đóng sau khi đăng nhập", "copilotCreatePat": "Tạo GitHub Personal Access Token", "copilotCreatePatDesc": "Mở trình duyệt tích hợp để tạo GitHub PAT", "copilotTokenValidated": "Token đã xác thực", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Đăng nhập Cursor", "modelCount": "{{count}} mô hình", "cursorLoginReadyTitle": "Tài khoản Cursor đã kết nối", - "cursorLoginReadyDesc": "Hãy tạo và dán Cursor API Key bên dưới. Cursor agent sẽ không hoạt động nếu thiếu API Key này.", + "cursorLoginReadyDesc": "Hãy tạo và dán Cursor API Key bên dưới. Cursor agent sẽ không hoạt động nếu thiếu API Key này", "cursorApiKeyBrowserHint": "Sau khi đăng nhập, ORG2 sẽ mở dashboard Cursor. Hãy tạo User API Key ở đó rồi dán vào bên dưới", "cursorApiKeyRecommendedTitle": "Nên cung cấp Cursor API Key", "cursorApiKeyRecommendedDesc": "Bạn có thể tiếp tục mà không cần Cursor API Key nếu chỉ muốn dùng Cursor với Rust agents của ORG2; chỉ cần đăng nhập bằng trình duyệt nội bộ hoặc cung cấp session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway định tuyến tin nhắn đến từ mọi kênh. Chọn API key và mô hình để sử dụng cho định tuyến ngữ nghĩa.", + "description": "Gateway định tuyến tin nhắn đến từ mọi kênh. Chọn API key và mô hình để sử dụng cho định tuyến ngữ nghĩa", "statusReady": "Đã cấu hình", "statusUnconfigured": "Chưa cấu hình", "account": "Tài khoản API Key", @@ -581,7 +581,7 @@ "model": "Mô hình", "modelPlaceholder": "Chọn mô hình", "groupPerUser": "Cô lập phiên chat nhóm theo người dùng", - "groupPerUserDesc": "Mỗi người tham gia trong chat nhóm có ngữ cảnh phiên riêng." + "groupPerUserDesc": "Mỗi người tham gia trong chat nhóm có ngữ cảnh phiên riêng" }, "emailProtocol": "Giao thức", "matrixDeviceNamePlaceholder": "Bot ORG2" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "Mở URL xác minh và nhập mã này để ủy quyền GitHub.", "scanCredHelper": "Git credential helper ({{name}})", "scanEmpty": "Không phát hiện gì", - "scanEmptyDesc": "Không tìm thấy token gh CLI, credential helper hay khóa SSH nào. Hãy chọn phương thức khác ở trên.", + "scanEmptyDesc": "Không tìm thấy token gh CLI, credential helper hay khóa SSH nào. Hãy chọn phương thức khác ở trên", "scanGhCli": "GitHub CLI (gh)", "scanResults": "Thông tin xác thực đã phát hiện", - "scanResultsDesc": "Chọn một mục để nhập. Chúng tôi xác minh token với GitHub trước khi lưu.", + "scanResultsDesc": "Chọn một mục để nhập. Chúng tôi xác minh token với GitHub trước khi lưu", "scanSshKey": "Khóa SSH — {{name}}", "scanning": "Đang quét…", - "scanningDesc": "Đang tìm token gh CLI, credential helper và khóa SSH trên máy này.", + "scanningDesc": "Đang tìm token gh CLI, credential helper và khóa SSH trên máy này", "sshKeyPath": "Đường dẫn khóa SSH", "sshKeyPathDesc": "Đường dẫn tuyệt đối đến khóa riêng (vd. ~/.ssh/id_ed25519). Khóa công khai tương ứng phải đã được đăng ký trên GitHub.", "scanSelectRequired": "Chọn một thông tin xác thực đã phát hiện để nhập.", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "Việc đổi nhà cung cấp Browser CLI yêu cầu khởi động lại ORG2 trước khi Agent thấy công cụ đã chọn. Khởi động lại ngay?", "sidecarDownloadsSectionTitle": "Tải xuống sidecar", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "Tải tệp nhị phân Agent Browser cho nền tảng này vào ~/.orgii/bin. ORG2 không bao giờ tải khi khởi động.", + "sidecarAgentBrowserDesc": "Tải tệp nhị phân Agent Browser cho nền tảng này vào ~/.orgii/bin. ORG2 không bao giờ tải khi khởi động", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "Tải tệp nhị phân macOS Peekaboo cho tự động hóa desktop vào ~/.orgii/bin. Nền tảng không hỗ trợ sẽ bị tắt.", + "sidecarPeekabooDesc": "Tải tệp nhị phân macOS Peekaboo cho tự động hóa desktop vào ~/.orgii/bin. Nền tảng không hỗ trợ sẽ bị tắt", "sidecarUnsupported": "Không hỗ trợ", "sidecarInstalled": "Đã cài đặt", "sidecarNotInstalled": "Chưa cài đặt", @@ -874,7 +874,7 @@ "connectMethodDesc": "Chọn cách kết nối tài khoản GitHub", "githubApp": "GitHub App", "detectFromSystem": "Phát hiện từ hệ thống", - "detectFromSystemDesc": "Dùng gh CLI, khóa SSH hoặc Git credential helpers.", + "detectFromSystemDesc": "Dùng gh CLI, khóa SSH hoặc Git credential helpers", "credentialsDetected": "Đã phát hiện thông tin xác thực", "detectedVia": "Phát hiện qua {{source}}", "sshKeyLabel": "Khóa SSH", @@ -894,7 +894,7 @@ "noCredentialsFound": "Không tìm thấy thông tin xác thực GitHub", "noCredentialsHint": "Cài đặt GitHub CLI (gh) hoặc thiết lập khóa SSH để sử dụng phát hiện cục bộ", "manuallyAddToken": "Thêm token thủ công", - "manualTokenDesc": "Dán GitHub PAT cho thao tác Git HTTPS.", + "manualTokenDesc": "Dán GitHub PAT cho thao tác Git HTTPS", "autoDetect": "Tự động phát hiện", "autoDetectTokenSaved": "Đã lưu GitHub token", "autoDetectSshSwitched": "Remote đã chuyển sang SSH", @@ -920,7 +920,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "Thêm {{name}} <{{email}}> vào các Git Commit được tạo từ ORG2", "noTokenYet": "Cần Token?", - "createTokenDesc": "Mở GitHub và tạo PAT có quyền truy cập repo.", + "createTokenDesc": "Mở GitHub và tạo PAT có quyền truy cập repo", "accountConnected": "Đã kết nối tài khoản GitHub", "disconnectMsg": "Bạn có chắc muốn ngắt kết nối? Thao tác này sẽ xóa quyền truy cập tất cả kho lưu trữ từ tài khoản này.", "disconnectTitle": "Ngắt kết nối tài khoản GitHub", @@ -929,7 +929,7 @@ "connectRepoDesc": "Kết nối tài khoản GitHub để truy cập kho lưu trữ", "github": "GitHub", "signInWithGithub": "Đăng nhập bằng GitHub", - "signInWithGithubDesc": "Cấp quyền cho ORG2 qua luồng thiết bị GitHub. Không cần máy chủ tự lưu trữ.", + "signInWithGithubDesc": "Cấp quyền cho ORG2 qua luồng thiết bị GitHub. Không cần máy chủ tự lưu trữ", "oauthWaiting": "Đang chờ cấp quyền", "oauthDeviceCodeDesc": "Mở URL bên dưới và nhập mã này", "oauthOpenGithub": "Mở GitHub", @@ -985,7 +985,7 @@ "filePathPlaceholder": "vd. scripts/validate.py", "removeFile": "Xóa tệp", "editorNoDraftTitle": "Không có bản nháp Skill nào đang thực hiện", - "editorNoDraftDesc": "Bắt đầu bằng cách nhấp Tạo ở trang Skills, hoặc chọn một Skill để chỉnh sửa.", + "editorNoDraftDesc": "Bắt đầu bằng cách nhấp Tạo ở trang Skills, hoặc chọn một Skill để chỉnh sửa", "scopeWorkspace": "Theo repo", "deleteConfirmTitle": "Xóa skill «{{name}}»?", "deleteConfirmMessage": "Thao tác này sẽ xóa skill và toàn bộ tệp. Không thể hoàn tác." @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "Tìm máy chủ MCP...", "noServers": "Chưa cấu hình máy chủ MCP nào", - "noServersDesc": "Thêm máy chủ MCP để mở rộng khả năng của Agent với các công cụ bên ngoài.", + "noServersDesc": "Thêm máy chủ MCP để mở rộng khả năng của Agent với các công cụ bên ngoài", "addServer": "Thêm máy chủ MCP", "editServer": "Sửa máy chủ MCP", "serverName": "Tên máy chủ", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "Hook truy xuất nguồn gốc", - "masterToggleDesc": "Khi tắt, tất cả hook được quản lý sẽ bị gỡ và không có tín hiệu nào được thu thập; lựa chọn của từng nền tảng được giữ lại và khôi phục khi bật lại.", + "masterToggleDesc": "Khi tắt, tất cả hook được quản lý sẽ bị gỡ và không có tín hiệu nào được thu thập; lựa chọn của từng nền tảng được giữ lại và khôi phục khi bật lại", "liveStatusToggle": "Trạng thái tác nhân trực tiếp", - "liveStatusToggleDesc": "Cho biết tác nhân CLI đang chạy đang làm việc hay chờ. Tắt vẫn giữ ghi nhận nguồn gốc.", + "liveStatusToggleDesc": "Cho biết tác nhân CLI đang chạy đang làm việc hay chờ. Tắt vẫn giữ ghi nhận nguồn gốc", "title": "Nguồn gốc phiên", "capture": "Ghi lại tương tác với tệp", - "description": "Ghi các thao tác đọc và ghi tệp dưới dạng siêu dữ liệu. Không lưu câu lệnh, đầu ra công cụ hoặc nội dung tệp.", + "description": "Ghi các thao tác đọc và ghi tệp dưới dạng siêu dữ liệu. Không lưu câu lệnh, đầu ra công cụ hoặc nội dung tệp", "installDrift": "Tùy chọn đã lưu và hook đã cài đặt không khớp. Hãy chuyển đổi tính năng ghi để sửa hook được quản lý. Cấu hình: {{path}}", "copyPath": "Sao chép", "col": { @@ -1185,7 +1185,7 @@ "addMember": "Thêm Thành viên", "noMembers": "Thêm thành viên để xây dựng cấu trúc org", "membersLabel": "Thành viên nhóm", - "membersDesc": "Mỗi hàng là một thành viên với quyền Writer và cài đặt liên lạc độc lập. Tên phải duy nhất; vai trò chỉ mô tả chuyên môn.", + "membersDesc": "Mỗi hàng là một thành viên với quyền Writer và cài đặt liên lạc độc lập. Tên phải duy nhất; vai trò chỉ mô tả chuyên môn", "memberName": "Tên", "memberNamePlaceholder": "Tên định tuyến duy nhất (vd. SDE-1)", "memberNameDuplicate": "Một thành viên khác đã dùng name này. Name phải duy nhất trong tổ chức.", @@ -1238,9 +1238,9 @@ "descriptionPlaceholder": "Agent này làm gì? (tùy chọn)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "Số lần gọi Tool đồng thời mỗi tin nhắn. Mặc định: 10.", + "maxToolUseConcurrencyDesc": "Số lần gọi Tool đồng thời mỗi tin nhắn. Mặc định: 10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "Chạy trong Git Worktree tạm thời (truy cập file và Shell riêng biệt).", + "subAgentWorktreeIsolationDesc": "Chạy trong Git Worktree tạm thời (truy cập file và Shell riêng biệt)", "addSubAgent": "Thêm Sub-Agent...", "noSubAgents": "Chưa cấu hình sub-agent." }, @@ -1276,30 +1276,30 @@ "applicableAgentsDesc": "Agent nào áp dụng quy tắc này (để trống = tất cả)", "selectAgents": "Chọn Agent…", "ruleSource": "Nguồn", - "ruleSourceDesc": "Chọn User cho mọi repo hoặc Repo cho hướng dẫn riêng của một repo.", + "ruleSourceDesc": "Chọn User cho mọi repo hoặc Repo cho hướng dẫn riêng của một repo", "ruleSourceUser": "User", - "ruleSourceUserDesc": "Tùy chọn người dùng khả dụng trên mọi repo.", + "ruleSourceUserDesc": "Tùy chọn người dùng khả dụng trên mọi repo", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "Hướng dẫn được lưu cho một repo đã chọn.", + "ruleSourceRepoDesc": "Hướng dẫn được lưu cho một repo đã chọn", "ruleRepo": "Repo", "ruleRepoDesc": "Repo duy nhất mà hướng dẫn này áp dụng", "selectRepo": "Chọn repo…", "ruleSourcePersonal": "Cá nhân", - "ruleSourcePersonalDesc": "Lưu tại ~/.orgii/personal/rules/. Chỉ session OS Agent / channel.", + "ruleSourcePersonalDesc": "Lưu tại ~/.orgii/personal/rules/. Chỉ session OS Agent / channel", "findSkills": { "title": "Tìm kiếm Skills", "placeholder": "Tìm kiếm Skills...", "installs": "Installs", "emptyTitle": "Tìm kiếm Skills", - "emptySubtitle": "Nhập ít nhất 2 ký tự, rồi nhấn Enter để tìm Skills.", + "emptySubtitle": "Nhập ít nhất 2 ký tự, rồi nhấn Enter để tìm Skills", "noResults": "Không tìm thấy Skills", - "noResultsDesc": "Thử một cụm từ tìm kiếm khác." + "noResultsDesc": "Thử một cụm từ tìm kiếm khác" }, "importAgentTitle": "Nhập Agents từ apps khác", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "Chọn một thành viên hoặc Nhóm Agent", - "emptySelectionSubtitle": "Chọn một Agent hoặc Nhóm Agent từ thanh bên để xem và cấu hình.", + "emptySelectionSubtitle": "Chọn một Agent hoặc Nhóm Agent từ thanh bên để xem và cấu hình", "applicableWorkspace": "Workspace áp dụng", "tableTabs": { "agents": "Agents", @@ -1332,18 +1332,18 @@ "cliManagedConfig": { "title": "Chuyển đổi cấu hình CLI", "modeLabel": "Chế độ", - "modeDesc": "Mặc định khôi phục cấu hình riêng của CLI. ORG2 quản lý sẽ ghi một cấu hình proxy đã được sao lưu.", + "modeDesc": "Mặc định khôi phục cấu hình riêng của CLI. ORG2 quản lý sẽ ghi một cấu hình proxy đã được sao lưu", "modeDefault": "Mặc định", "modeOrgii": "ORG2 quản lý", "conflict": "Thay đổi bên ngoài", "conflictTitle": "Xung đột", - "conflictDesc": "Cấu hình CLI đang hoạt động đã thay đổi sau khi ORG2 ghi nó.", + "conflictDesc": "Cấu hình CLI đang hoạt động đã thay đổi sau khi ORG2 ghi nó", "proxyStatus": "Proxy", "proxyDefault": "Chế độ mặc định", "proxyReady": "Proxy đã sẵn sàng", "proxyNotReady": "Proxy chưa sẵn sàng", "keyLabel": "Khóa", - "keyDesc": "Chỉ hiển thị các API key tương thích với CLI này và proxy được quản lý.", + "keyDesc": "Chỉ hiển thị các API key tương thích với CLI này và proxy được quản lý", "selectKey": "Chọn khóa", "modelLabel": "Mô hình", "selectModel": "Chọn mô hình", @@ -1356,7 +1356,7 @@ "forceRestore": "Buộc khôi phục", "applySuccess": "Đã áp dụng cấu hình do ORG2 quản lý", "restoreSuccess": "Đã khôi phục cấu hình mặc định", - "proxyLifecycleDesc": "Hãy giữ ORG2 chạy khi dùng chế độ này. Đóng cửa sổ vẫn giữ proxy trong khay hệ thống; thoát ORG2 sẽ khôi phục an toàn về Mặc định trừ khi cấu hình đã bị thay đổi từ bên ngoài." + "proxyLifecycleDesc": "Hãy giữ ORG2 chạy khi dùng chế độ này. Đóng cửa sổ vẫn giữ proxy trong khay hệ thống; thoát ORG2 sẽ khôi phục an toàn về Mặc định trừ khi cấu hình đã bị thay đổi từ bên ngoài" } }, "databases": { @@ -1546,7 +1546,7 @@ "elapsed": "Tổng thời gian: {{value}}s" }, "title": "Housekeeper thường trú", - "description": "MiniCPM cục bộ xử lý việc trau chuốt prompt, giải thích ngắn các bước và điều khiển UI nhẹ. Tác vụ lập trình và thiết lập ADE phức tạp vẫn dùng mô hình agent chính.", + "description": "MiniCPM cục bộ xử lý việc trau chuốt prompt, giải thích ngắn các bước và điều khiển UI nhẹ. Tác vụ lập trình và thiết lập ADE phức tạp vẫn dùng mô hình agent chính", "autoAccount": "Tự động chọn tài khoản MiniCPM vLLM", "tiles": { "model": "Mô hình", @@ -1556,37 +1556,37 @@ "settings": { "enabled": { "title": "Bật housekeeper", - "description": "Khi tắt, việc trau chuốt prompt, giải thích bước và điều khiển UI nhẹ sẽ không dùng MiniCPM." + "description": "Khi tắt, việc trau chuốt prompt, giải thích bước và điều khiển UI nhẹ sẽ không dùng MiniCPM" }, "account": { "title": "Tài khoản vLLM MiniCPM", - "description": "Dùng lại tài khoản vllm_api hiện có trong KeyVault; không tạo kho thông tin xác thực riêng." + "description": "Dùng lại tài khoản vllm_api hiện có trong KeyVault; không tạo kho thông tin xác thực riêng" }, "model": { "title": "ID mô hình", - "description": "Docker vLLM MiniCPM5-1B mặc định là openbmb/MiniCPM5-1B." + "description": "Docker vLLM MiniCPM5-1B mặc định là openbmb/MiniCPM5-1B" }, "context": { "title": "Ngân sách ngữ cảnh an toàn", - "description": "Dùng ngân sách thận trọng 10000 token trên GPU 4GB thay vì tin vào giới hạn lý thuyết 32k." + "description": "Dùng ngân sách thận trọng 10000 token trên GPU 4GB thay vì tin vào giới hạn lý thuyết 32k" } }, "features": { "promptPolish": { "title": "Trau chuốt prompt", - "description": "Trau chuốt đầu vào theo cách thủ công trước khi gửi tới mô hình lập trình mạnh hơn." + "description": "Trau chuốt đầu vào theo cách thủ công trước khi gửi tới mô hình lập trình mạnh hơn" }, "stepExplain": { "title": "Giải thích bước của Agent", - "description": "Tạo một hoặc hai lời giải thích ngắn bằng tiếng Trung cho các bước phát lại phiên." + "description": "Tạo một hoặc hai lời giải thích ngắn bằng tiếng Trung cho các bước phát lại phiên" }, "uiControl": { "title": "Điều khiển ADE/UI nhẹ", - "description": "MiniCPM chỉ được phép phân loại yêu cầu vào một danh sách trắng thao tác cục bộ nghiêm ngặt." + "description": "MiniCPM chỉ được phép phân loại yêu cầu vào một danh sách trắng thao tác cục bộ nghiêm ngặt" }, "contextCompact": { "title": "Tự động bảo trì ngữ cảnh", - "description": "Cho phép MiniCPM duy trì một bản tóm tắt cuốn chiếu riêng biệt của ngữ cảnh cũ khi các phiên đã bật đang rảnh." + "description": "Cho phép MiniCPM duy trì một bản tóm tắt cuốn chiếu riêng biệt của ngữ cảnh cũ khi các phiên đã bật đang rảnh" } } }, @@ -1663,7 +1663,7 @@ "shareToOrg": "Chia sẻ với tổ chức", "share": "Chia sẻ", "sharedToOrg": "Đã chia sẻ Skill với tổ chức", - "shareToOrgHint": "Thành viên của tổ chức nhận được ảnh chụp hiện tại của skill này; hãy chia sẻ lại sau khi chỉnh sửa để phát hành bản cập nhật.", + "shareToOrgHint": "Thành viên của tổ chức nhận được ảnh chụp hiện tại của skill này; hãy chia sẻ lại sau khi chỉnh sửa để phát hành bản cập nhật", "shareOrgPlaceholder": "Tổ chức" } } diff --git a/src/i18n/locales/vi/navigation.json b/src/i18n/locales/vi/navigation.json index dbefc827de..4fc7611f46 100644 --- a/src/i18n/locales/vi/navigation.json +++ b/src/i18n/locales/vi/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "Mô hình {{model}} của chủ sở hữu không khả dụng với khóa của bạn — bản fork này sẽ dùng {{fallback}} thay thế.", "forkModelUnavailable": "Mô hình {{model}} của chủ sở hữu không khả dụng với khóa của bạn — hãy chọn một mô hình trước khi chạy bản fork này.", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "Hủy", "deleteRoleOk": "Xóa", "deleteRoleTitle": "Xóa vai trò?", - "followUpSuggestionsDesc": "Gợi ý các bước tiếp theo có thể sau khi một lượt Work Item hoàn tất. Việc này dùng thêm một yêu cầu mô hình.", + "followUpSuggestionsDesc": "Gợi ý các bước tiếp theo có thể sau khi một lượt Work Item hoàn tất. Việc này dùng thêm một yêu cầu mô hình", "followUpSuggestionsLabel": "Gợi ý tiếp theo của Agent", - "goalMaxTurnsDesc": "Tiếp tục làm việc theo yêu cầu gần nhất của tôi thêm tối đa N lượt sau khi agent thường sẽ dừng (0 = tắt).", + "goalMaxTurnsDesc": "Tiếp tục làm việc theo yêu cầu gần nhất của tôi thêm tối đa N lượt sau khi agent thường sẽ dừng (0 = tắt)", "goalMaxTurnsLabel": "Ngân sách tiếp tục mục tiêu", "guidanceLabel": "Hướng dẫn cho Agent", "guidancePlaceholder": "Agent nên điều chỉnh hành vi thế nào khi vai trò này đang hoạt động?", - "modeSwitchAutoPlanDesc": "Tự động chuyển các đề xuất chế độ Plan đang chờ khi hết thời gian xác nhận.", + "modeSwitchAutoPlanDesc": "Tự động chuyển các đề xuất chế độ Plan đang chờ khi hết thời gian xác nhận", "modeSwitchAutoPlanLabel": "Tự động chuyển chế độ Plan", "newRoleDefaultLabel": "Vai trò tùy chỉnh", - "pageDescription": "Xác định vai trò bạn đang đảm nhận lúc này. Agent đọc hướng dẫn của vai trò đang hoạt động và điều chỉnh hành vi cho phù hợp — ví dụ, hỏi ít câu làm rõ hơn khi bạn đang tập trung, hoặc gộp các bản tóm tắt khi bạn đi vắng.", + "pageDescription": "Xác định vai trò bạn đang đảm nhận lúc này. Agent đọc hướng dẫn của vai trò đang hoạt động và điều chỉnh hành vi cho phù hợp — ví dụ, hỏi ít câu làm rõ hơn khi bạn đang tập trung, hoặc gộp các bản tóm tắt khi bạn đi vắng", "pageTitle": "Vai trò của tôi", - "planAutoApproveDesc": "Tự động phê duyệt kế hoạch đang chờ sau N giây (0 = chờ tôi).", + "planAutoApproveDesc": "Tự động phê duyệt kế hoạch đang chờ sau N giây (0 = chờ tôi)", "planAutoApproveLabel": "Tự động phê duyệt kế hoạch", - "questionAutoSkipDesc": "Tự động bỏ qua câu hỏi đang chờ của agent sau N giây (0 = chờ tôi).", + "questionAutoSkipDesc": "Tự động bỏ qua câu hỏi đang chờ của agent sau N giây (0 = chờ tôi)", "questionAutoSkipLabel": "Tự động bỏ qua câu hỏi", "roleNameLabel": "Tên", "roleNamePlaceholder": "Tên vai trò", "stanceAutonomous": "Tự chủ — không bao giờ chờ tôi", "stanceDeferAndBatch": "Hoãn & gộp — làm trước, hỏi sau", - "stanceDesc": "Cách agent xử lý các quyết định chặn khi vai trò này đang hoạt động.", + "stanceDesc": "Cách agent xử lý các quyết định chặn khi vai trò này đang hoạt động", "stanceInteractive": "Tương tác — cứ thoải mái hỏi tôi", "stanceLabel": "Tư thế hành vi" }, diff --git a/src/i18n/locales/vi/onboarding.json b/src/i18n/locales/vi/onboarding.json index 6f0ab95a1b..3b79926fb8 100644 --- a/src/i18n/locales/vi/onboarding.json +++ b/src/i18n/locales/vi/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "Tham quan bố cục chung", - "description": "Tìm hiểu bảng trò chuyện, Runtime, bộ chuyển chế độ và thanh dock.", + "description": "Tìm hiểu bảng trò chuyện, Runtime, bộ chuyển chế độ và thanh dock", "duration": "1 phút", "steps": { "chat-panel": { "title": "Bảng trò chuyện", - "body": "Đây là nơi người dùng trò chuyện với tổng đài viên, xem xét hoạt động và gửi hướng dẫn tiếp theo." + "body": "Đây là nơi người dùng trò chuyện với tổng đài viên, xem xét hoạt động và gửi hướng dẫn tiếp theo" }, "runtime": { "title": "Thời gian chạy", - "body": "Xem mức sử dụng và trạng thái chạy của bạn tại đây. Trong không gian làm việc, bạn cũng có thể kiểm tra trạng thái đồng bộ của thành viên và mở chi tiết sử dụng Codex, Claude và Cursor." + "body": "Xem mức sử dụng và trạng thái chạy của bạn tại đây. Trong không gian làm việc, bạn cũng có thể kiểm tra trạng thái đồng bộ của thành viên và mở chi tiết sử dụng Codex, Claude và Cursor" }, "station-mode-pill": { "title": "Chuyển trạm chế độ", - "body": "Sử dụng viên thuốc này để chuyển đổi chế độ trạm. Máy tính để bàn có nghĩa là Trạm của tôi, không gian làm việc của bạn. Infinity có nghĩa là Trạm đại lý, chế độ xem hoạt động của đại lý." + "body": "Sử dụng viên thuốc này để chuyển đổi chế độ trạm. Máy tính để bàn có nghĩa là Trạm của tôi, không gian làm việc của bạn. Infinity có nghĩa là Trạm đại lý, chế độ xem hoạt động của đại lý" }, "dock": { "title": "Đế trạm đại lý", - "body": "Đế cắm chuyển đổi các ứng dụng bên trong trạm. Chuyến tham quan tạm thời vô hiệu hóa tính năng tự động ẩn để các điều khiển này vẫn hiển thị." + "body": "Đế cắm chuyển đổi các ứng dụng bên trong trạm. Chuyến tham quan tạm thời vô hiệu hóa tính năng tự động ẩn để các điều khiển này vẫn hiển thị" } } }, "codeEditor": { "title": "Chuyến tham quan Trình chỉnh sửa mã", - "description": "Tìm hiểu các tab, không gian trình soạn thảo, quản lý mã nguồn và lịch sử Git.", + "description": "Tìm hiểu các tab, không gian trình soạn thảo, quản lý mã nguồn và lịch sử Git", "duration": "2 phút", "steps": { "tabs": { "title": "tab Trình chỉnh sửa mã", - "body": "Các tab thu thập các tệp, khác biệt, thiết bị đầu cuối, chế độ xem kiểm soát nguồn và trang tổng quan bạn mở khi làm việc trong repo." + "body": "Các tab thu thập các tệp, khác biệt, thiết bị đầu cuối, chế độ xem kiểm soát nguồn và trang tổng quan bạn mở khi làm việc trong repo" }, "editor-surface": { "title": "Không gian làm việc của Trình chỉnh sửa", - "body": "Đây là bề mặt chính của Trình soạn thảo Mã. Mở tệp, kiểm tra các khác biệt, chạy thiết bị đầu cuối và xem xét các thay đổi đã tạo tại đây." + "body": "Đây là bề mặt chính của Trình soạn thảo Mã. Mở tệp, kiểm tra các khác biệt, chạy thiết bị đầu cuối và xem xét các thay đổi đã tạo tại đây" }, "create-tabs": { "title": "Tạo tab mới", - "body": "Sử dụng menu dấu cộng trong Tất cả các tab để tạo thiết bị đầu cuối, tab trình duyệt, tệp, trang tổng quan và tiện ích kho lưu trữ." + "body": "Sử dụng menu dấu cộng trong Tất cả các tab để tạo thiết bị đầu cuối, tab trình duyệt, tệp, trang tổng quan và tiện ích kho lưu trữ" }, "source-control": { "title": "Thay đổi Git", - "body": "Kiểm soát nguồn mở để xem xét các tệp đã thay đổi, giai đoạn hoặc giai đoạn công việc, cam kết, kéo, đẩy, tìm nạp và đồng bộ hóa với từ xa." + "body": "Kiểm soát nguồn mở để xem xét các tệp đã thay đổi, giai đoạn hoặc giai đoạn công việc, cam kết, kéo, đẩy, tìm nạp và đồng bộ hóa với từ xa" }, "git-history": { "title": "Lịch sử Git", - "body": "Lịch sử Git chuyển Kiểm soát nguồn sang chế độ lịch sử cam kết để bạn có thể kiểm tra các cam kết trước đó và các thay đổi liên quan." + "body": "Lịch sử Git chuyển Kiểm soát nguồn sang chế độ lịch sử cam kết để bạn có thể kiểm tra các cam kết trước đó và các thay đổi liên quan" } } } @@ -68,6 +68,6 @@ "getStarted": "Bắt đầu", "newFeatures": "Tính năng mới", "branchesTitle": "Nhánh kho mã", - "branchesDescription": "Chuyển nhánh kho mã trực tiếp từ Spotlight." + "branchesDescription": "Chuyển nhánh kho mã trực tiếp từ Spotlight" } } diff --git a/src/i18n/locales/vi/projects.json b/src/i18n/locales/vi/projects.json index 04ba025634..92dbbbdce2 100644 --- a/src/i18n/locales/vi/projects.json +++ b/src/i18n/locales/vi/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "Đang tải kết nối GitHub...", "noConnectionTitle": "Không tìm thấy kết nối GitHub", - "noConnectionDescription": "Trước tiên hãy thêm kết nối GitHub trong Integrations, sau đó quay lại đây để nhập GitHub Issues.", + "noConnectionDescription": "Trước tiên hãy thêm kết nối GitHub trong Integrations, sau đó quay lại đây để nhập GitHub Issues", "linkedRepoHint": "Project này cũng sẽ được liên kết với Workspace repo hiện tại: {{repoName}}", "errors": { "invalidRepo": "Dùng owner/repo hoặc URL kho GitHub." @@ -80,7 +80,7 @@ "importLinearOrgs": "Nhập không gian làm việc Linear", "gitFolderPath": "Đường dẫn thư mục Git (tùy chọn)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "Liên kết không gian làm việc này với một cây làm việc Git hiện có để đồng bộ thư mục.", + "gitFolderPathHint": "Liên kết không gian làm việc này với một cây làm việc Git hiện có để đồng bộ thư mục", "gitFolderBadge": "Git", "gitFolderSynced": "Đã đồng bộ với thư mục Git", "pendingSync": "Đang chờ đồng bộ", @@ -123,7 +123,7 @@ "addTeams": "Thêm nhóm", "addLabels": "Thêm nhãn", "addRepos": "Liên kết kho lưu trữ", - "noReposHint": "Không có kho lưu trữ khả dụng. Hãy thêm kho lưu trữ vào workspace trước.", + "noReposHint": "Không có kho lưu trữ khả dụng. Hãy thêm kho lưu trữ vào workspace trước", "addDate": "Thêm ngày", "clearDate": "Xóa ngày", "noStatus": "Không có trạng thái", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "Không có thay đổi tệp", - "fileDiffCleanHint": "Không phát hiện thay đổi tệp nào.", + "fileDiffCleanHint": "Không phát hiện thay đổi tệp nào", "costSummary": "Tổng chi phí", "totalCost": "Tổng", "tokens": "Token", @@ -413,7 +413,7 @@ "viewWorkItems": "Xem Work Items", "fromRoutine": "From routine: {{name}}", "batchField": { - "hint": "Áp dụng cho {{count}} mục đã chọn." + "hint": "Áp dụng cho {{count}} mục đã chọn" }, "batchStatus": { "title": "Đặt trạng thái" @@ -457,7 +457,7 @@ "save": "Lưu chế độ xem hiện tại", "saveTitle": "Lưu chế độ xem", "namePlaceholder": "Tên chế độ xem", - "saveHint": "Ghi lại các bộ lọc hiện tại; bố cục được dùng cho lần mở đầu tiên.", + "saveHint": "Ghi lại các bộ lọc hiện tại; bố cục được dùng cho lần mở đầu tiên", "delete": "Xóa chế độ xem" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "Đặt thuộc tính", - "hint": "Áp dụng một giá trị thuộc tính cho {{count}} mục đã chọn. Để trống giá trị để xóa.", + "hint": "Áp dụng một giá trị thuộc tính cho {{count}} mục đã chọn. Để trống giá trị để xóa", "propertyPlaceholder": "Thuộc tính", "valuePlaceholder": "Giá trị", "applied": "Đã cập nhật {{count}} mục" }, "revisionConflict": { "title": "Giải quyết xung đột chỉnh sửa", - "description": "{{field}} đã thay đổi sau bản sửa {{expected}}. Hãy so sánh chỉnh sửa của bạn với bản sửa {{actual}}, rồi chọn phiên bản muốn giữ.", + "description": "{{field}} đã thay đổi sau bản sửa {{expected}}. Hãy so sánh chỉnh sửa của bạn với bản sửa {{actual}}, rồi chọn phiên bản muốn giữ", "mine": "Phiên bản của tôi", "latest": "Phiên bản mới nhất", "useLatest": "Dùng bản mới nhất", @@ -573,7 +573,7 @@ "sidebarSync": "Đồng bộ", "sync": { "title": "Đồng bộ bên ngoài", - "description": "Phản chiếu các mục công việc của Project này tới một hệ thống bên ngoài như Linear hoặc GitHub.", + "description": "Phản chiếu các mục công việc của Project này tới một hệ thống bên ngoài như Linear hoặc GitHub", "adapterPicker": { "title": "Bộ chuyển đổi", "notAttached": "Chưa kết nối", @@ -582,7 +582,7 @@ "changeWarning": "Hãy ngắt kết nối bộ chuyển đổi hiện tại trước khi kết nối bộ chuyển đổi mới.", "detachProjectMenuLabel": "Hủy liên kết GitHub", "detachProjectTitle": "Hủy liên kết GitHub khỏi {{project}}?", - "detachProjectDescription": "Đồng bộ GitHub Issues sẽ dừng. Dự án cục bộ và các mục công việc đã nhập vẫn ở lại trong ORG2.", + "detachProjectDescription": "Đồng bộ GitHub Issues sẽ dừng. Dự án cục bộ và các mục công việc đã nhập vẫn ở lại trong ORG2", "detachProjectAction": "Hủy liên kết GitHub khỏi {{project}}", "detachProjectSuccess": "Đã hủy liên kết GitHub khỏi {{project}}" }, @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "Đang tải trạng thái webhook…", - "notInstalledDescription": "Cài đặt một secret webhook để nhà cung cấp đẩy thay đổi trực tiếp thay vì chờ lượt poll tiếp theo.", + "notInstalledDescription": "Cài đặt một secret webhook để nhà cung cấp đẩy thay đổi trực tiếp thay vì chờ lượt poll tiếp theo", "install": "Cài đặt webhook", - "installedDescription": "Dán URL vào cấu hình webhook của nhà cung cấp và dùng secret bên dưới để ký các lần phát.", + "installedDescription": "Dán URL vào cấu hình webhook của nhà cung cấp và dùng secret bên dưới để ký các lần phát", "indicatorFresh": "Có phân phối gần đây", "indicatorStale": "Không có phân phối gần đây", "lastDeliveryNever": "Chưa có phân phối", @@ -627,7 +627,7 @@ "copyUrl": "Sao chép URL", "rotate": "Xoay secret", "secretTitle": "Sao chép secret này ngay — sẽ không hiển thị lại", - "secretDescription": "Dán secret ký này vào cấu hình webhook của nhà cung cấp. Chúng tôi không lưu giá trị plaintext sau khi bạn đóng bảng này.", + "secretDescription": "Dán secret ký này vào cấu hình webhook của nhà cung cấp. Chúng tôi không lưu giá trị plaintext sau khi bạn đóng bảng này", "copySecret": "Sao chép secret", "dismissSecret": "Đã lưu", "secretCopied": "Đã sao chép secret vào clipboard", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "Trạng thái", "statusesBuiltin": "Trạng thái tích hợp", - "statusesBuiltinDescription": "Các nhóm quy trình tiêu chuẩn. Luôn khả dụng.", + "statusesBuiltinDescription": "Các nhóm quy trình tiêu chuẩn. Luôn khả dụng", "statusesCustom": "Trạng thái tùy chỉnh", - "statusesCustomDescription": "Tên gọi khác đặt trên một nhóm tích hợp. Bộ lọc, số đếm và bảng coi chúng như nhóm gốc.", + "statusesCustomDescription": "Tên gọi khác đặt trên một nhóm tích hợp. Bộ lọc, số đếm và bảng coi chúng như nhóm gốc", "statusNamePlaceholder": "Tên trạng thái", "noCustomStatuses": "Chưa có trạng thái tùy chỉnh.", "statusArchive": "Lưu trữ trạng thái", @@ -793,11 +793,11 @@ "unknownState": "Unknown state", "emptyConnections": { "title": "No Linear connections", - "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear." + "description": "Create a Linear connection in Integrations, then return here to browse Projects directly from Linear" }, "emptySelection": { "title": "Select a Linear Project", - "description": "Choose a Project from the left to view live Linear Issues and edit Project details." + "description": "Choose a Project from the left to view live Linear Issues and edit Project details" }, "forms": { "createProjectTitle": "Create Linear Project", @@ -850,8 +850,8 @@ "syncComplete": "Git folder sync complete", "syncFailed": "Git folder sync failed: {{message}}", "noResultTitle": "No Git sync result", - "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts.", + "noResultSubtitle": "Run Git folder sync from the status bar to review conflicts", "noConflictsTitle": "No conflicts", - "noConflictsSubtitle": "This workspace has no pending Git folder conflicts." + "noConflictsSubtitle": "This workspace has no pending Git folder conflicts" } } diff --git a/src/i18n/locales/vi/sessions.json b/src/i18n/locales/vi/sessions.json index fc8ffbe741..edccfd2d4c 100644 --- a/src/i18n/locales/vi/sessions.json +++ b/src/i18n/locales/vi/sessions.json @@ -896,10 +896,10 @@ "exportJson": "Xuất JSON", "importAction": "Nhập Session", "exportDescription": "Xuất Session đang hoạt động thành ảnh chụp nhanh JSON di động", - "importDescription": "Nhập ảnh chụp nhanh Session JSON vào thanh bên.", + "importDescription": "Nhập ảnh chụp nhanh Session JSON vào thanh bên", "jsonSnapshotNote": "Sessions đã nhập là ảnh chụp nhanh chỉ đọc và giữ nguyên lịch sử sự kiện gốc", "chooseJson": "Chọn tệp JSON", - "chooseJsonHint": "Chọn tệp xuất .orgii-session.json.", + "chooseJsonHint": "Chọn tệp xuất .orgii-session.json", "loadingPreview": "Đang đếm sự kiện Session…", "noActiveSession": "Chưa chọn Session đang hoạt động.", "importedName": "Session đã nhập: {{name}}", @@ -1908,7 +1908,7 @@ "start": "Bắt đầu", "missingGit": { "title": "Thiếu Git", - "body": "Git chưa được cài đặt hoặc không tìm thấy. Hãy yêu cầu ADE Manager hoặc SDE Agent cài đặt Git cho máy này, rồi khởi động lại ORG2." + "body": "Git chưa được cài đặt hoặc không tìm thấy. Hãy yêu cầu ADE Manager hoặc SDE Agent cài đặt Git cho máy này, rồi khởi động lại ORG2" }, "model": "Mô hình", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "Đã lưu trữ nhưng không thể giải phóng {{count}} môi trường chạy. Việc xóa vẫn bị chặn.", "archiveTeardownQuiesced": "Đã lưu trữ và dừng hoàn toàn. Giờ có thể xóa vĩnh viễn.", "dangerZone": "Vùng nguy hiểm", - "deleteDescription": "Xóa vĩnh viễn nhóm này cùng mọi phiên và lịch sử.", + "deleteDescription": "Xóa vĩnh viễn nhóm này cùng mọi phiên và lịch sử", "deleteTeam": "Xóa nhóm", "deleteTitle": "Xóa vĩnh viễn nhóm này?", "deleteWarning": "Thao tác này xóa vĩnh viễn mọi phiên và lịch sử của nhóm. Không thể hoàn tác.", diff --git a/src/i18n/locales/vi/settings.json b/src/i18n/locales/vi/settings.json index 9310f7bd7a..bb4e78cbc0 100644 --- a/src/i18n/locales/vi/settings.json +++ b/src/i18n/locales/vi/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "Ẩn ORG2 khi điều khiển màn hình", - "hideBeforeActionHelper": "Ẩn cửa sổ chính ORG2 trong khi Peekaboo thao tác, đồng thời hiển thị thanh Wingman và chú thích nổi để Agent không cần tự quản lý tiêu điểm.", + "hideBeforeActionHelper": "Ẩn cửa sổ chính ORG2 trong khi Peekaboo thao tác, đồng thời hiển thị thanh Wingman và chú thích nổi để Agent không cần tự quản lý tiêu điểm", "antiDetection": "Tăng cường chống phát hiện tự động hóa HID", - "antiDetectionHelper": "Khiến Peekaboo gửi các sự kiện CGEvent (HID) thực cho thao tác nhấp chuột và gõ phím thay vì thao tác Trợ năng thuần túy, để các ứng dụng có phát hiện tự động hóa (ví dụ: WeChat) ít có khả năng chặn điều khiển màn hình hơn.", + "antiDetectionHelper": "Khiến Peekaboo gửi các sự kiện CGEvent (HID) thực cho thao tác nhấp chuột và gõ phím thay vì thao tác Trợ năng thuần túy, để các ứng dụng có phát hiện tự động hóa (ví dụ: WeChat) ít có khả năng chặn điều khiển màn hình hơn", "humanInputProfile": "Nhịp gõ phím giống con người", - "humanInputProfileHelper": "Áp dụng hồ sơ thời gian giống con người cho các phím được tổng hợp. Tắt để gõ ở tốc độ tối đa.", + "humanInputProfileHelper": "Áp dụng hồ sơ thời gian giống con người cho các phím được tổng hợp. Tắt để gõ ở tốc độ tối đa", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "Thiếu: {{bins}}", "skillMissingEnv": "Thiếu biến môi trường: {{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Chiến lược pull", "pullStrategyDesc": "Cách git pull tích hợp thay đổi từ remote khi đồng bộ", - "pullStrategyHint": "Rebase (mặc định): Replays commit của bạn lên remote. Tạo linear history.\n\nMerge: Tạo merge commit khi branches đã diverged. Giữ nguyên history đầy đủ.\n\nFast-forward only: Chỉ cho phép pull khi không cần merge. Từ chối nếu branches đã diverged.", + "pullStrategyHint": "Rebase (mặc định): Replays commit của bạn lên remote. Tạo linear history.\n\nMerge: Tạo merge commit khi branches đã diverged. Giữ nguyên history đầy đủ.\n\nFast-forward only: Chỉ cho phép pull khi không cần merge. Từ chối nếu branches đã diverged", "strategyMerge": "Merge", "strategyRebase": "Rebase (mặc định)", "strategyFfOnly": "Chỉ Fast-forward (nghiêm ngặt)", @@ -602,7 +602,7 @@ "checkFailed": "Không thể kiểm tra bản cập nhật", "checking": "Đang kiểm tra bản cập nhật…", "officialInstalled": "Đã cài ứng dụng chính thức", - "officialInstalledDesc": "Đã cài {{version}} tại {{path}}. Bản dựng cục bộ này vẫn chạy và không thay đổi.", + "officialInstalledDesc": "Đã cài {{version}} tại {{path}}. Bản dựng cục bộ này vẫn chạy và không thay đổi", "downloadFailed": "Không thể tải bản cập nhật", "retryNow": "Thử lại ngay", "downloadTimeout": "Tải xuống quá thời gian chờ. Kiểm tra mạng hoặc proxy rồi thử lại.", @@ -762,7 +762,7 @@ "tableVersion": "Phiên bản", "tableStatus": "Trạng thái", "installSection": "Cài đặt", - "installHintNote": "Lệnh cài đặt được đề xuất cho nền tảng của bạn. Hầu hết các phụ thuộc hệ thống cần quyền quản trị, nên chúng tôi không tự động chạy — hãy sao chép và dán vào terminal." + "installHintNote": "Lệnh cài đặt được đề xuất cho nền tảng của bạn. Hầu hết các phụ thuộc hệ thống cần quyền quản trị, nên chúng tôi không tự động chạy — hãy sao chép và dán vào terminal" }, "agentSessions": { "chatFontSize": "Cỡ chữ chat", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "Bật Tiến hóa cho {{agentName}}", "noAgentsTitle": "Không có Agent khả dụng", - "noAgentsSubtitle": "Tạo hoặc nhập Agent để cấu hình Tiến hóa." + "noAgentsSubtitle": "Tạo hoặc nhập Agent để cấu hình Tiến hóa" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/zh-Hant/common.json b/src/i18n/locales/zh-Hant/common.json index ba061a93dd..d10ecc7d02 100644 --- a/src/i18n/locales/zh-Hant/common.json +++ b/src/i18n/locales/zh-Hant/common.json @@ -1093,7 +1093,7 @@ "createTokenButton": "建立 Token", "openGitSettingsButton": "開啟設定", "configureInSettings": "在設定中配置 Git", - "configureInSettingsDesc": "在 設定 → 連接 中加入 GitHub App 存取權限、儲存 token 或掃描本機憑證,然後重試此 Git 操作。" + "configureInSettingsDesc": "在 設定 → 連接 中加入 GitHub App 存取權限、儲存 token 或掃描本機憑證,然後重試此 Git 操作" }, "actions": { "publish": "Publish", @@ -1332,7 +1332,7 @@ "cannotParseRepoName": "無法從 origin 遠端倉庫解析倉庫名稱", "authRequired": { "title": "連接 GitHub", - "description": "前往「設定 → 連接」以連接你的 GitHub 帳號。" + "description": "前往「設定 → 連接」以連接你的 GitHub 帳號" }, "navigationTrail": "Pull request 導覽", "failedToLoad": "載入 pull request 失敗", @@ -1502,10 +1502,10 @@ "newIssueBodyPlaceholder": "描述此 issue(選填)…", "authRequired": { "title": "連接 GitHub", - "description": "前往「設定 → 連接」以連接你的 GitHub 帳號。" + "description": "前往「設定 → 連接」以連接你的 GitHub 帳號" }, "reAuthRequired": "需要 GitHub 授權", - "reAuthDescription": "你的 GitHub token 已過期。請前往「設定 → 連接」重新連接。", + "reAuthDescription": "你的 GitHub token 已過期。請前往「設定 → 連接」重新連接", "goToSettings": "前往設定", "loadingTimeline": "正在載入活動…", "label": "Issue", @@ -2151,7 +2151,7 @@ "globalToolbar": {}, "quitConfirmation": { "title": "結束 ORG2?", - "subtitle": "正在執行的工作階段會保留目前狀態。你可以稍後重新開啟 ORG2。", + "subtitle": "正在執行的工作階段會保留目前狀態。你可以稍後重新開啟 ORG2", "cancel": "取消", "confirm": "結束" }, @@ -2181,7 +2181,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "需要「完整磁碟取用權限」", - "explain": "Safari 將 Cookie 儲存在受 macOS 保護的資料夾中。請在系統設定的「完整磁碟存取權限」中允許 ORG2,然後重新檢查。", + "explain": "Safari 將 Cookie 儲存在受 macOS 保護的資料夾中。請在系統設定的「完整磁碟存取權限」中允許 ORG2,然後重新檢查", "openSettings": "打開系統設定", "checkAgain": "重新檢查" }, @@ -2206,7 +2206,7 @@ "doneSkipped_other": "已略過 {{count}} 個 Cookie", "empty": { "title": "找不到支援的瀏覽器", - "body": "請安裝帶有已儲存登入資訊的 Chrome、Edge、Brave 或 Firefox。" + "body": "請安裝帶有已儲存登入資訊的 Chrome、Edge、Brave 或 Firefox" }, "category": { "banking": "銀行", @@ -2215,7 +2215,7 @@ }, "errors": { "openSettingsFailed": "無法開啟系統設定", - "keychainDenied": "鑰匙圈存取遭拒。請重新選擇該設定檔並點選「允許」。", + "keychainDenied": "鑰匙圈存取遭拒。請重新選擇該設定檔並點選「允許」", "listFailed": "找不到可匯入的瀏覽器", "previewFailed": "無法從該瀏覽器讀取 Cookie", "importFailed": "無法匯入所選 Cookie" diff --git a/src/i18n/locales/zh-Hant/integrations.json b/src/i18n/locales/zh-Hant/integrations.json index cfbe95631d..12ea36085e 100644 --- a/src/i18n/locales/zh-Hant/integrations.json +++ b/src/i18n/locales/zh-Hant/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "移除本地", "unlist": "下架", "confirmRemoveTitle": "移除 \"{{name}}\"?", - "confirmRemoveMessage": "這將移除本地賬戶配置,此操作無法撤銷。", + "confirmRemoveMessage": "這將移除本地賬戶配置,此操作無法撤銷", "toasts": { "refreshed": "{{name}} 刷新成功", "refreshError": "{{name}} 重新整理失敗:{{error}}", @@ -68,10 +68,10 @@ "accountEmail": "帳戶電子郵件" }, "customModels": { - "manualSetupHint": "填寫端點接受的實際模型 ID 和可選顯示名稱。模型探索為選填;啟用模型不代表已驗證端點相容性。", + "manualSetupHint": "填寫端點接受的實際模型 ID 和可選顯示名稱。模型探索為選填;啟用模型不代表已驗證端點相容性", "modelNamePlaceholder": "輸入模型 id...", "displayNamePlaceholder": "可選標籤", - "emptyHint": "尚未添加自定義模型。", + "emptyHint": "尚未添加自定義模型", "addModel": "添加模型", "testRequiresEndpoint": "輸入端點和 API 金鑰以測試此模型", "invalidModelId": "模型 ID 必須為 1–256 位元組,且不能包含空白或控制字元。", @@ -145,7 +145,7 @@ "keysVerified": "密鑰已驗證", "failedMessage": "您的 API Key 和 Session Token 似乎不屬於同一 Cursor 賬戶。", "failedError": "錯誤:{{error}}", - "failedHint": "請使用來自同一 Cursor 賬戶的匹配密鑰創建新列表。", + "failedHint": "請使用來自同一 Cursor 賬戶的匹配密鑰創建新列表", "listingRejected": "列表被拒絕", "rejectedByAdmin": "此列表已被管理員拒絕。" }, @@ -269,7 +269,7 @@ "opensEmbeddedBrowser": "使用內建瀏覽器連接你的 Cursor 帳號。", "loggedIn": "已登錄", "loginStep": "登錄", - "signInToCursorHint": "登入你的 Cursor 帳號。登入完成後此視窗會自動關閉。", + "signInToCursorHint": "登入你的 Cursor 帳號。登入完成後此視窗會自動關閉", "copilotCreatePat": "創建 GitHub Personal Access Token", "copilotCreatePatDesc": "打開內置瀏覽器創建 GitHub PAT", "copilotTokenValidated": "Token 已驗證", @@ -303,7 +303,7 @@ "cursorLoginBrowserTitle": "Cursor 登錄", "modelCount": "{{count}} 個模型", "cursorLoginReadyTitle": "Cursor 帳號已連接", - "cursorLoginReadyDesc": "請在下方產生並貼上 Cursor API Key。沒有這個 API Key,Cursor agent 無法使用。", + "cursorLoginReadyDesc": "請在下方產生並貼上 Cursor API Key。沒有這個 API Key,Cursor agent 無法使用", "cursorApiKeyBrowserHint": "登入後,ORG2 會開啟 Cursor dashboard。請在那裡產生 User API Key,然後貼到下方", "cursorApiKeyRecommendedTitle": "建議提供 Cursor API Key", "cursorApiKeyRecommendedDesc": "如果你只想把 Cursor 用於 ORG2 的 Rust agents,可以不提供 Cursor API Key;只需透過內建瀏覽器登入,或提供 session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway 負責路由所有渠道的入站消息,請選擇用於語義路由的 API 密鑰和模型。", + "description": "Gateway 負責路由所有渠道的入站消息,請選擇用於語義路由的 API 密鑰和模型", "statusReady": "已配置", "statusUnconfigured": "未配置", "account": "API 密鑰賬戶", @@ -581,7 +581,7 @@ "model": "模型", "modelPlaceholder": "選擇模型", "groupPerUser": "按用戶隔離羣聊會話", - "groupPerUserDesc": "羣聊中每位參與者都有獨立的會話上下文。" + "groupPerUserDesc": "羣聊中每位參與者都有獨立的會話上下文" }, "emailProtocol": "通訊協定", "matrixDeviceNamePlaceholder": "ORG2 機器人" @@ -769,13 +769,13 @@ "oauthDeviceDesc": "開啟驗證 URL 並輸入此代碼以授權 GitHub。", "scanCredHelper": "Git 憑證助手({{name}})", "scanEmpty": "未偵測到任何憑證", - "scanEmptyDesc": "找不到 gh CLI token、憑證助手或 SSH 金鑰。請在上方選擇其他方式。", + "scanEmptyDesc": "找不到 gh CLI token、憑證助手或 SSH 金鑰。請在上方選擇其他方式", "scanGhCli": "GitHub CLI(gh)", "scanResults": "偵測到的憑證", - "scanResultsDesc": "選擇一項匯入。儲存前我們會向 GitHub 驗證 token。", + "scanResultsDesc": "選擇一項匯入。儲存前我們會向 GitHub 驗證 token", "scanSshKey": "SSH 金鑰 — {{name}}", "scanning": "正在掃描…", - "scanningDesc": "正在本機尋找 gh CLI token、憑證助手和 SSH 金鑰。", + "scanningDesc": "正在本機尋找 gh CLI token、憑證助手和 SSH 金鑰", "sshKeyPath": "SSH 金鑰路徑", "sshKeyPathDesc": "私鑰的絕對路徑(例如 ~/.ssh/id_ed25519)。對應的公鑰必須已在 GitHub 上註冊。", "scanSelectRequired": "請選擇一個偵測到的憑證進行匯入。", @@ -809,9 +809,9 @@ "agentBrowserRestartPromptMessage": "變更 Browser CLI 提供者後,需要重新啟動 ORG2,Agent 才能看到所選工具。現在重新啟動嗎?", "sidecarDownloadsSectionTitle": "Sidecar 下載", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "將適用於目前平台的 Agent Browser 二進位檔下載到 ~/.orgii/bin。ORG2 啟動時絕不會自動下載。", + "sidecarAgentBrowserDesc": "將適用於目前平台的 Agent Browser 二進位檔下載到 ~/.orgii/bin。ORG2 啟動時絕不會自動下載", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "將 macOS Peekaboo 桌面自動化二進位檔下載到 ~/.orgii/bin。不支援的平台會保持停用。", + "sidecarPeekabooDesc": "將 macOS Peekaboo 桌面自動化二進位檔下載到 ~/.orgii/bin。不支援的平台會保持停用", "sidecarUnsupported": "不支援", "sidecarInstalled": "已安裝", "sidecarNotInstalled": "未安裝", @@ -874,7 +874,7 @@ "connectMethodDesc": "選擇連接 GitHub 賬戶的方式", "githubApp": "GitHub App", "detectFromSystem": "從系統檢測", - "detectFromSystemDesc": "使用 gh CLI、SSH 密鑰或 Git 憑證助手。", + "detectFromSystemDesc": "使用 gh CLI、SSH 密鑰或 Git 憑證助手", "credentialsDetected": "已檢測到憑證", "detectedVia": "通過 {{source}} 檢測", "sshKeyLabel": "SSH 密鑰", @@ -894,7 +894,7 @@ "noCredentialsFound": "未找到 GitHub 憑證", "noCredentialsHint": "安裝 GitHub CLI (gh) 或設置 SSH 密鑰以使用本地檢測", "manuallyAddToken": "手動新增 Token", - "manualTokenDesc": "貼上用於 HTTPS Git 操作的 GitHub PAT。", + "manualTokenDesc": "貼上用於 HTTPS Git 操作的 GitHub PAT", "autoDetect": "自動偵測", "autoDetectTokenSaved": "GitHub token 已儲存", "autoDetectSshSwitched": "Remote 已切換為 SSH", @@ -922,7 +922,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "為 ORG2 建立的 Git Commit 添加 {{name}} <{{email}}>", "noTokenYet": "需要 Token?", - "createTokenDesc": "打開 GitHub,建立具有 repo 權限的 PAT。", + "createTokenDesc": "打開 GitHub,建立具有 repo 權限的 PAT", "accountConnected": "GitHub 賬戶已連接", "disconnectMsg": "確定要斷開連接嗎?這將移除此賬戶對所有倉庫的訪問權限。", "disconnectTitle": "斷開 GitHub 賬戶", @@ -931,7 +931,7 @@ "connectRepoDesc": "連接 GitHub 賬戶以訪問倉庫", "github": "GitHub", "signInWithGithub": "使用 GitHub 登入", - "signInWithGithubDesc": "透過 GitHub 裝置流程授權 ORG2,無需自建伺服器。", + "signInWithGithubDesc": "透過 GitHub 裝置流程授權 ORG2,無需自建伺服器", "oauthWaiting": "等待授權", "oauthDeviceCodeDesc": "開啟下方 URL 並輸入此代碼", "oauthOpenGithub": "開啟 GitHub", @@ -985,7 +985,7 @@ "filePathPlaceholder": "如 scripts/validate.py", "removeFile": "移除文件", "editorNoDraftTitle": "當前沒有進行中的 Skill 草稿", - "editorNoDraftDesc": "請先在 Skills 頁點擊「創建」,或選擇一個 Skill 進行編輯。", + "editorNoDraftDesc": "請先在 Skills 頁點擊「創建」,或選擇一個 Skill 進行編輯", "scopeWorkspace": "Repo-specific", "deleteConfirmTitle": "刪除 Skill「{{name}}」?", "deleteConfirmMessage": "這將移除該 Skill 及其所有檔案,操作不可撤销。" @@ -994,7 +994,7 @@ "tab": "MCP", "searchPlaceholder": "搜索 MCP 服務器...", "noServers": "未配置 MCP 服務器", - "noServersDesc": "添加 MCP 服務器以使用外部工具擴展 Agent 功能。", + "noServersDesc": "添加 MCP 服務器以使用外部工具擴展 Agent 功能", "addServer": "添加 MCP 服務器", "editServer": "編輯 MCP 服務器", "serverName": "服務器名稱", @@ -1117,12 +1117,12 @@ }, "sessionProvenance": { "masterToggle": "溯源 Hooks", - "masterToggleDesc": "關閉後將解除安裝所有受管理的 hook,並停止擷取任何訊號;各平台的選擇會保留,重新開啟時恢復。", + "masterToggleDesc": "關閉後將解除安裝所有受管理的 hook,並停止擷取任何訊號;各平台的選擇會保留,重新開啟時恢復", "liveStatusToggle": "即時 Agent 狀態", - "liveStatusToggleDesc": "顯示執行中 CLI Agent 的工作或等待狀態;關閉後仍會擷取溯源記錄。", + "liveStatusToggleDesc": "顯示執行中 CLI Agent 的工作或等待狀態;關閉後仍會擷取溯源記錄", "title": "Session 來源追蹤", "capture": "擷取檔案互動", - "description": "以中繼資料記錄檔案讀取與寫入。不會儲存提示詞、工具輸出或檔案內容。", + "description": "以中繼資料記錄檔案讀取與寫入。不會儲存提示詞、工具輸出或檔案內容", "installDrift": "已儲存的偏好設定與已安裝的 hook 不一致。切換擷取功能即可修復受管理的 hook。設定:{{path}}", "copyPath": "複製", "col": { @@ -1174,19 +1174,19 @@ "cliManagedConfig": { "title": "CLI 設定切換", "modeLabel": "模式", - "modeDesc": "預設設定會還原 CLI 原有設定;ORG2 託管會在備份後寫入本機代理設定。", + "modeDesc": "預設設定會還原 CLI 原有設定;ORG2 託管會在備份後寫入本機代理設定", "modeDefault": "預設設定", "modeOrgii": "ORG2 託管", "conflict": "外部修改", "conflictTitle": "設定衝突", - "conflictDesc": "ORG2 寫入後,目前 CLI 設定又被其他程式修改。", + "conflictDesc": "ORG2 寫入後,目前 CLI 設定又被其他程式修改", "proxyStatus": "本機代理", "proxyDefault": "預設設定模式", "proxyReady": "代理已就緒", "proxyNotReady": "代理未就緒", - "proxyLifecycleDesc": "使用此模式時請保持 ORG2 運行。關閉視窗後代理會留在系統列;完全退出時會安全還原預設設定,外部修改不會被覆蓋。", + "proxyLifecycleDesc": "使用此模式時請保持 ORG2 運行。關閉視窗後代理會留在系統列;完全退出時會安全還原預設設定,外部修改不會被覆蓋", "keyLabel": "金鑰", - "keyDesc": "僅顯示與目前 CLI 和託管代理相容的 API Key。", + "keyDesc": "僅顯示與目前 CLI 和託管代理相容的 API Key", "selectKey": "選擇金鑰", "modelLabel": "模型", "selectModel": "選擇模型", @@ -1214,7 +1214,7 @@ "addMember": "添加成員", "noMembers": "添加成員來構建組織層級", "membersLabel": "團隊成員", - "membersDesc": "每一行都是一位成員;Writer 權限與通訊設定彼此獨立。名稱必須唯一,角色只用於描述專長。", + "membersDesc": "每一行都是一位成員;Writer 權限與通訊設定彼此獨立。名稱必須唯一,角色只用於描述專長", "memberName": "名稱", "memberNamePlaceholder": "唯一的路由名(如 SDE-1)", "memberNameDuplicate": "已有其他成員使用此 name。組織內 name 必須唯一。", @@ -1267,9 +1267,9 @@ "descriptionPlaceholder": "這個 Agent 的職責是什麼?(可選)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "每條 assistant message 的併發 Tool 調用數上限。默認:10。", + "maxToolUseConcurrencyDesc": "每條 assistant message 的併發 Tool 調用數上限。默認:10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "在臨時 Git Worktree 中運行(文件和 Shell 訪問相互隔離)。", + "subAgentWorktreeIsolationDesc": "在臨時 Git Worktree 中運行(文件和 Shell 訪問相互隔離)", "addSubAgent": "添加 Sub-Agent...", "noSubAgents": "未配置 Sub-Agent。" }, @@ -1305,30 +1305,30 @@ "applicableAgentsDesc": "此規則適用於哪些 Agent(留空 = 全部)", "selectAgents": "選擇 Agent…", "ruleSource": "來源", - "ruleSourceDesc": "選擇 User 表示所有倉庫的使用者偏好,選擇 Repo 表示某個倉庫專屬指南。", + "ruleSourceDesc": "選擇 User 表示所有倉庫的使用者偏好,選擇 Repo 表示某個倉庫專屬指南", "ruleSourceUser": "User", - "ruleSourceUserDesc": "適用於所有倉庫的使用者偏好。", + "ruleSourceUserDesc": "適用於所有倉庫的使用者偏好", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "存儲到單個倉庫的專屬指南。", + "ruleSourceRepoDesc": "存儲到單個倉庫的專屬指南", "ruleRepo": "倉庫", "ruleRepoDesc": "此指南適用的唯一倉庫", "selectRepo": "選擇倉庫…", "ruleSourcePersonal": "個人", - "ruleSourcePersonalDesc": "存儲在 ~/.orgii/personal/rules/。僅 OS Agent / channel session 加載。", + "ruleSourcePersonalDesc": "存儲在 ~/.orgii/personal/rules/。僅 OS Agent / channel session 加載", "findSkills": { "title": "搜尋 Skills", "placeholder": "搜尋 Skills...", "installs": "Installs", "emptyTitle": "搜尋 Skills", - "emptySubtitle": "輸入至少 2 個字元,然後按 Enter 尋找 Skills。", + "emptySubtitle": "輸入至少 2 個字元,然後按 Enter 尋找 Skills", "noResults": "找不到 Skills", - "noResultsDesc": "請嘗試其他搜尋詞。" + "noResultsDesc": "請嘗試其他搜尋詞" }, "importAgentTitle": "從其他應用導入 Agents", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "選擇成員或 Agent 團隊", - "emptySelectionSubtitle": "從側邊欄選擇一個 Agent 或 Agent 團隊以查看和配置。", + "emptySelectionSubtitle": "從側邊欄選擇一個 Agent 或 Agent 團隊以查看和配置", "applicableWorkspace": "適用 Workspace", "tableTabs": { "agents": "Agents", @@ -1519,7 +1519,7 @@ }, "housekeeper": { "title": "常駐管家", - "description": "本機 MiniCPM 只處理輸入潤飾、短步驟解釋和輕量 UI 控制;編碼任務和複雜 ADE 配置仍然交給主 Agent 模型。", + "description": "本機 MiniCPM 只處理輸入潤飾、短步驟解釋和輕量 UI 控制;編碼任務和複雜 ADE 配置仍然交給主 Agent 模型", "addModel": "添加模型", "autoAccount": "自動選擇 MiniCPM vLLM 帳號", "tiles": { @@ -1530,37 +1530,37 @@ "settings": { "enabled": { "title": "啟用常駐管家", - "description": "關閉後,輸入潤飾、步驟解釋和輕量 UI 控制都不會使用 MiniCPM。" + "description": "關閉後,輸入潤飾、步驟解釋和輕量 UI 控制都不會使用 MiniCPM" }, "account": { "title": "vLLM MiniCPM 帳號", - "description": "複用 KeyVault 裡的 vllm_api 帳號,不單獨建立 credential store。" + "description": "複用 KeyVault 裡的 vllm_api 帳號,不單獨建立 credential store" }, "model": { "title": "模型 ID", - "description": "Docker vLLM MiniCPM5-1B 預設使用 openbmb/MiniCPM5-1B。" + "description": "Docker vLLM MiniCPM5-1B 預設使用 openbmb/MiniCPM5-1B" }, "context": { "title": "上下文安全預算", - "description": "4GB GPU 按 10000 token 保守預算處理,不相信理論 32k 上限。" + "description": "4GB GPU 按 10000 token 保守預算處理,不相信理論 32k 上限" } }, "features": { "promptPolish": { "title": "輸入內容潤飾", - "description": "手動點擊輸入框潤飾按鈕時,先用 MiniCPM 整理要發給強代碼模型的指令。" + "description": "手動點擊輸入框潤飾按鈕時,先用 MiniCPM 整理要發給強代碼模型的指令" }, "stepExplain": { "title": "Agent 步驟解釋", - "description": "在 session replay 裡,為當前步驟生成 1-2 句簡短中文解釋。" + "description": "在 session replay 裡,為當前步驟生成 1-2 句簡短中文解釋" }, "uiControl": { "title": "輕量 ADE/UI 控制", - "description": "MiniCPM 只能把請求識別成嚴格白名單裡的本地 action。" + "description": "MiniCPM 只能把請求識別成嚴格白名單裡的本地 action" }, "contextCompact": { "title": "自動壓縮上下文", - "description": "會話閒置時由 MiniCPM 分段維護舊上下文,獨立於原有手動與自動壓縮。" + "description": "會話閒置時由 MiniCPM 分段維護舊上下文,獨立於原有手動與自動壓縮" } }, "health": { @@ -1663,7 +1663,7 @@ "shareToOrg": "共享至組織", "share": "共享", "sharedToOrg": "技能已共享至組織", - "shareToOrgHint": "組織成員會收到此技能目前的快照;編輯後再次共享即可發布更新。", + "shareToOrgHint": "組織成員會收到此技能目前的快照;編輯後再次共享即可發布更新", "shareOrgPlaceholder": "組織" } } diff --git a/src/i18n/locales/zh-Hant/navigation.json b/src/i18n/locales/zh-Hant/navigation.json index f672871360..fdeb9dc1f0 100644 --- a/src/i18n/locales/zh-Hant/navigation.json +++ b/src/i18n/locales/zh-Hant/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "擁有者的模型 {{model}} 在你的金鑰下不可用 — 此分叉將改用 {{fallback}}。", "forkModelUnavailable": "擁有者的模型 {{model}} 在你的金鑰下不可用 — 執行此分叉前請先選擇模型。", "forkPickCheckoutTitle": "Select your local checkout of {{repo}}", - "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable.", + "forkPickCheckoutHint": "The fork of \"{{session}}\" continues work on {{repo}}. Pick the workspace repo it should run in — only checkouts of that repo are selectable", "forkPickCheckoutClone": "Don't see it? Clone the repo and add it as a workspace first, then fork again.", "forkCheckoutMismatch": "The selected folder is not a checkout of {{repo}} — fork of \"{{session}}\" cancelled. Clone the repo first, then fork again.", "forkSetupTitle": "Continue on this machine", - "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials.", + "forkSetupHint": "Create a writable continuation of \"{{session}}\" using your local checkout and credentials", "forkSetupWorkspace": "Workspace", "forkSetupNoWorkspace": "Continue without a workspace", "forkSetupAccount": "Account", @@ -834,26 +834,26 @@ "deleteRoleCancel": "取消", "deleteRoleOk": "刪除", "deleteRoleTitle": "刪除角色?", - "followUpSuggestionsDesc": "工作項目的一輪完成後,建議可能的後續步驟。這會額外發出一次模型請求。", + "followUpSuggestionsDesc": "工作項目的一輪完成後,建議可能的後續步驟。這會額外發出一次模型請求", "followUpSuggestionsLabel": "Agent 後續建議", - "goalMaxTurnsDesc": "在 Agent 通常會停下的時候,繼續朝我最近的請求最多再工作 N 輪(0 = 關閉)。", + "goalMaxTurnsDesc": "在 Agent 通常會停下的時候,繼續朝我最近的請求最多再工作 N 輪(0 = 關閉)", "goalMaxTurnsLabel": "目標續跑額度", "guidanceLabel": "Agent 指引", "guidancePlaceholder": "此角色生效時,Agent 應如何調整行為?", - "modeSwitchAutoPlanDesc": "待確認的 Plan 模式建議在確認計時結束後自動切換。", + "modeSwitchAutoPlanDesc": "待確認的 Plan 模式建議在確認計時結束後自動切換", "modeSwitchAutoPlanLabel": "模式切換自動進入 Plan", "newRoleDefaultLabel": "自訂角色", - "pageDescription": "定義你目前扮演的角色。Agent 會讀取目前角色的指引並相應調整行為 — 例如在你專注工作時少問釐清問題,或在你離開時批次彙整摘要。", + "pageDescription": "定義你目前扮演的角色。Agent 會讀取目前角色的指引並相應調整行為 — 例如在你專注工作時少問釐清問題,或在你離開時批次彙整摘要", "pageTitle": "我的角色", - "planAutoApproveDesc": "N 秒後自動核准待確認的計畫(0 = 等我確認)。", + "planAutoApproveDesc": "N 秒後自動核准待確認的計畫(0 = 等我確認)", "planAutoApproveLabel": "計畫自動核准", - "questionAutoSkipDesc": "N 秒後自動跳過 Agent 的待答問題(0 = 等我回答)。", + "questionAutoSkipDesc": "N 秒後自動跳過 Agent 的待答問題(0 = 等我回答)", "questionAutoSkipLabel": "問題自動跳過", "roleNameLabel": "名稱", "roleNamePlaceholder": "角色名稱", "stanceAutonomous": "自主 — 從不等我", "stanceDeferAndBatch": "延後並批次 — 先做事,稍後再問", - "stanceDesc": "此角色生效時,Agent 如何處理需要阻塞等待的決策。", + "stanceDesc": "此角色生效時,Agent 如何處理需要阻塞等待的決策", "stanceInteractive": "互動 — 隨時問我", "stanceLabel": "行為姿態" }, diff --git a/src/i18n/locales/zh-Hant/onboarding.json b/src/i18n/locales/zh-Hant/onboarding.json index 0361accf38..43a37ab3ab 100644 --- a/src/i18n/locales/zh-Hant/onboarding.json +++ b/src/i18n/locales/zh-Hant/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "整體佈局教學", - "description": "了解聊天面板、執行階段、工作站模式切換器與 Dock。", + "description": "了解聊天面板、執行階段、工作站模式切換器與 Dock", "duration": "1 分鐘", "steps": { "chat-panel": { "title": "聊天面板", - "body": "在這裡與 Agent 對話、查看活動,並發送後續指示。" + "body": "在這裡與 Agent 對話、查看活動,並發送後續指示" }, "runtime": { "title": "執行階段", - "body": "在這裡查看個人用量與執行狀態;切換到工作空間後,還可以查看成員同步狀態,並進入成員詳情查看 Codex、Claude 和 Cursor 用量。" + "body": "在這裡查看個人用量與執行狀態;切換到工作空間後,還可以查看成員同步狀態,並進入成員詳情查看 Codex、Claude 和 Cursor 用量" }, "station-mode-pill": { "title": "切換工作站模式", - "body": "使用此按鈕切換工作站模式。桌面代表“我的工作站”,也就是你的 Workspace;無限代表“Agent 工作站”,用於查看 Agent 活動。" + "body": "使用此按鈕切換工作站模式。桌面代表“我的工作站”,也就是你的 Workspace;無限代表“Agent 工作站”,用於查看 Agent 活動" }, "dock": { "title": "Agent 工作站 Dock", - "body": "Dock 用於切換工作站內的應用。教學期間會暫時關閉自動隱藏,讓這些控制項保持可見。" + "body": "Dock 用於切換工作站內的應用。教學期間會暫時關閉自動隱藏,讓這些控制項保持可見" } } }, "codeEditor": { "title": "程式碼編輯器教學", - "description": "了解分頁、編輯器工作區、原始碼管理與 Git 歷史。", + "description": "了解分頁、編輯器工作區、原始碼管理與 Git 歷史", "duration": "2 分鐘", "steps": { "tabs": { "title": "程式碼編輯器標籤頁", - "body": "標籤頁集中承載你在倉庫工作時開啟的檔案、Diff、終端機、原始碼管理檢視和看板。" + "body": "標籤頁集中承載你在倉庫工作時開啟的檔案、Diff、終端機、原始碼管理檢視和看板" }, "editor-surface": { "title": "編輯器 Workspace", - "body": "這是程式碼編輯器的主要工作區。你可以在這裡開啟檔案、檢查 Diff、執行終端並審核產生的變更。" + "body": "這是程式碼編輯器的主要工作區。你可以在這裡開啟檔案、檢查 Diff、執行終端並審核產生的變更" }, "create-tabs": { "title": "建立新標籤頁", - "body": "使用「全部標籤頁」中的加號選單建立終端機、瀏覽器標籤頁、檔案、看板和倉庫工具。" + "body": "使用「全部標籤頁」中的加號選單建立終端機、瀏覽器標籤頁、檔案、看板和倉庫工具" }, "source-control": { "title": "Git 變更", - "body": "開啟原始碼管理以查看變更檔案、暫存或取消暫存、提交,以及執行拉取、推送、取得和遠端同步。" + "body": "開啟原始碼管理以查看變更檔案、暫存或取消暫存、提交,以及執行拉取、推送、取得和遠端同步" }, "git-history": { "title": "Git 歷史", - "body": "Git 歷史會把原始碼管理切換到提交歷史模式,供你檢查過去的提交及相關變更。" + "body": "Git 歷史會把原始碼管理切換到提交歷史模式,供你檢查過去的提交及相關變更" } } } @@ -68,6 +68,6 @@ "getStarted": "開始使用", "newFeatures": "新功能", "branchesTitle": "儲存庫分支", - "branchesDescription": "直接在 Spotlight 中切換儲存庫分支。" + "branchesDescription": "直接在 Spotlight 中切換儲存庫分支" } } diff --git a/src/i18n/locales/zh-Hant/projects.json b/src/i18n/locales/zh-Hant/projects.json index 6649dcac02..396f447a85 100644 --- a/src/i18n/locales/zh-Hant/projects.json +++ b/src/i18n/locales/zh-Hant/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "正在載入 GitHub 連線...", "noConnectionTitle": "找不到 GitHub 連線", - "noConnectionDescription": "請先在 Integrations 中新增 GitHub 連線,然後回到此處匯入 GitHub Issues。", + "noConnectionDescription": "請先在 Integrations 中新增 GitHub 連線,然後回到此處匯入 GitHub Issues", "linkedRepoHint": "此 Project 也會連結到目前 Workspace repo:{{repoName}}", "errors": { "invalidRepo": "請使用 owner/repo 或 GitHub repo URL。" @@ -80,7 +80,7 @@ "importLinearOrgs": "匯入 Linear 工作空間", "gitFolderPath": "Git 資料夾路徑(可選)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "將此工作空間綁定到既有 Git 工作區,用於資料夾同步。", + "gitFolderPathHint": "將此工作空間綁定到既有 Git 工作區,用於資料夾同步", "gitFolderBadge": "Git", "gitFolderSynced": "已與 Git 資料夾同步", "pendingSync": "等待同步", @@ -123,7 +123,7 @@ "addTeams": "添加團隊", "addLabels": "添加標籤", "addRepos": "關聯倉庫", - "noReposHint": "暫無可關聯倉庫,請先將倉庫添加到工作區。", + "noReposHint": "暫無可關聯倉庫,請先將倉庫添加到工作區", "addDate": "添加日期", "clearDate": "清除日期", "noStatus": "無狀態", @@ -403,7 +403,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "無文件變更", - "fileDiffCleanHint": "未檢測到文件變更。", + "fileDiffCleanHint": "未檢測到文件變更", "costSummary": "費用摘要", "totalCost": "總計", "tokens": "Token", @@ -428,7 +428,7 @@ "createError": "無法建立子任務,請重試。" }, "batchField": { - "hint": "套用到選取的 {{count}} 個事項。" + "hint": "套用到選取的 {{count}} 個事項" }, "batchStatus": { "title": "設定狀態" @@ -457,7 +457,7 @@ "save": "儲存目前檢視", "saveTitle": "儲存檢視", "namePlaceholder": "檢視名稱", - "saveHint": "儲存目前的篩選條件;版面配置只作為首次開啟的初始值。", + "saveHint": "儲存目前的篩選條件;版面配置只作為首次開啟的初始值", "delete": "刪除檢視" }, "table": { @@ -475,14 +475,14 @@ }, "batchProperty": { "title": "設定屬性", - "hint": "將一個屬性值套用到選取的 {{count}} 個工作項;留空表示清除該屬性。", + "hint": "將一個屬性值套用到選取的 {{count}} 個工作項;留空表示清除該屬性", "propertyPlaceholder": "屬性", "valuePlaceholder": "值", "applied": "已更新 {{count}} 個工作項" }, "revisionConflict": { "title": "處理編輯衝突", - "description": "{{field}} 在版本 {{expected}} 之後已被修改。請將你的編輯與版本 {{actual}} 比較,再選擇要保留哪一版。", + "description": "{{field}} 在版本 {{expected}} 之後已被修改。請將你的編輯與版本 {{actual}} 比較,再選擇要保留哪一版", "mine": "我的版本", "latest": "最新版本", "useLatest": "使用最新版本", @@ -573,7 +573,7 @@ "sidebarSync": "同步", "sync": { "title": "外部同步", - "description": "將此專案的工作項鏡像到外部系統,例如 Linear 或 GitHub。", + "description": "將此專案的工作項鏡像到外部系統,例如 Linear 或 GitHub", "adapterPicker": { "title": "適配器", "notAttached": "未綁定", @@ -581,7 +581,7 @@ "detach": "解綁", "detachProjectMenuLabel": "解除 GitHub 關聯", "detachProjectTitle": "解除 {{project}} 與 GitHub 的關聯?", - "detachProjectDescription": "GitHub Issues 同步將停止。本地專案和已匯入的工作項會保留在 ORG2 中。", + "detachProjectDescription": "GitHub Issues 同步將停止。本地專案和已匯入的工作項會保留在 ORG2 中", "detachProjectAction": "解除 {{project}} 與 GitHub 的關聯", "detachProjectSuccess": "已解除 {{project}} 與 GitHub 的關聯", "changeWarning": "在綁定新適配器前,請先解綁當前適配器。" @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "正在加載 Webhook 狀態…", - "notInstalledDescription": "安裝 Webhook 密鑰後,提供方可直接推送變更,無需等待下次輪詢。", + "notInstalledDescription": "安裝 Webhook 密鑰後,提供方可直接推送變更,無需等待下次輪詢", "install": "安裝 Webhook", - "installedDescription": "將下方 URL 粘貼到提供方的 Webhook 配置中,並使用密鑰對交付內容進行簽名。", + "installedDescription": "將下方 URL 粘貼到提供方的 Webhook 配置中,並使用密鑰對交付內容進行簽名", "indicatorFresh": "最近有交付", "indicatorStale": "無最近交付", "lastDeliveryNever": "尚無交付", @@ -627,7 +627,7 @@ "copyUrl": "複製 URL", "rotate": "輪換密鑰", "secretTitle": "立即複製此密鑰 — 僅顯示一次", - "secretDescription": "將該簽名密鑰粘貼到提供方的 Webhook 配置中。關閉此面板後我們不會保留明文值。", + "secretDescription": "將該簽名密鑰粘貼到提供方的 Webhook 配置中。關閉此面板後我們不會保留明文值", "copySecret": "複製密鑰", "dismissSecret": "我已保存", "secretCopied": "密鑰已複製到剪貼板", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "狀態", "statusesBuiltin": "內建狀態", - "statusesBuiltinDescription": "標準工作流程分類,始終可用。", + "statusesBuiltinDescription": "標準工作流程分類,始終可用", "statusesCustom": "自訂狀態", - "statusesCustomDescription": "對應到某個內建分類的別名;篩選、計數與看板會按其所屬分類處理。", + "statusesCustomDescription": "對應到某個內建分類的別名;篩選、計數與看板會按其所屬分類處理", "statusNamePlaceholder": "狀態名稱", "noCustomStatuses": "尚無自訂狀態。", "statusArchive": "封存狀態", @@ -793,11 +793,11 @@ "unknownState": "未知狀態", "emptyConnections": { "title": "沒有 Linear 連線", - "description": "在 Integrations 中創建 Linear 連線,然後返回這裡直接瀏覽 Linear 專案。" + "description": "在 Integrations 中創建 Linear 連線,然後返回這裡直接瀏覽 Linear 專案" }, "emptySelection": { "title": "選擇 Linear 專案", - "description": "從左側選擇一個專案,以查看即時 Linear Issues 並編輯專案詳情。" + "description": "從左側選擇一個專案,以查看即時 Linear Issues 並編輯專案詳情" }, "forms": { "createProjectTitle": "創建 Linear 專案", @@ -850,8 +850,8 @@ "syncComplete": "Git folder 同步完成", "syncFailed": "Git folder 同步失敗:{{message}}", "noResultTitle": "暫無 Git 同步結果", - "noResultSubtitle": "從狀態列執行 Git folder 同步後即可檢查衝突。", + "noResultSubtitle": "從狀態列執行 Git folder 同步後即可檢查衝突", "noConflictsTitle": "沒有衝突", - "noConflictsSubtitle": "這個工作空間目前沒有待處理的 Git folder 衝突。" + "noConflictsSubtitle": "這個工作空間目前沒有待處理的 Git folder 衝突" } } diff --git a/src/i18n/locales/zh-Hant/sessions.json b/src/i18n/locales/zh-Hant/sessions.json index e28a27d6f2..7f52044f91 100644 --- a/src/i18n/locales/zh-Hant/sessions.json +++ b/src/i18n/locales/zh-Hant/sessions.json @@ -896,10 +896,10 @@ "exportJson": "匯出 JSON", "importAction": "匯入 Session", "exportDescription": "將目前 Session 匯出為可攜式 JSON 快照", - "importDescription": "將 Session JSON 快照匯入側邊欄。", + "importDescription": "將 Session JSON 快照匯入側邊欄", "jsonSnapshotNote": "匯入的 Session 是唯讀快照,並保留原始事件歷史", "chooseJson": "選擇 JSON 檔案", - "chooseJsonHint": "選擇一個 .orgii-session.json 匯出檔案。", + "chooseJsonHint": "選擇一個 .orgii-session.json 匯出檔案", "loadingPreview": "正在統計 Session 事件…", "noActiveSession": "未選取作用中 Session。", "importedName": "匯入 Session:{{name}}", @@ -1908,7 +1908,7 @@ "start": "開始", "missingGit": { "title": "缺少 Git", - "body": "未安裝 Git 或找不到 Git。請讓 ADE Manager 或 SDE Agent 為這台機器安裝 Git,然後重新啟動 ORG2。" + "body": "未安裝 Git 或找不到 Git。請讓 ADE Manager 或 SDE Agent 為這台機器安裝 Git,然後重新啟動 ORG2" }, "model": "模型", "contextMenu": { @@ -2123,7 +2123,7 @@ "archiveTeardownRetained": "已封存,但有 {{count}} 個執行環境未能釋放,仍無法刪除。", "archiveTeardownQuiesced": "已封存並完全停止,現在可以永久刪除。", "dangerZone": "危險區域", - "deleteDescription": "永久刪除這個團隊及其所有工作階段與歷史記錄。", + "deleteDescription": "永久刪除這個團隊及其所有工作階段與歷史記錄", "deleteTeam": "刪除團隊", "deleteTitle": "永久刪除這個團隊?", "deleteWarning": "這會永久刪除團隊的所有工作階段與歷史記錄,且無法復原。", diff --git a/src/i18n/locales/zh-Hant/settings.json b/src/i18n/locales/zh-Hant/settings.json index 4c5d099f1e..f4e04ce286 100644 --- a/src/i18n/locales/zh-Hant/settings.json +++ b/src/i18n/locales/zh-Hant/settings.json @@ -385,13 +385,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "桌面控制時隱藏 ORG2", - "hideBeforeActionHelper": "Peekaboo 操作期間隱藏 ORG2 主視窗,並顯示 Wingman 列和浮動提示,避免 Agent 手動管理焦點。", + "hideBeforeActionHelper": "Peekaboo 操作期間隱藏 ORG2 主視窗,並顯示 Wingman 列和浮動提示,避免 Agent 手動管理焦點", "antiDetection": "HID 反自動化強化", - "antiDetectionHelper": "讓 Peekaboo 透過真實的 CGEvent(HID)事件執行點擊與按鍵,而非純粹的輔助使用操作,從而降低具有反自動化偵測的應用程式(如微信)封鎖桌面控制的可能性。", + "antiDetectionHelper": "讓 Peekaboo 透過真實的 CGEvent(HID)事件執行點擊與按鍵,而非純粹的輔助使用操作,從而降低具有反自動化偵測的應用程式(如微信)封鎖桌面控制的可能性", "humanInputProfile": "擬人化輸入節奏", - "humanInputProfileHelper": "為合成按鍵套用擬人化的時間節奏。關閉後將以最高速度輸入。", + "humanInputProfileHelper": "為合成按鍵套用擬人化的時間節奏。關閉後將以最高速度輸入", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "缺少命令:{{bins}}", "skillMissingEnv": "缺少環境變量:{{vars}}", @@ -553,7 +553,7 @@ "title": "Git", "pullStrategy": "Pull 策略", "pullStrategyDesc": "同步時 git pull 如何整合 remote 更改", - "pullStrategyHint": "Rebase(默認):將你的 commit replay 到 remote 之上,創建 linear history。\n\nMerge:branch 有 diverge 時創建 merge commit,保留完整 history。\n\nFast-forward only:僅在不需要 merge 時允許 pull,若 branch 已 diverge 則拒絕。", + "pullStrategyHint": "Rebase(默認):將你的 commit replay 到 remote 之上,創建 linear history。\n\nMerge:branch 有 diverge 時創建 merge commit,保留完整 history。\n\nFast-forward only:僅在不需要 merge 時允許 pull,若 branch 已 diverge 則拒絕", "strategyMerge": "Merge", "strategyRebase": "Rebase(默認)", "strategyFfOnly": "僅 Fast-forward(嚴格)", @@ -762,7 +762,7 @@ "tableVersion": "版本", "tableStatus": "狀態", "installSection": "安裝", - "installHintNote": "針對你當前平臺的建議安裝命令。大多數系統依賴需要管理員權限,所以我們不會自動執行——請複製到你的 terminal 中運行。" + "installHintNote": "針對你當前平臺的建議安裝命令。大多數系統依賴需要管理員權限,所以我們不會自動執行——請複製到你的 terminal 中運行" }, "agentSessions": { "chatFontSize": "聊天字體大小", @@ -824,7 +824,7 @@ "agentEvolution": { "enableForAgent": "為 {{agentName}} 啟用進化", "noAgentsTitle": "沒有可用 Agent", - "noAgentsSubtitle": "建立或匯入 Agent 以設定進化。" + "noAgentsSubtitle": "建立或匯入 Agent 以設定進化" }, "org": {}, "learningsBrowser": { diff --git a/src/i18n/locales/zh/common.json b/src/i18n/locales/zh/common.json index f37cbd846a..678ae25367 100644 --- a/src/i18n/locales/zh/common.json +++ b/src/i18n/locales/zh/common.json @@ -924,7 +924,7 @@ "createTokenButton": "创建 Token", "openGitSettingsButton": "打开设置", "configureInSettings": "在设置中配置 Git", - "configureInSettingsDesc": "在 设置 → 连接 中添加 GitHub App 访问权限、保存 token 或扫描本地凭据,然后重试此 Git 操作。" + "configureInSettingsDesc": "在 设置 → 连接 中添加 GitHub App 访问权限、保存 token 或扫描本地凭据,然后重试此 Git 操作" }, "actions": { "publish": "Publish", @@ -1163,7 +1163,7 @@ "cannotParseRepoName": "无法从 origin 远程仓库解析仓库名", "authRequired": { "title": "连接 GitHub", - "description": "前往 设置 → 连接 以连接你的 GitHub 账号。" + "description": "前往 设置 → 连接 以连接你的 GitHub 账号" }, "navigationTrail": "Pull request 导航", "failedToLoad": "加载 pull request 失败", @@ -1333,10 +1333,10 @@ "newIssueBodyPlaceholder": "描述该 issue(可选)…", "authRequired": { "title": "连接 GitHub", - "description": "前往 设置 → 连接 以连接你的 GitHub 账号。" + "description": "前往 设置 → 连接 以连接你的 GitHub 账号" }, "reAuthRequired": "需要 GitHub 授权", - "reAuthDescription": "你的 GitHub token 已过期。请前往 设置 → 连接 重新连接。", + "reAuthDescription": "你的 GitHub token 已过期。请前往 设置 → 连接 重新连接", "goToSettings": "前往设置", "loadingTimeline": "正在加载活动…", "label": "Issue", @@ -2180,7 +2180,7 @@ }, "quitConfirmation": { "title": "退出 ORG2?", - "subtitle": "正在运行的会话会保留当前状态。你可以稍后重新打开 ORG2。", + "subtitle": "正在运行的会话会保留当前状态。你可以稍后重新打开 ORG2", "cancel": "取消", "confirm": "退出" }, @@ -2192,7 +2192,7 @@ "browserCookieImport": { "safari": { "needsFullDiskAccess": "需要“完全磁盘访问”权限", - "explain": "Safari 将 Cookie 存储在受 macOS 保护的文件夹中。请在系统设置的“完全磁盘访问权限”中允许 ORG2,然后重新检查。", + "explain": "Safari 将 Cookie 存储在受 macOS 保护的文件夹中。请在系统设置的“完全磁盘访问权限”中允许 ORG2,然后重新检查", "openSettings": "打开系统设置", "checkAgain": "重新检查" }, @@ -2217,7 +2217,7 @@ "doneSkipped_other": "已跳过 {{count}} 个 Cookie", "empty": { "title": "未找到受支持的浏览器", - "body": "请安装带有已保存登录信息的 Chrome、Edge、Brave 或 Firefox。" + "body": "请安装带有已保存登录信息的 Chrome、Edge、Brave 或 Firefox" }, "category": { "banking": "银行", @@ -2226,7 +2226,7 @@ }, "errors": { "openSettingsFailed": "无法打开系统设置", - "keychainDenied": "钥匙串访问被拒绝。请重新选择该配置文件并点击“允许”。", + "keychainDenied": "钥匙串访问被拒绝。请重新选择该配置文件并点击“允许”", "listFailed": "找不到可导入的浏览器", "previewFailed": "无法从该浏览器读取 Cookie", "importFailed": "无法导入所选 Cookie" diff --git a/src/i18n/locales/zh/integrations.json b/src/i18n/locales/zh/integrations.json index a2edf85c86..7be83d5ab4 100644 --- a/src/i18n/locales/zh/integrations.json +++ b/src/i18n/locales/zh/integrations.json @@ -17,7 +17,7 @@ "removeLocal": "移除本地", "unlist": "下架", "confirmRemoveTitle": "移除 \"{{name}}\"?", - "confirmRemoveMessage": "这将移除本地账户配置,此操作无法撤销。", + "confirmRemoveMessage": "这将移除本地账户配置,此操作无法撤销", "confirmRemoveActiveSessions_other": "仍有 {{count}} 个活跃会话在使用此账号,移除后它们的下一轮将失败:", "toasts": { "refreshed": "{{name}} 刷新成功", @@ -69,10 +69,10 @@ "accountEmail": "账户邮箱" }, "customModels": { - "manualSetupHint": "填写端点接受的实际模型 ID 和可选显示名称。模型发现可选;启用模型不代表已验证端点兼容性。", + "manualSetupHint": "填写端点接受的实际模型 ID 和可选显示名称。模型发现可选;启用模型不代表已验证端点兼容性", "modelNamePlaceholder": "输入模型 id...", "displayNamePlaceholder": "可选标签", - "emptyHint": "尚未添加自定义模型。", + "emptyHint": "尚未添加自定义模型", "addModel": "添加模型", "testRequiresEndpoint": "输入端点和 API 密钥以测试此模型", "invalidModelId": "模型 ID 必须为 1–256 字节,且不能包含空白或控制字符。", @@ -146,7 +146,7 @@ "keysVerified": "密钥已验证", "failedMessage": "您的 API Key 和 Session Token 似乎不属于同一 Cursor 账户。", "failedError": "错误:{{error}}", - "failedHint": "请使用来自同一 Cursor 账户的匹配密钥创建新列表。", + "failedHint": "请使用来自同一 Cursor 账户的匹配密钥创建新列表", "listingRejected": "列表被拒绝", "rejectedByAdmin": "此列表已被管理员拒绝。" }, @@ -270,7 +270,7 @@ "opensEmbeddedBrowser": "使用内置浏览器连接你的 Cursor 账号。", "loggedIn": "已登录", "loginStep": "登录", - "signInToCursorHint": "登录你的 Cursor 账号。登录完成后此窗口会自动关闭。", + "signInToCursorHint": "登录你的 Cursor 账号。登录完成后此窗口会自动关闭", "copilotCreatePat": "创建 GitHub Personal Access Token", "copilotCreatePatDesc": "打开内置浏览器创建 GitHub PAT", "copilotTokenValidated": "Token 已验证", @@ -304,7 +304,7 @@ "cursorLoginBrowserTitle": "Cursor 登录", "modelCount": "{{count}} 个模型", "cursorLoginReadyTitle": "Cursor 账号已连接", - "cursorLoginReadyDesc": "请在下方生成并粘贴 Cursor API Key。没有这个 API Key,Cursor agent 无法使用。", + "cursorLoginReadyDesc": "请在下方生成并粘贴 Cursor API Key。没有这个 API Key,Cursor agent 无法使用", "cursorApiKeyBrowserHint": "登录后,ORG2 会打开 Cursor dashboard。请在那里生成 User API Key,然后粘贴到下方", "cursorApiKeyRecommendedTitle": "建议提供 Cursor API Key", "cursorApiKeyRecommendedDesc": "如果你只想把 Cursor 用于 ORG2 的 Rust agents,可以不提供 Cursor API Key;只需通过内置浏览器登录,或提供 session token", @@ -573,7 +573,7 @@ }, "gateway": { "title": "Gateway Agent", - "description": "Gateway 负责路由所有渠道的入站消息,请选择用于语义路由的 API 密钥和模型。", + "description": "Gateway 负责路由所有渠道的入站消息,请选择用于语义路由的 API 密钥和模型", "statusReady": "已配置", "statusUnconfigured": "未配置", "account": "API 密钥账户", @@ -581,7 +581,7 @@ "model": "模型", "modelPlaceholder": "选择模型", "groupPerUser": "按用户隔离群聊会话", - "groupPerUserDesc": "群聊中每位参与者都有独立的会话上下文。" + "groupPerUserDesc": "群聊中每位参与者都有独立的会话上下文" }, "emailProtocol": "协议", "matrixDeviceNamePlaceholder": "ORG2 机器人" @@ -781,13 +781,13 @@ "oauthDeviceDesc": "打开验证 URL 并输入此代码以授权 GitHub。", "scanCredHelper": "Git 凭据助手({{name}})", "scanEmpty": "未检测到任何凭据", - "scanEmptyDesc": "未找到 gh CLI token、凭据助手或 SSH 密钥。请在上方选择其他方式。", + "scanEmptyDesc": "未找到 gh CLI token、凭据助手或 SSH 密钥。请在上方选择其他方式", "scanGhCli": "GitHub CLI(gh)", "scanResults": "检测到的凭据", - "scanResultsDesc": "选择一项导入。保存前我们会向 GitHub 验证 token。", + "scanResultsDesc": "选择一项导入。保存前我们会向 GitHub 验证 token", "scanSshKey": "SSH 密钥 — {{name}}", "scanning": "正在扫描…", - "scanningDesc": "正在本机查找 gh CLI token、凭据助手和 SSH 密钥。", + "scanningDesc": "正在本机查找 gh CLI token、凭据助手和 SSH 密钥", "sshKeyPath": "SSH 密钥路径", "sshKeyPathDesc": "私钥的绝对路径(例如 ~/.ssh/id_ed25519)。对应的公钥必须已在 GitHub 上注册。", "scanSelectRequired": "请选择一个检测到的凭据进行导入。", @@ -821,9 +821,9 @@ "agentBrowserRestartPromptMessage": "更改 Browser CLI 提供方后,需要重启 ORG2,Agent 才能看到所选工具。现在重启吗?", "sidecarDownloadsSectionTitle": "Sidecar 下载", "sidecarAgentBrowserLabel": "Agent Browser CLI", - "sidecarAgentBrowserDesc": "将适用于当前平台的 Agent Browser 二进制文件下载到 ~/.orgii/bin。ORG2 启动时绝不会自动下载。", + "sidecarAgentBrowserDesc": "将适用于当前平台的 Agent Browser 二进制文件下载到 ~/.orgii/bin。ORG2 启动时绝不会自动下载", "sidecarPeekabooLabel": "Peekaboo CLI", - "sidecarPeekabooDesc": "将 macOS Peekaboo 桌面自动化二进制文件下载到 ~/.orgii/bin。不支持的平台会保持禁用。", + "sidecarPeekabooDesc": "将 macOS Peekaboo 桌面自动化二进制文件下载到 ~/.orgii/bin。不支持的平台会保持禁用", "sidecarUnsupported": "不支持", "sidecarInstalled": "已安装", "sidecarNotInstalled": "未安装", @@ -886,7 +886,7 @@ "connectMethodDesc": "选择连接 GitHub 账户的方式", "githubApp": "GitHub App", "detectFromSystem": "从系统检测", - "detectFromSystemDesc": "使用 gh CLI、SSH 密钥或 Git 凭证助手。", + "detectFromSystemDesc": "使用 gh CLI、SSH 密钥或 Git 凭证助手", "credentialsDetected": "已检测到凭证", "detectedVia": "通过 {{source}} 检测", "sshKeyLabel": "SSH 密钥", @@ -906,7 +906,7 @@ "noCredentialsFound": "未找到 GitHub 凭证", "noCredentialsHint": "安装 GitHub CLI (gh) 或设置 SSH 密钥以使用本地检测", "manuallyAddToken": "手动添加 Token", - "manualTokenDesc": "粘贴用于 HTTPS Git 操作的 GitHub PAT。", + "manualTokenDesc": "粘贴用于 HTTPS Git 操作的 GitHub PAT", "autoDetect": "自动检测", "autoDetectTokenSaved": "GitHub token 已保存", "autoDetectSshSwitched": "Remote 已切换为 SSH", @@ -925,7 +925,7 @@ "coauthor": "Co-authored-by", "coauthorDesc": "为 ORG2 创建的 Git Commit 添加 {{name}} <{{email}}>", "noTokenYet": "需要 Token?", - "createTokenDesc": "打开 GitHub,创建带 repo 权限的 PAT。", + "createTokenDesc": "打开 GitHub,创建带 repo 权限的 PAT", "accountConnected": "GitHub 账户已连接", "disconnectMsg": "确定要断开连接吗?这将移除此账户对所有仓库的访问权限。", "disconnectTitle": "断开 GitHub 账户", @@ -934,7 +934,7 @@ "connectRepoDesc": "连接 GitHub 账户以访问仓库", "github": "GitHub", "signInWithGithub": "使用 GitHub 登录", - "signInWithGithubDesc": "通过 GitHub 设备流授权 ORG2,无需自建服务器。", + "signInWithGithubDesc": "通过 GitHub 设备流授权 ORG2,无需自建服务器", "oauthWaiting": "等待授权", "oauthDeviceCodeDesc": "打开下方 URL 并输入此代码", "oauthOpenGithub": "打开 GitHub", @@ -997,7 +997,7 @@ "filePathPlaceholder": "如 scripts/validate.py", "removeFile": "移除文件", "editorNoDraftTitle": "当前没有进行中的 Skill 草稿", - "editorNoDraftDesc": "请先在 Skills 页点击「创建」,或选择一个 Skill 进行编辑。", + "editorNoDraftDesc": "请先在 Skills 页点击「创建」,或选择一个 Skill 进行编辑", "scopeWorkspace": "Repo-specific", "deleteConfirmTitle": "删除 Skill「{{name}}」?", "deleteConfirmMessage": "这将移除该 Skill 及其所有文件,操作不可撤销。" @@ -1006,7 +1006,7 @@ "tab": "MCP", "searchPlaceholder": "搜索 MCP 服务器...", "noServers": "未配置 MCP 服务器", - "noServersDesc": "添加 MCP 服务器以使用外部工具扩展 Agent 功能。", + "noServersDesc": "添加 MCP 服务器以使用外部工具扩展 Agent 功能", "addServer": "添加 MCP 服务器", "editServer": "编辑 MCP 服务器", "serverName": "服务器名称", @@ -1161,7 +1161,7 @@ } }, "membersLabel": "团队成员", - "membersDesc": "每一行都是一位 Member;Writer 权限与通信设置彼此独立。名称必须唯一,角色只用于描述专长。", + "membersDesc": "每一行都是一位 Member;Writer 权限与通信设置彼此独立。名称必须唯一,角色只用于描述专长", "memberName": "名称", "memberNamePlaceholder": "唯一的路由名(如 SDE-1)", "memberNameDuplicate": "已有其他成员使用此 name。组织内 name 必须唯一。", @@ -1198,9 +1198,9 @@ "descriptionPlaceholder": "这个 Agent 的职责是什么?(可选)", "subAgentsTab": "Subagents", "maxToolUseConcurrencyLabel": "Max tool-use concurrency", - "maxToolUseConcurrencyDesc": "每条 assistant message 的并发 Tool 调用数上限。默认:10。", + "maxToolUseConcurrencyDesc": "每条 assistant message 的并发 Tool 调用数上限。默认:10", "subAgentWorktreeIsolationLabel": "Worktree isolation", - "subAgentWorktreeIsolationDesc": "在临时 Git Worktree 中运行(文件和 Shell 访问相互隔离)。", + "subAgentWorktreeIsolationDesc": "在临时 Git Worktree 中运行(文件和 Shell 访问相互隔离)", "addSubAgent": "添加 Sub-Agent...", "noSubAgents": "未配置 Sub-Agent。" }, @@ -1236,30 +1236,30 @@ "applicableAgentsDesc": "此规则适用于哪些 Agent(留空 = 全部)", "selectAgents": "选择 Agent…", "ruleSource": "来源", - "ruleSourceDesc": "选择 User 表示所有仓库的用户偏好,选择 Repo 表示某个仓库专属指南。", + "ruleSourceDesc": "选择 User 表示所有仓库的用户偏好,选择 Repo 表示某个仓库专属指南", "ruleSourceUser": "User", - "ruleSourceUserDesc": "适用于所有仓库的用户偏好。", + "ruleSourceUserDesc": "适用于所有仓库的用户偏好", "ruleSourceRepo": "Repo", - "ruleSourceRepoDesc": "存储到单个仓库的专属指南。", + "ruleSourceRepoDesc": "存储到单个仓库的专属指南", "ruleRepo": "仓库", "ruleRepoDesc": "此指南适用的唯一仓库", "selectRepo": "选择仓库…", "ruleSourcePersonal": "个人", - "ruleSourcePersonalDesc": "存储在 ~/.orgii/personal/rules/。仅 OS Agent / channel session 加载。", + "ruleSourcePersonalDesc": "存储在 ~/.orgii/personal/rules/。仅 OS Agent / channel session 加载", "findSkills": { "title": "搜索 Skills", "placeholder": "搜索 Skills...", "installs": "Installs", "emptyTitle": "搜索 Skills", - "emptySubtitle": "输入至少 2 个字符,然后按 Enter 查找 Skills。", + "emptySubtitle": "输入至少 2 个字符,然后按 Enter 查找 Skills", "noResults": "未找到 Skills", - "noResultsDesc": "请尝试其他搜索词。" + "noResultsDesc": "请尝试其他搜索词" }, "importAgentTitle": "从其他应用导入 Agents", "importAgentColumn": "Agent", "importedItemAgents": "agents", "emptySelectionTitle": "选择成员或 Agent 团队", - "emptySelectionSubtitle": "从侧边栏选择一个 Agent 或 Agent 团队以查看和配置。", + "emptySelectionSubtitle": "从侧边栏选择一个 Agent 或 Agent 团队以查看和配置", "applicableWorkspace": "适用 Workspace", "tableTabs": { "agents": "Agents", @@ -1288,18 +1288,18 @@ "cliManagedConfig": { "title": "CLI 配置切换", "modeLabel": "模式", - "modeDesc": "默认配置会恢复 CLI 原有设置;ORG2 托管会在备份后写入本地代理配置。", + "modeDesc": "默认配置会恢复 CLI 原有设置;ORG2 托管会在备份后写入本地代理配置", "modeDefault": "默认配置", "modeOrgii": "ORG2 托管", "conflict": "外部修改", "conflictTitle": "配置冲突", - "conflictDesc": "ORG2 写入后,当前 CLI 配置又被其他程序修改。", + "conflictDesc": "ORG2 写入后,当前 CLI 配置又被其他程序修改", "proxyStatus": "本地代理", "proxyDefault": "默认配置模式", "proxyReady": "代理已就绪", "proxyNotReady": "代理未就绪", "keyLabel": "密钥", - "keyDesc": "仅显示与当前 CLI 和托管代理兼容的 API Key。", + "keyDesc": "仅显示与当前 CLI 和托管代理兼容的 API Key", "selectKey": "选择密钥", "modelLabel": "模型", "selectModel": "选择模型", @@ -1312,12 +1312,12 @@ "forceRestore": "强制恢复", "applySuccess": "已应用 ORG2 托管配置", "restoreSuccess": "已恢复 CLI 默认配置", - "proxyLifecycleDesc": "使用此模式时请保持 ORG2 运行。关闭窗口后代理会留在托盘;完全退出时会安全恢复默认配置,外部修改不会被覆盖。" + "proxyLifecycleDesc": "使用此模式时请保持 ORG2 运行。关闭窗口后代理会留在托盘;完全退出时会安全恢复默认配置,外部修改不会被覆盖" }, "sessionProvenance": { "title": "Session Provenance", "capture": "采集文件交互记录", - "description": "以 metadata 形式记录文件读写;不会存储提示词、工具输出或文件内容。", + "description": "以 metadata 形式记录文件读写;不会存储提示词、工具输出或文件内容", "installDrift": "保存的开关状态与实际安装的 hook 不一致。切换一次即可修复 ORG2 管理的 hook。配置:{{path}}", "copyPath": "复制", "col": { @@ -1361,7 +1361,7 @@ "masterToggle": "溯源 Hooks", "masterToggleDesc": "关闭后将卸载所有托管 hook,不再采集任何信号;各平台的选择会保留,重新开启时恢复", "liveStatusToggle": "实时 Agent 状态", - "liveStatusToggleDesc": "显示运行中 CLI Agent 的工作或等待状态;关闭后仍会采集溯源记录。", + "liveStatusToggleDesc": "显示运行中 CLI Agent 的工作或等待状态;关闭后仍会采集溯源记录", "codexApproval": { "title": "在 Codex 中验证 ORG2 hooks", "description": "正在等待 Codex 授权并执行当前的 ORG2 hooks。", @@ -1519,7 +1519,7 @@ }, "housekeeper": { "title": "常驻管家", - "description": "本地 MiniCPM 只处理输入润色、短步骤解释和轻量 UI 控制;编码任务和复杂 ADE 配置仍然交给主 Agent 模型。", + "description": "本地 MiniCPM 只处理输入润色、短步骤解释和轻量 UI 控制;编码任务和复杂 ADE 配置仍然交给主 Agent 模型", "addModel": "添加模型", "autoAccount": "自动选择 MiniCPM vLLM 账号", "tiles": { @@ -1530,37 +1530,37 @@ "settings": { "enabled": { "title": "启用常驻管家", - "description": "关闭后,输入润色、步骤解释和轻量 UI 控制都不会使用 MiniCPM。" + "description": "关闭后,输入润色、步骤解释和轻量 UI 控制都不会使用 MiniCPM" }, "account": { "title": "vLLM MiniCPM 账号", - "description": "复用 KeyVault 里的 vllm_api 账号,不单独创建 credential store。" + "description": "复用 KeyVault 里的 vllm_api 账号,不单独创建 credential store" }, "model": { "title": "模型 ID", - "description": "Docker vLLM MiniCPM5-1B 默认使用 openbmb/MiniCPM5-1B。" + "description": "Docker vLLM MiniCPM5-1B 默认使用 openbmb/MiniCPM5-1B" }, "context": { "title": "上下文安全预算", - "description": "4GB GPU 按 10000 token 保守预算处理,不相信理论 32k 上限。" + "description": "4GB GPU 按 10000 token 保守预算处理,不相信理论 32k 上限" } }, "features": { "promptPolish": { "title": "输入内容润色", - "description": "手动点击输入框润色按钮时,先用 MiniCPM 整理要发给强代码模型的指令。" + "description": "手动点击输入框润色按钮时,先用 MiniCPM 整理要发给强代码模型的指令" }, "stepExplain": { "title": "Agent 步骤解释", - "description": "在 session replay 里,为当前步骤生成 1-2 句简短中文解释。" + "description": "在 session replay 里,为当前步骤生成 1-2 句简短中文解释" }, "uiControl": { "title": "轻量 ADE/UI 控制", - "description": "MiniCPM 只能把请求识别成严格白名单里的本地 action。" + "description": "MiniCPM 只能把请求识别成严格白名单里的本地 action" }, "contextCompact": { "title": "自动压缩上下文", - "description": "会话空闲时由 MiniCPM 分段维护旧上下文,独立于原有手动和自动压缩。" + "description": "会话空闲时由 MiniCPM 分段维护旧上下文,独立于原有手动和自动压缩" } }, "health": { @@ -1663,7 +1663,7 @@ "shareToOrg": "共享到组织", "share": "共享", "sharedToOrg": "技能已共享到组织", - "shareToOrgHint": "组织成员会收到该技能当前的快照;编辑后再次共享即发布更新。", + "shareToOrgHint": "组织成员会收到该技能当前的快照;编辑后再次共享即发布更新", "shareOrgPlaceholder": "组织" } } diff --git a/src/i18n/locales/zh/mobileRemote.json b/src/i18n/locales/zh/mobileRemote.json index 1acdb17970..eb0d15ec23 100644 --- a/src/i18n/locales/zh/mobileRemote.json +++ b/src/i18n/locales/zh/mobileRemote.json @@ -94,7 +94,7 @@ "stopConfirm": { "failed": "未能停止当前轮次,它可能仍在运行。请重试或检查桌面端。", "title": "停止当前 Agent turn?", - "body": "会向桌面发送 cancel 指令。已运行的 shell 进程是否终止取决于 Agent 策略。", + "body": "会向桌面发送 cancel 指令。已运行的 shell 进程是否终止取决于 Agent 策略", "cancel": "取消", "confirm": "停止" }, diff --git a/src/i18n/locales/zh/navigation.json b/src/i18n/locales/zh/navigation.json index f359dfc0aa..bd9f877ef1 100644 --- a/src/i18n/locales/zh/navigation.json +++ b/src/i18n/locales/zh/navigation.json @@ -320,11 +320,11 @@ "forkModelFallback": "所有者的模型 {{model}} 在你的密钥下不可用 — 此分叉将改用 {{fallback}}。", "forkModelUnavailable": "所有者的模型 {{model}} 在你的密钥下不可用 — 运行此分叉前请先选择模型。", "forkPickCheckoutTitle": "选择你本机的 {{repo}} 检出目录", - "forkPickCheckoutHint": "接力「{{session}}」将继续 {{repo}} 上的工作。请选择它运行的工作区仓库——只有该仓库的检出目录可选。", + "forkPickCheckoutHint": "接力「{{session}}」将继续 {{repo}} 上的工作。请选择它运行的工作区仓库——只有该仓库的检出目录可选", "forkPickCheckoutClone": "没看到?请先 clone 该仓库并添加为工作区,再重新接力。", "forkCheckoutMismatch": "所选文件夹不是 {{repo}} 的检出目录——已取消 fork「{{session}}」。请先 clone 该仓库再 fork。", "forkSetupTitle": "在本机继续", - "forkSetupHint": "使用你本机的检出目录和账户,为「{{session}}」创建可写的接力会话。", + "forkSetupHint": "使用你本机的检出目录和账户,为「{{session}}」创建可写的接力会话", "forkSetupWorkspace": "工作区", "forkSetupNoWorkspace": "不使用工作区继续", "forkSetupAccount": "账户", @@ -834,26 +834,26 @@ "deleteRoleCancel": "取消", "deleteRoleOk": "删除", "deleteRoleTitle": "删除角色?", - "followUpSuggestionsDesc": "工作项的一轮完成后,建议可能的后续步骤。这会额外发起一次模型请求。", + "followUpSuggestionsDesc": "工作项的一轮完成后,建议可能的后续步骤。这会额外发起一次模型请求", "followUpSuggestionsLabel": "Agent 后续建议", - "goalMaxTurnsDesc": "在 Agent 通常会停下的时候,继续朝我最近的请求最多再工作 N 轮(0 = 关闭)。", + "goalMaxTurnsDesc": "在 Agent 通常会停下的时候,继续朝我最近的请求最多再工作 N 轮(0 = 关闭)", "goalMaxTurnsLabel": "目标续跑额度", "guidanceLabel": "Agent 指引", "guidancePlaceholder": "此角色生效时,Agent 应如何调整行为?", - "modeSwitchAutoPlanDesc": "待确认的 Plan 模式建议在确认计时结束后自动切换。", + "modeSwitchAutoPlanDesc": "待确认的 Plan 模式建议在确认计时结束后自动切换", "modeSwitchAutoPlanLabel": "模式切换自动进入 Plan", "newRoleDefaultLabel": "自定义角色", - "pageDescription": "定义你当前扮演的角色。Agent 会读取当前角色的指引并相应调整行为 — 例如在你专注工作时少问澄清问题,或在你离开时批量汇总。", + "pageDescription": "定义你当前扮演的角色。Agent 会读取当前角色的指引并相应调整行为 — 例如在你专注工作时少问澄清问题,或在你离开时批量汇总", "pageTitle": "我的角色", - "planAutoApproveDesc": "N 秒后自动批准待确认的计划(0 = 等我确认)。", + "planAutoApproveDesc": "N 秒后自动批准待确认的计划(0 = 等我确认)", "planAutoApproveLabel": "计划自动批准", - "questionAutoSkipDesc": "N 秒后自动跳过 Agent 的待答问题(0 = 等我回答)。", + "questionAutoSkipDesc": "N 秒后自动跳过 Agent 的待答问题(0 = 等我回答)", "questionAutoSkipLabel": "问题自动跳过", "roleNameLabel": "名称", "roleNamePlaceholder": "角色名称", "stanceAutonomous": "自主 — 从不等我", "stanceDeferAndBatch": "延后并批量 — 先干活,稍后再问", - "stanceDesc": "此角色生效时,Agent 如何处理需要阻塞等待的决策。", + "stanceDesc": "此角色生效时,Agent 如何处理需要阻塞等待的决策", "stanceInteractive": "交互 — 随时问我", "stanceLabel": "行为姿态" }, diff --git a/src/i18n/locales/zh/onboarding.json b/src/i18n/locales/zh/onboarding.json index fc9f9ccca0..3a34e64d9a 100644 --- a/src/i18n/locales/zh/onboarding.json +++ b/src/i18n/locales/zh/onboarding.json @@ -14,51 +14,51 @@ }, "generalLayout": { "title": "整体布局教程", - "description": "了解聊天面板、运行时、工作站模式切换器和 Dock。", + "description": "了解聊天面板、运行时、工作站模式切换器和 Dock", "duration": "1 分钟", "steps": { "chat-panel": { "title": "聊天面板", - "body": "在这里与 Agent 对话、查看活动,并发送后续指令。" + "body": "在这里与 Agent 对话、查看活动,并发送后续指令" }, "runtime": { "title": "运行时", - "body": "在这里查看个人用量与运行状态;切换到工作空间后,还可以查看成员同步状态,并进入成员详情查看 Codex、Claude 和 Cursor 用量。" + "body": "在这里查看个人用量与运行状态;切换到工作空间后,还可以查看成员同步状态,并进入成员详情查看 Codex、Claude 和 Cursor 用量" }, "station-mode-pill": { "title": "切换工作站模式", - "body": "使用此按钮切换工作站模式。桌面代表“我的工作站”,也就是你的 Workspace;无限代表“Agent 工作站”,用于查看 Agent 活动。" + "body": "使用此按钮切换工作站模式。桌面代表“我的工作站”,也就是你的 Workspace;无限代表“Agent 工作站”,用于查看 Agent 活动" }, "dock": { "title": "Agent 工作站 Dock", - "body": "Dock 用于切换工作站内的应用。教程期间会暂时关闭自动隐藏,让这些控件保持可见。" + "body": "Dock 用于切换工作站内的应用。教程期间会暂时关闭自动隐藏,让这些控件保持可见" } } }, "codeEditor": { "title": "代码编辑器教程", - "description": "了解标签页、编辑器工作区、源代码管理和 Git 历史。", + "description": "了解标签页、编辑器工作区、源代码管理和 Git 历史", "duration": "2 分钟", "steps": { "tabs": { "title": "代码编辑器标签页", - "body": "标签页集中承载你在仓库工作时打开的文件、Diff、终端、源代码管理视图和看板。" + "body": "标签页集中承载你在仓库工作时打开的文件、Diff、终端、源代码管理视图和看板" }, "editor-surface": { "title": "编辑器 Workspace", - "body": "这是代码编辑器的主要工作区。你可以在这里打开文件、检查 Diff、运行终端并审核生成的变更。" + "body": "这是代码编辑器的主要工作区。你可以在这里打开文件、检查 Diff、运行终端并审核生成的变更" }, "create-tabs": { "title": "创建新标签页", - "body": "使用“全部标签页”中的加号菜单创建终端、浏览器标签页、文件、看板和仓库工具。" + "body": "使用“全部标签页”中的加号菜单创建终端、浏览器标签页、文件、看板和仓库工具" }, "source-control": { "title": "Git 变更", - "body": "打开源代码管理以查看变更文件、暂存或取消暂存、提交,以及执行拉取、推送、获取和远程同步。" + "body": "打开源代码管理以查看变更文件、暂存或取消暂存、提交,以及执行拉取、推送、获取和远程同步" }, "git-history": { "title": "Git 历史", - "body": "Git 历史会把源代码管理切换到提交历史模式,供你检查过去的提交及相关变更。" + "body": "Git 历史会把源代码管理切换到提交历史模式,供你检查过去的提交及相关变更" } } } @@ -68,6 +68,6 @@ "getStarted": "开始使用", "newFeatures": "新功能", "branchesTitle": "仓库分支", - "branchesDescription": "直接在 Spotlight 中切换仓库分支。" + "branchesDescription": "直接在 Spotlight 中切换仓库分支" } } diff --git a/src/i18n/locales/zh/projects.json b/src/i18n/locales/zh/projects.json index 829b767a18..14580ce27c 100644 --- a/src/i18n/locales/zh/projects.json +++ b/src/i18n/locales/zh/projects.json @@ -60,7 +60,7 @@ }, "loadingConnections": "正在加载 GitHub 连接...", "noConnectionTitle": "未找到 GitHub 连接", - "noConnectionDescription": "请先在 Integrations 中添加 GitHub 连接,然后返回此处导入 GitHub Issues。", + "noConnectionDescription": "请先在 Integrations 中添加 GitHub 连接,然后返回此处导入 GitHub Issues", "linkedRepoHint": "此 Project 也会关联到当前 Workspace repo:{{repoName}}", "errors": { "invalidRepo": "请使用 owner/repo 或 GitHub 仓库 URL。" @@ -80,7 +80,7 @@ "importLinearOrgs": "导入 Linear 工作空间", "gitFolderPath": "Git 文件夹路径(可选)", "gitFolderPathPlaceholder": "/path/to/repo", - "gitFolderPathHint": "将此工作空间绑定到已有 Git 工作区,用于文件夹同步。", + "gitFolderPathHint": "将此工作空间绑定到已有 Git 工作区,用于文件夹同步", "gitFolderBadge": "Git", "gitFolderSynced": "已与 Git 文件夹同步", "pendingSync": "等待同步", @@ -123,7 +123,7 @@ "addTeams": "添加团队", "addLabels": "添加标签", "addRepos": "关联仓库", - "noReposHint": "暂无可关联仓库,请先将仓库添加到工作区。", + "noReposHint": "暂无可关联仓库,请先将仓库添加到工作区", "addDate": "添加日期", "clearDate": "清除日期", "noStatus": "无状态", @@ -416,7 +416,7 @@ "prDraft": "Draft", "changedFilesSection": "Changed Files", "fileDiffClean": "无文件变更", - "fileDiffCleanHint": "未检测到文件变更。", + "fileDiffCleanHint": "未检测到文件变更", "costSummary": "费用摘要", "totalCost": "总计", "tokens": "Token", @@ -445,7 +445,7 @@ "save": "保存当前视图", "saveTitle": "保存视图", "namePlaceholder": "视图名称", - "saveHint": "保存当前筛选条件;布局只作为首次打开的种子。", + "saveHint": "保存当前筛选条件;布局只作为首次打开的种子", "delete": "删除视图" }, "table": { @@ -463,14 +463,14 @@ }, "batchProperty": { "title": "设置属性", - "hint": "将一个属性值应用到选中的 {{count}} 个事项;留空表示清除该属性。", + "hint": "将一个属性值应用到选中的 {{count}} 个事项;留空表示清除该属性", "propertyPlaceholder": "属性", "valuePlaceholder": "值", "applied": "已更新 {{count}} 个事项" }, "revisionConflict": { "title": "处理编辑冲突", - "description": "{{field}} 在版本 {{expected}} 之后已被修改。请将你的编辑与最新版本 {{actual}} 对比,再选择保留哪一版。", + "description": "{{field}} 在版本 {{expected}} 之后已被修改。请将你的编辑与最新版本 {{actual}} 对比,再选择保留哪一版", "mine": "我的版本", "latest": "最新版本", "useLatest": "使用最新版本", @@ -494,7 +494,7 @@ "started": "快捷指令“{{name}}”已启动" }, "batchField": { - "hint": "应用到选中的 {{count}} 个事项。" + "hint": "应用到选中的 {{count}} 个事项" }, "batchStatus": { "title": "设置状态" @@ -573,7 +573,7 @@ "sidebarSync": "同步", "sync": { "title": "外部同步", - "description": "将此项目的工作项镜像到外部系统,例如 Linear 或 GitHub。", + "description": "将此项目的工作项镜像到外部系统,例如 Linear 或 GitHub", "adapterPicker": { "title": "适配器", "notAttached": "未绑定", @@ -581,7 +581,7 @@ "detach": "解绑", "detachProjectMenuLabel": "解除 GitHub 关联", "detachProjectTitle": "解除 {{project}} 与 GitHub 的关联?", - "detachProjectDescription": "GitHub Issues 同步将停止。本地项目和已导入的工作项会保留在 ORG2 中。", + "detachProjectDescription": "GitHub Issues 同步将停止。本地项目和已导入的工作项会保留在 ORG2 中", "detachProjectAction": "解除 {{project}} 与 GitHub 的关联", "detachProjectSuccess": "已解除 {{project}} 与 GitHub 的关联", "changeWarning": "在绑定新适配器前,请先解绑当前适配器。" @@ -617,9 +617,9 @@ "webhook": { "title": "Webhook", "loading": "正在加载 Webhook 状态…", - "notInstalledDescription": "安装 Webhook 密钥后,提供方可直接推送变更,无需等待下次轮询。", + "notInstalledDescription": "安装 Webhook 密钥后,提供方可直接推送变更,无需等待下次轮询", "install": "安装 Webhook", - "installedDescription": "将下方 URL 粘贴到提供方的 Webhook 配置中,并使用密钥对交付内容进行签名。", + "installedDescription": "将下方 URL 粘贴到提供方的 Webhook 配置中,并使用密钥对交付内容进行签名", "indicatorFresh": "最近有交付", "indicatorStale": "无最近交付", "lastDeliveryNever": "尚无交付", @@ -627,7 +627,7 @@ "copyUrl": "复制 URL", "rotate": "轮换密钥", "secretTitle": "立即复制此密钥 — 仅显示一次", - "secretDescription": "将该签名密钥粘贴到提供方的 Webhook 配置中。关闭此面板后我们不会保留明文值。", + "secretDescription": "将该签名密钥粘贴到提供方的 Webhook 配置中。关闭此面板后我们不会保留明文值", "copySecret": "复制密钥", "dismissSecret": "我已保存", "secretCopied": "密钥已复制到剪贴板", @@ -737,9 +737,9 @@ }, "sidebarStatuses": "状态", "statusesBuiltin": "内置状态", - "statusesBuiltinDescription": "标准工作流状态,始终可用。", + "statusesBuiltinDescription": "标准工作流状态,始终可用", "statusesCustom": "自定义状态", - "statusesCustomDescription": "映射到某个内置状态桶的别名;筛选、计数与看板按其所属桶处理。", + "statusesCustomDescription": "映射到某个内置状态桶的别名;筛选、计数与看板按其所属桶处理", "statusNamePlaceholder": "状态名称", "noCustomStatuses": "还没有自定义状态。", "statusArchive": "归档状态", @@ -793,11 +793,11 @@ "unknownState": "未知状态", "emptyConnections": { "title": "没有 Linear 连接", - "description": "在 Integrations 中创建 Linear 连接,然后返回这里直接浏览 Linear 项目。" + "description": "在 Integrations 中创建 Linear 连接,然后返回这里直接浏览 Linear 项目" }, "emptySelection": { "title": "选择 Linear 项目", - "description": "从左侧选择一个项目,以查看实时 Linear Issues 并编辑项目详情。" + "description": "从左侧选择一个项目,以查看实时 Linear Issues 并编辑项目详情" }, "forms": { "createProjectTitle": "创建 Linear 项目", @@ -850,8 +850,8 @@ "syncComplete": "Git folder 同步完成", "syncFailed": "Git folder 同步失败:{{message}}", "noResultTitle": "暂无 Git 同步结果", - "noResultSubtitle": "从状态栏运行 Git folder 同步后即可检查冲突。", + "noResultSubtitle": "从状态栏运行 Git folder 同步后即可检查冲突", "noConflictsTitle": "没有冲突", - "noConflictsSubtitle": "这个工作空间目前没有待处理的 Git folder 冲突。" + "noConflictsSubtitle": "这个工作空间目前没有待处理的 Git folder 冲突" } } diff --git a/src/i18n/locales/zh/sessions.json b/src/i18n/locales/zh/sessions.json index c899f46ca8..ff98fba553 100644 --- a/src/i18n/locales/zh/sessions.json +++ b/src/i18n/locales/zh/sessions.json @@ -901,10 +901,10 @@ "exportJson": "导出 JSON", "importAction": "导入 Session", "exportDescription": "将当前 Session 导出为可移植的 JSON 快照", - "importDescription": "将 Session JSON 快照导入到侧边栏。", + "importDescription": "将 Session JSON 快照导入到侧边栏", "jsonSnapshotNote": "导入的 Session 是只读快照,并保留原始事件历史", "chooseJson": "选择 JSON 文件", - "chooseJsonHint": "选择一个 .orgii-session.json 导出文件。", + "chooseJsonHint": "选择一个 .orgii-session.json 导出文件", "loadingPreview": "正在统计 Session 事件…", "noActiveSession": "未选择活动 Session。", "importedName": "导入 Session:{{name}}", @@ -1908,7 +1908,7 @@ "start": "开始", "missingGit": { "title": "缺少 Git", - "body": "未安装 Git 或无法找到 Git。请让 ADE Manager 或 SDE Agent 为这台机器安装 Git,然后重启 ORG2。" + "body": "未安装 Git 或无法找到 Git。请让 ADE Manager 或 SDE Agent 为这台机器安装 Git,然后重启 ORG2" }, "cliVersionOutdated": { "title": "{{cli}} 需要升级({{installed}} > {{latest}})", @@ -2124,7 +2124,7 @@ "archiveTeardownRetained": "已归档,但有 {{count}} 个运行时未能释放,仍无法删除。", "archiveTeardownQuiesced": "已归档并完全停止,现在可以永久删除。", "dangerZone": "危险区域", - "deleteDescription": "永久删除这个团队及其所有会话和历史记录。", + "deleteDescription": "永久删除这个团队及其所有会话和历史记录", "deleteTeam": "删除团队", "deleteTitle": "永久删除这个团队?", "deleteWarning": "这会永久删除团队的所有会话和历史记录,且无法撤销。", diff --git a/src/i18n/locales/zh/settings.json b/src/i18n/locales/zh/settings.json index bbff409bf3..0e9dfe414e 100644 --- a/src/i18n/locales/zh/settings.json +++ b/src/i18n/locales/zh/settings.json @@ -463,13 +463,13 @@ "desktopConfig": { "title": "Desktop Safety", "hideBeforeAction": "桌面控制时隐藏 ORG2", - "hideBeforeActionHelper": "Peekaboo 操作期间隐藏 ORG2 主窗口,并显示 Wingman 栏和浮动提示,避免 Agent 手动管理焦点。", + "hideBeforeActionHelper": "Peekaboo 操作期间隐藏 ORG2 主窗口,并显示 Wingman 栏和浮动提示,避免 Agent 手动管理焦点", "antiDetection": "HID 反自动化加固", - "antiDetectionHelper": "让 Peekaboo 通过真实的 CGEvent(HID)事件来执行点击和按键,而非纯粹的辅助功能操作,从而降低带有反自动化检测的应用(如微信)阻止桌面控制的可能性。", + "antiDetectionHelper": "让 Peekaboo 通过真实的 CGEvent(HID)事件来执行点击和按键,而非纯粹的辅助功能操作,从而降低带有反自动化检测的应用(如微信)阻止桌面控制的可能性", "humanInputProfile": "拟人化输入节奏", - "humanInputProfileHelper": "为合成按键应用拟人化的时间节奏。关闭后将以最高速度输入。", + "humanInputProfileHelper": "为合成按键应用拟人化的时间节奏。关闭后将以最高速度输入", "escapeAbort": "System Escape key aborts", - "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded." + "escapeAbortHelper": "Treat a hardware Escape keydown as an abort signal for in-flight desktop automation. Our own synthesized Escape presses are always excluded" }, "skillMissingBins": "缺少命令:{{bins}}", "skillMissingEnv": "缺少环境变量:{{vars}}", @@ -631,7 +631,7 @@ "title": "Git", "pullStrategy": "Pull 策略", "pullStrategyDesc": "同步时 git pull 如何整合 remote 更改", - "pullStrategyHint": "Rebase(默认):将你的 commit replay 到 remote 之上,创建 linear history。\n\nMerge:branch 有 diverge 时创建 merge commit,保留完整 history。\n\nFast-forward only:仅在不需要 merge 时允许 pull,若 branch 已 diverge 则拒绝。", + "pullStrategyHint": "Rebase(默认):将你的 commit replay 到 remote 之上,创建 linear history。\n\nMerge:branch 有 diverge 时创建 merge commit,保留完整 history。\n\nFast-forward only:仅在不需要 merge 时允许 pull,若 branch 已 diverge 则拒绝", "strategyMerge": "Merge", "strategyRebase": "Rebase(默认)", "strategyFfOnly": "仅 Fast-forward(严格)", @@ -840,7 +840,7 @@ "tableVersion": "版本", "tableStatus": "状态", "installSection": "安装", - "installHintNote": "针对你当前平台的建议安装命令。大多数系统依赖需要管理员权限,所以我们不会自动执行——请复制到你的 terminal 中运行。" + "installHintNote": "针对你当前平台的建议安装命令。大多数系统依赖需要管理员权限,所以我们不会自动执行——请复制到你的 terminal 中运行" }, "agentSessions": { "chatFontSize": "聊天字体大小", @@ -902,7 +902,7 @@ "agentEvolution": { "enableForAgent": "为 {{agentName}} 启用进化", "noAgentsTitle": "没有可用 Agent", - "noAgentsSubtitle": "创建或导入 Agent 以配置进化。" + "noAgentsSubtitle": "创建或导入 Agent 以配置进化" }, "org": {}, "learningsBrowser": { diff --git a/src/scaffold/WizardSystem/variants/Channel/ChannelSections.tsx b/src/scaffold/WizardSystem/variants/Channel/ChannelSections.tsx index 0e2864a446..86d3d1e27a 100644 --- a/src/scaffold/WizardSystem/variants/Channel/ChannelSections.tsx +++ b/src/scaffold/WizardSystem/variants/Channel/ChannelSections.tsx @@ -317,7 +317,7 @@ export const GitContent: React.FC = ({ label={t("keyVault.setupMethod")} description={t( "gitConnections.methodPickerDesc", - "Pick how you want to authenticate to GitHub." + "Pick how you want to authenticate to GitHub" )} layout="vertical" required @@ -353,7 +353,7 @@ export const GitContent: React.FC = ({ ? gitOAuthFlow.kind === OAUTH_FLOW_KIND.DEVICE ? t( "gitConnections.oauthDeviceDesc", - "Open the verification URL and enter this code to authorize GitHub." + "Open the verification URL and enter this code to authorize GitHub" ) : t("projectConnections.oauthBrowserDesc") : t("keyVault.signInDesc") @@ -538,7 +538,7 @@ const GitScanPanel: React.FC = ({
{t( "gitConnections.scanningDesc", - "Looking for gh CLI tokens, credential helpers, and SSH keys on this machine." + "Looking for gh CLI tokens, credential helpers, and SSH keys on this machine" )}
@@ -560,7 +560,7 @@ const GitScanPanel: React.FC = ({
{t( "gitConnections.scanEmptyDesc", - "No gh CLI tokens, credential helpers, or SSH keys were found. Pick another method above." + "No gh CLI tokens, credential helpers, or SSH keys were found. Pick another method above" )}
@@ -574,7 +574,7 @@ const GitScanPanel: React.FC = ({ label={t("gitConnections.scanResults", "Detected credentials")} description={t( "gitConnections.scanResultsDesc", - "Pick one to import. We validate tokens against GitHub before saving." + "Pick one to import. We validate tokens against GitHub before saving" )} layout="vertical" required @@ -629,7 +629,7 @@ const GitSshPanel: React.FC = ({ label={t("gitConnections.sshKeyPath", "SSH key path")} description={t( "gitConnections.sshKeyPathDesc", - "Absolute path to the private key (e.g. ~/.ssh/id_ed25519). The matching public key must already be registered on GitHub." + "Absolute path to the private key (e.g. ~/.ssh/id_ed25519). The matching public key must already be registered on GitHub" )} required > diff --git a/src/scaffold/WizardSystem/variants/Channel/ChannelWizard.tsx b/src/scaffold/WizardSystem/variants/Channel/ChannelWizard.tsx index 3198511e6d..0c1cbc5fc2 100644 --- a/src/scaffold/WizardSystem/variants/Channel/ChannelWizard.tsx +++ b/src/scaffold/WizardSystem/variants/Channel/ChannelWizard.tsx @@ -153,7 +153,7 @@ const ChannelWizard: React.FC = ({ setGitSubmitError( t( "gitConnections.scanSelectRequired", - "Pick a detected credential to import." + "Pick a detected credential to import" ) ); setGitSubmitting(false); @@ -195,7 +195,7 @@ const ChannelWizard: React.FC = ({ } else if (gitMethod === STORY_SYNC_AUTH_METHOD.SSH) { if (!gitSshKeyPath.trim()) { setGitSubmitError( - t("gitConnections.sshKeyPathRequired", "SSH key path is required.") + t("gitConnections.sshKeyPathRequired", "SSH key path is required") ); setGitSubmitting(false); return;