From 1726a613a526b719264c5eebaf0f42c18469d6e0 Mon Sep 17 00:00:00 2001 From: Alan Wizemann Date: Mon, 20 Apr 2026 18:16:41 -0700 Subject: [PATCH 1/2] feat(i18n): add translations for zh-Hans, de, fr, es, ja, pt-BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ships first-pass AI translations for six locales on top of the existing English base, plus a simple JSON-per-locale contributor workflow so new languages can land as a single PR. - 518 keys translated per locale (proper nouns / brand names / format- only strings left to fall back to English by design — see the "Non-blocking (intentional verbatim)" section of scarf/docs/I18N.md). - Per-locale source-of-truth lives in tools/translations/.json; tools/merge-translations.py writes them into Localizable.xcstrings and is idempotent (re-runnable as translators iterate). - InfoPlist.xcstrings (macOS microphone permission prompt) translated for all six locales. - knownRegions expanded: zh-Hans, de, fr now join by es, ja, pt-BR. - CONTRIBUTING.md gains an "Adding a Language" section documenting the fork → JSON → merge → PR flow. Native-speaker reviews welcome. Closes #13 (the original ask: Simplified Chinese support). Co-Authored-By: Claude Opus 4.7 (1M context) --- CONTRIBUTING.md | 17 + scarf/docs/I18N.md | 21 +- scarf/scarf.xcodeproj/project.pbxproj | 3 + scarf/scarf/InfoPlist.xcstrings | 36 + scarf/scarf/Localizable.xcstrings | 22398 ++++++++++++++++++++++-- tools/merge-translations.py | 90 + tools/translations/de.json | 520 + tools/translations/es.json | 520 + tools/translations/fr.json | 520 + tools/translations/ja.json | 520 + tools/translations/pt-BR.json | 520 + tools/translations/zh-Hans.json | 520 + 12 files changed, 24008 insertions(+), 1677 deletions(-) create mode 100644 tools/merge-translations.py create mode 100644 tools/translations/de.json create mode 100644 tools/translations/es.json create mode 100644 tools/translations/fr.json create mode 100644 tools/translations/ja.json create mode 100644 tools/translations/pt-BR.json create mode 100644 tools/translations/zh-Hans.json diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 395b3ec..0d056d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,6 +37,23 @@ Rules: Public docs live in the [GitHub wiki](https://github.com/awizemann/scarf/wiki). Small fixes (typos, clarifications) can be made via the "Edit" button on any wiki page — you need push access to the main repo. For larger changes, clone the wiki locally (`git clone git@github.com:awizemann/scarf.wiki.git`) or open an issue describing the proposed change. +## Adding a Language + +Scarf ships with English + Simplified Chinese, German, French, Spanish, Japanese, and Brazilian Portuguese. To add another locale (or improve an existing one): + +1. **Fork** the repo and create a branch. +2. **Add the locale to `knownRegions`** in `scarf/scarf.xcodeproj/project.pbxproj` — follow the existing list (e.g. add `it` after `"pt-BR"`). +3. **Drop a new JSON file at `tools/translations/.json`** — copy an existing one (say `tools/translations/es.json`) as a starting point. Each entry maps the English source string to your translation. Keys you omit fall back to English at runtime — do that for proper nouns (Scarf, Hermes, Anthropic, OAuth, SSH, …) and for anything technical that shouldn't translate. +4. **Preserve format specifiers exactly**: `%@`, `%lld`, `%d`, positional `%1$@` / `%2$lld`, etc. If word order needs to change in your language, use positional forms (`%1$@ … %2$@`). +5. **Add your locale to `tools/merge-translations.py`'s `LOCALES` list** and run `python3 tools/merge-translations.py` — this writes your translations into `scarf/scarf/Localizable.xcstrings`. +6. **Translate `scarf/scarf/InfoPlist.xcstrings`** (the macOS microphone-permission prompt) for your locale. Add a new `stringUnit` under `localizations`. +7. **Build** (`xcodebuild -project scarf/scarf.xcodeproj -scheme scarf build`) and **sanity-check in Xcode**: Scheme → Run → App Language → your locale. Walk the main views (Dashboard, Chat, Settings) and look for clipping or obvious leaks. +8. **Open a PR** including the new JSON file, the updated catalog, and the pbxproj / script changes. Mention which routes you spot-checked. + +AI translation is fine for the first pass — it's how the initial six locales landed. Native-speaker review improves quality and is always welcome, either as a follow-up PR or as review comments on the initial one. + +See [scarf/docs/I18N.md](scarf/docs/I18N.md) for deeper context on the String Catalog setup and which strings are intentionally kept verbatim. + ## Reporting Issues Open an issue with: diff --git a/scarf/docs/I18N.md b/scarf/docs/I18N.md index fab79a4..13fefef 100644 --- a/scarf/docs/I18N.md +++ b/scarf/docs/I18N.md @@ -7,12 +7,27 @@ Scarf uses Apple's modern **String Catalog** workflow. Source strings are auto-e | Locale | Status | |---|---| | `en` (English) | Base / source | -| `zh-Hans` (Simplified Chinese) | Region enabled, translations pending | -| `de` (German) | Region enabled, translations pending | -| `fr` (French) | Region enabled, translations pending | +| `zh-Hans` (Simplified Chinese) | AI-translated, native-speaker review welcome | +| `de` (German) | AI-translated, native-speaker review welcome | +| `fr` (French) | AI-translated, native-speaker review welcome | +| `es` (Spanish) | AI-translated, native-speaker review welcome | +| `ja` (Japanese) | AI-translated, native-speaker review welcome | +| `pt-BR` (Portuguese, Brazil) | AI-translated, native-speaker review welcome | Canadian French users are served by base `fr`. `fr-CA` will be added only if a concrete Québec-specific bug is reported. +### Translation workflow + +Source-of-truth per locale lives in `tools/translations/.json` — a flat `{ "English": "Translation" }` map. The merge step writes those into `scarf/scarf/Localizable.xcstrings` via: + +```bash +python3 tools/merge-translations.py +``` + +Keys absent from a locale file fall back to English at runtime — this is deliberate for proper nouns (Scarf, Hermes, Anthropic, OAuth, SSH…) and format-only strings (`%lld`, `%@ → %@`, `•`). Re-running the merge is idempotent; iterate on a JSON and re-merge. + +Contributor path for new languages is documented in the repo root [CONTRIBUTING.md](../../CONTRIBUTING.md#adding-a-language). + ## Adding a new language 1. Xcode → Project → Info → Localizations → `+` (add locale). diff --git a/scarf/scarf.xcodeproj/project.pbxproj b/scarf/scarf.xcodeproj/project.pbxproj index 75ffcf0..690af91 100644 --- a/scarf/scarf.xcodeproj/project.pbxproj +++ b/scarf/scarf.xcodeproj/project.pbxproj @@ -217,6 +217,9 @@ "zh-Hans", de, fr, + es, + ja, + "pt-BR", ); mainGroup = 534959372F7B83B600BD31AD; minimizedProjectReferenceProxies = 1; diff --git a/scarf/scarf/InfoPlist.xcstrings b/scarf/scarf/InfoPlist.xcstrings index 2089ece..74402b0 100644 --- a/scarf/scarf/InfoPlist.xcstrings +++ b/scarf/scarf/InfoPlist.xcstrings @@ -5,11 +5,47 @@ "comment" : "Shown by macOS when Scarf first requests microphone access for Hermes voice chat.", "extractionState" : "manual", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scarf verwendet das Mikrofon für den Hermes-Sprach-Chat." + } + }, "en" : { "stringUnit" : { "state" : "translated", "value" : "Scarf uses the microphone for Hermes voice chat." } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scarf usa el micrófono para el chat de voz de Hermes." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scarf utilise le microphone pour le chat vocal de Hermes." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scarf は Hermes の音声チャットのためにマイクを使用します。" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "O Scarf usa o microfone para o chat de voz do Hermes." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scarf 使用麦克风进行 Hermes 语音聊天。" + } } } } diff --git a/scarf/scarf/Localizable.xcstrings b/scarf/scarf/Localizable.xcstrings index 05e3e35..1701c10 100644 --- a/scarf/scarf/Localizable.xcstrings +++ b/scarf/scarf/Localizable.xcstrings @@ -1,1787 +1,20837 @@ { - "sourceLanguage" : "en", - "strings" : { - "" : { - - }, - "#%lld" : { - - }, - "%@ ctx" : { - - }, - "%@ in / %@ out" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ in / %2$@ out" + "sourceLanguage": "en", + "strings": { + "": {}, + "#%lld": {}, + "%@ ctx": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%@ Kontext" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%@ contexto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%@ contexte" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ コンテキスト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%@ contexto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%@ 上下文" } } } }, - "%@ reasoning" : { - - }, - "%@ tokens" : { - - }, - "%@ · %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ · %2$@" + "%@ in / %@ out": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%1$@ ein / %2$@ aus" + } + }, + "en": { + "stringUnit": { + "state": "new", + "value": "%1$@ in / %2$@ out" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%1$@ entrada / %2$@ salida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%1$@ entrée / %2$@ sortie" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "入力 %1$@ / 出力 %2$@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%1$@ entrada / %2$@ saída" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "输入 %1$@ / 输出 %2$@" } } } }, - "%@ → %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ → %2$@" + "%@ reasoning": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%@ Reasoning" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%@ razonamiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%@ raisonnement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ 推論" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%@ raciocínio" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%@ 推理" } } } }, - "%@s · %lld tools" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@s · %2$lld tools" + "%@ tokens": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%@ Tokens" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%@ tokens" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%@ jetons" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ トークン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%@ tokens" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%@ 个令牌" } } } }, - "%lld" : { - - }, - "%lld %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld %2$@" + "%@ · %@": { + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "%1$@ · %2$@" } } } }, - "%lld chars" : { - - }, - "%lld delivery failure%@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld delivery failure%2$@" + "%@ → %@": { + "localizations": { + "en": { + "stringUnit": { + "state": "new", + "value": "%1$@ → %2$@" } } } }, - "%lld entries" : { - - }, - "%lld files" : { - - }, - "%lld messages" : { - - }, - "%lld msgs" : { - - }, - "%lld of %lld enabled" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld of %2$lld enabled" + "%@s · %lld tools": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%1$@ s · %2$lld Tools" + } + }, + "en": { + "stringUnit": { + "state": "new", + "value": "%1$@s · %2$lld tools" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%1$@ s · %2$lld herramientas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%1$@ s · %2$lld outils" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%1$@ 秒 · %2$lld ツール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%1$@ s · %2$lld ferramentas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%1$@秒 · %2$lld 个工具" } } } }, - "%lld reasoning" : { - - }, - "%lld req" : { - - }, - "%lld required config" : { - - }, - "%lld sessions" : { - - }, - "%lld tokens" : { - - }, - "%lld tools" : { - - }, - "%lld." : { - - }, - "(%lld tokens)" : { - - }, - "/%@" : { - - }, - "22" : { - - }, - "30 Days" : { - - }, - "7 Days" : { - - }, - "90 Days" : { - - }, - "<%@>" : { - - }, - "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts." : { - - }, - "API Key" : { - - }, - "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json." : { - - }, - "Actions" : { - - }, - "Active" : { - - }, - "Active profile" : { - - }, - "Activity" : { - - }, - "Activity Patterns" : { - - }, - "Add" : { - - }, - "Add Command" : { - - }, - "Add Credential" : { - - }, - "Add Custom" : { - - }, - "Add Custom MCP Server" : { - - }, - "Add Project" : { - - }, - "Add Quick Command" : { - - }, - "Add Remote Server" : { - - }, - "Add Server" : { - - }, - "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets." : { - - }, - "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf." : { - - }, - "Add from Preset" : { - - }, - "Add rotation credentials so hermes can failover between keys when one hits rate limits." : { - - }, - "Add your first command" : { - - }, - "After approving in your browser, the provider shows a code. Paste it below and submit." : { - - }, - "Agent" : { - - }, - "All" : { - - }, - "All Levels" : { - - }, - "All Sessions" : { - - }, - "All Time" : { - - }, - "All installed hub skills are up to date." : { - - }, - "Approve" : { - - }, - "Archive" : { - - }, - "Args (one per line)" : { - - }, - "Arguments" : { - - }, - "Assistant Message" : { - - }, - "Auth" : { - - }, - "Authentication uses ssh-agent" : { - - }, - "Authorization Code" : { - - }, - "Authorization URL" : { - - }, - "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider." : { - - }, - "Back" : { - - }, - "Back to Catalog" : { - - }, - "Backup Now" : { - - }, - "Becomes the key under mcp_servers: in config.yaml." : { - - }, - "BlueBubbles Docs" : { - - }, - "Browse" : { - - }, - "Browse Hub" : { - - }, - "Browse the Hub" : { - - }, - "Browse..." : { - - }, - "Browser" : { - - }, - "By Day" : { - - }, - "By Hour" : { - - }, - "CLI" : { - - }, - "Call timeout" : { - - }, - "Can't read Hermes state on %@" : { - - }, - "Cancel" : { - - }, - "Changes won't take effect until Hermes reloads the config." : { - - }, - "Chat" : { - - }, - "Chat Messages" : { - - }, - "Check" : { - - }, - "Check Now" : { - - }, - "Check for Updates" : { - - }, - "Check for Updates…" : { - - }, - "Checking…" : { - - }, - "Choose a cron job from the list" : { - - }, - "Choose a profile to inspect." : { - - }, - "Choose a project from the sidebar to view its dashboard." : { - - }, - "Choose a session from the list" : { - - }, - "Choose a skill from the list" : { - - }, - "Choose an entry from the list" : { - - }, - "Choose…" : { - - }, - "Clear Token" : { - - }, - "Clear all skills on save" : { - - }, - "Click Add to connect to a remote Hermes installation over SSH." : { - - }, - "Click for details" : { - - }, - "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next." : { - - }, - "Clone config, .env, SOUL.md from active profile" : { - - }, - "Close" : { - - }, - "Close Window" : { - - }, - "Code: %@" : { - - }, - "Command" : { - - }, - "Command looks destructive. Double-check before saving." : { - - }, - "Component" : { - - }, - "Compress" : { - - }, - "Compress Conversation" : { - - }, - "Compress conversation (/compress)" : { - - }, - "Configure" : { - - }, - "Connect timeout" : { - - }, - "Connected" : { - - }, - "Connected — can't read Hermes state" : { - - }, - "Connection" : { - - }, - "Continue Last Session" : { - - }, - "Copied" : { - - }, - "Copy" : { - - }, - "Copy Full Report" : { - - }, - "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once." : { - - }, - "Copy code" : { - - }, - "Copy error details" : { - - }, - "Create" : { - - }, - "Create Profile" : { - - }, - "Create Subscription" : { - - }, - "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-)." : { - - }, - "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users." : { - - }, - "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below." : { - - }, - "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value." : { - - }, - "Create a profile to isolate config and skills." : { - - }, - "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator." : { - - }, - "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint." : { - - }, - "Credential Pools" : { - - }, - "Credential Type" : { - - }, - "Credentials" : { - - }, - "Cron" : { - - }, - "Cron Jobs" : { - - }, - "Current: %@" : { - - }, - "Custom…" : { - - }, - "Daemon running" : { - - }, - "Dashboard" : { - - }, - "Default" : { - - }, - "Default: ~/.hermes" : { - - }, - "Defaults to ~/.ssh/config or current user" : { - - }, - "Delete" : { - - }, - "Delete %@?" : { - - }, - "Delete Session?" : { - - }, - "Delete profile '%@'?" : { - - }, - "Delete..." : { - - }, - "Deliver: %@" : { - - }, - "Diagnostic Output" : { - - }, - "Diagnostics" : { - - }, - "Disable" : { - - }, - "Disabled" : { - - }, - "Discord Setup Docs" : { - - }, - "Docs" : { - - }, - "Done" : { - - }, - "Edit" : { - - }, - "Edit %@" : { - - }, - "Edit /%@" : { - - }, - "Edit Agent Memory" : { - - }, - "Edit User Profile" : { - - }, - "Edit config.yaml" : { - - }, - "Email Setup Docs" : { - - }, - "Empty" : { - - }, - "Enable" : { - - }, - "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent." : { - - }, - "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own." : { - - }, - "Enabled" : { - - }, - "Env vars, headers, and tool filters can be edited after the server is added." : { - - }, - "Environment Variables" : { - - }, - "Error" : { - - }, - "Errors" : { - - }, - "Exclude" : { - - }, - "Execute" : { - - }, - "Expected at %@" : { - - }, - "Export All" : { - - }, - "Export..." : { - - }, - "Export…" : { - - }, - "Expose prompts" : { - - }, - "Expose resources" : { - - }, - "Feishu Setup Docs" : { - - }, - "Fetch" : { - - }, - "Files" : { - - }, - "Filter logs..." : { - - }, - "Filter servers..." : { - - }, - "Filter skills..." : { - - }, - "Filter to session %@" : { - - }, - "Focus topic (optional)" : { - - }, - "Full copy of active profile (all state)" : { - - }, - "Gateway" : { - - }, - "Gateway Running" : { - - }, - "Gateway Stopped" : { - - }, - "Gateway restart required" : { - - }, - "Header" : { - - }, - "Headers" : { - - }, - "Health" : { - - }, - "Hermes" : { - - }, - "Hermes Not Found" : { - - }, - "Hermes Running" : { - - }, - "Hermes Stopped" : { - - }, - "Hermes binary not found" : { - - }, - "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually." : { - - }, - "Hide" : { - - }, - "Hide Output" : { - - }, - "Hide details" : { - - }, - "Home Assistant Docs" : { - - }, - "Host key changed" : { - - }, - "ID: %@" : { - - }, - "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it." : { - - }, - "If you trust the change, remove the stale entry and reconnect:" : { - - }, - "Import" : { - - }, - "Inactive" : { - - }, - "Include (comma-separated — if set, only these are exposed)" : { - - }, - "Insights" : { - - }, - "Install" : { - - }, - "Install BlueBubbles Server" : { - - }, - "Install Plugin" : { - - }, - "Install a Plugin" : { - - }, - "Install signal-cli" : { - - }, - "Installed" : { - - }, - "Interact" : { - - }, - "Invalid URL" : { - - }, - "KEY" : { - - }, - "Keep typing to send as a message, or press Esc." : { - - }, - "Label (optional)" : { - - }, - "Last Output" : { - - }, - "Last probe: %@" : { - - }, - "Last run: %@" : { - - }, - "Last updated: %@" : { - - }, - "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai)." : { - - }, - "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates." : { - - }, - "Level" : { - - }, - "Link Device" : { - - }, - "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages." : { - - }, - "Linking…" : { - - }, - "Loaded" : { - - }, - "Loading session…" : { - - }, - "Local" : { - - }, - "Local (stdio)" : { - - }, - "Log File" : { - - }, - "Logs" : { - - }, - "MCP Servers" : { - - }, - "MCP Servers (%lld)" : { - - }, - "Manage" : { - - }, - "Manage Servers…" : { - - }, - "Manage in Credential Pools" : { - - }, - "Matrix Setup Docs" : { - - }, - "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token." : { - - }, - "Mattermost Setup Docs" : { - - }, - "Memory" : { - - }, - "Memory is managed by %@. File contents shown here may be stale." : { - - }, - "Message Hermes..." : { - - }, - "Messages will appear here as the conversation progresses." : { - - }, - "Migrate" : { - - }, - "Missing required config:" : { - - }, - "Model ID" : { - - }, - "Models" : { - - }, - "Monitor" : { - - }, - "Name" : { - - }, - "Name (no leading slash)" : { - - }, - "New Session" : { - - }, - "New Webhook Subscription" : { - - }, - "New name for '%@'" : { - - }, - "Next run: %@" : { - - }, - "No AI provider credentials detected" : { - - }, - "No Active Session" : { - - }, - "No Activity" : { - - }, - "No Cron Jobs" : { - - }, - "No Dashboard" : { - - }, - "No MCP servers configured" : { - - }, - "No Models" : { - - }, - "No Profiles" : { - - }, - "No Projects" : { - - }, - "No Updates" : { - - }, - "No active session" : { - - }, - "No additional output. Check ~/.ssh/config and ssh-agent." : { - - }, - "No commands available" : { - - }, - "No credential pools configured" : { - - }, - "No data" : { - - }, - "No env vars configured." : { - - }, - "No env vars. Add one with the button below." : { - - }, - "No headers configured." : { - - }, - "No headers. Add one with the button below." : { - - }, - "No matching commands" : { - - }, - "No paired users" : { - - }, - "No platforms connected" : { - - }, - "No plugins installed" : { - - }, - "No quick commands configured" : { - - }, - "No remote servers" : { - - }, - "No scheduled jobs configured" : { - - }, - "No servers configured yet" : { - - }, - "No sessions found" : { - - }, - "No tool calls found" : { - - }, - "No webhook subscriptions" : { - - }, - "None" : { - - }, - "Notable Sessions" : { - - }, - "OAuth" : { - - }, - "OAuth 2.1" : { - - }, - "OAuth login for %@" : { - - }, - "OK" : { - - }, - "Open BotFather" : { - - }, - "Open Developer Portal" : { - - }, - "Open Local" : { - - }, - "Open Other Server…" : { - - }, - "Open Scarf" : { - - }, - "Open Server" : { - - }, - "Open Slack API" : { - - }, - "Open in Browser" : { - - }, - "Open in Editor" : { - - }, - "Open in new window" : { - - }, - "Open session" : { - - }, - "Optional — defaults to hostname" : { - - }, - "Optionally focus the summary on a specific topic. Leave blank to compress evenly." : { - - }, - "Other" : { - - }, - "Output" : { - - }, - "Overview" : { - - }, - "PID %d" : { - - }, - "PID %lld" : { - - }, - "Pair Device" : { - - }, - "Paired Users" : { - - }, - "Paste code here…" : { - - }, - "Pause" : { - - }, - "Pending Approvals" : { - - }, - "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all." : { - - }, - "Period" : { - - }, - "Personalities" : { - - }, - "Pick an MCP server to add." : { - - }, - "Pick one from the list, or add a new server from the toolbar." : { - - }, - "Platforms" : { - - }, - "Plugins" : { - - }, - "Plugins extend hermes with custom tools, providers, or memory backends." : { - - }, - "Pre-Run Script" : { - - }, - "Preset:" : { - - }, - "Probe" : { - - }, - "Profile" : { - - }, - "Profiles" : { - - }, - "Project Name" : { - - }, - "Project Path" : { - - }, - "Projects" : { - - }, - "Prompt" : { - - }, - "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`." : { - - }, - "Provider" : { - - }, - "Push to Talk" : { - - }, - "Push to talk (Ctrl+B)" : { - - }, - "Quick Commands" : { - - }, - "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml." : { - - }, - "Quit Scarf" : { - - }, - "Raw Config" : { - - }, - "Raw remote output (for debugging)" : { - - }, - "Re-run" : { - - }, - "Read" : { - - }, - "Reasoning" : { - - }, - "Recent Sessions" : { - - }, - "Reconnect" : { - - }, - "Recording…" : { - - }, - "Refresh" : { - - }, - "Reload" : { - - }, - "Remote (HTTP)" : { - - }, - "Remote Diagnostics — %@" : { - - }, - "Remove" : { - - }, - "Remove %@?" : { - - }, - "Remove credential for %@?" : { - - }, - "Remove this server from Scarf." : { - - }, - "Remove this server?" : { - - }, - "Remove via config.yaml…" : { - - }, - "Remove webhook %@?" : { - - }, - "Rename" : { - - }, - "Rename Profile" : { - - }, - "Rename Session" : { - - }, - "Rename..." : { - - }, - "Requires: %@" : { - - }, - "Reset Cooldowns" : { - - }, - "Restart" : { - - }, - "Restart Gateway" : { - - }, - "Restart Hermes" : { - - }, - "Restart Now" : { - - }, - "Restore" : { - - }, - "Restore from backup?" : { - - }, - "Restore…" : { - - }, - "Result" : { - - }, - "Resume" : { - - }, - "Resume Session" : { - - }, - "Retry" : { - - }, - "Return to Active Session (%@...)" : { - - }, - "Reveal" : { - - }, - "Revoke" : { - - }, - "Rich Chat" : { - - }, - "Run Diagnostics…" : { - - }, - "Run Dump" : { - - }, - "Run Now" : { - - }, - "Run Setup in Terminal" : { - - }, - "Run `hermes memory setup` in Terminal for full provider configuration." : { - - }, - "Run remote diagnostics — check exactly which files are readable on this server." : { - - }, - "Running a single shell session on %@ that exercises every path Scarf reads…" : { - - }, - "Running checks…" : { - - }, - "SILENT" : { - - }, - "SOUL.md" : { - - }, - "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context." : { - - }, - "SSH works but %@. Click for diagnostics." : { - - }, - "Save" : { - - }, - "Scarf" : { - - }, - "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:" : { - - }, - "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime." : { - - }, - "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases." : { - - }, - "Scarf — %@" : { - - }, - "Search" : { - - }, - "Search Results (%lld)" : { - - }, - "Search messages..." : { - - }, - "Search or browse skills published to registries like skills.sh, GitHub, and the official hub." : { - - }, - "Search registries" : { - - }, - "Search…" : { - - }, - "Select" : { - - }, - "Select Model" : { - - }, - "Select a Job" : { - - }, - "Select a Profile" : { - - }, - "Select a Project" : { - - }, - "Select a Session" : { - - }, - "Select a Skill" : { - - }, - "Select a Tool Call" : { - - }, - "Select an MCP Server" : { - - }, - "Send message (Enter)" : { - - }, - "Series" : { - - }, - "Server No Longer Exists" : { - - }, - "Server name" : { - - }, - "Servers" : { - - }, - "Service" : { - - }, - "Service definition stale" : { - - }, - "Session" : { - - }, - "Session title" : { - - }, - "Sessions" : { - - }, - "Settings" : { - - }, - "Setup" : { - - }, - "Share Debug Report…" : { - - }, - "Shell Command" : { - - }, - "Show" : { - - }, - "Show Output" : { - - }, - "Show all %lld lines" : { - - }, - "Show details" : { - - }, - "Show less" : { - - }, - "Show values" : { - - }, - "Signal Setup Docs" : { - - }, - "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages." : { - - }, - "Site" : { - - }, - "Skills" : { - - }, - "Skills (%lld)" : { - - }, - "Slack Setup Docs" : { - - }, - "Source" : { - - }, - "Start" : { - - }, - "Start Daemon" : { - - }, - "Start Hermes" : { - - }, - "Start OAuth" : { - - }, - "Start Pairing" : { - - }, - "Start a new session or resume an existing one from the Session menu above." : { - - }, - "Status" : { - - }, - "Stop" : { - - }, - "Stop Hermes" : { - - }, - "Subagent" : { - - }, - "Subagent Sessions (%lld)" : { - - }, - "Submit" : { - - }, - "Subscribe" : { - - }, - "Succeeded" : { - - }, - "Switch to This Profile" : { - - }, - "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files." : { - - }, - "TTS Off" : { - - }, - "TTS On" : { - - }, - "Telegram Setup Docs" : { - - }, - "Terminal" : { - - }, - "Test" : { - - }, - "Test All" : { - - }, - "Test Connection" : { - - }, - "Test failed" : { - - }, - "Test passed" : { - - }, - "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc." : { - - }, - "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection." : { - - }, - "The server this window was opened with has been removed from your registry." : { - - }, - "The server's SSH configuration is removed from Scarf. Your remote files are untouched." : { - - }, - "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\"." : { - - }, - "These list fields must be edited directly in config.yaml." : { - - }, - "This provider has no catalogued models." : { - - }, - "This removes the credential from hermes. The upstream provider key is not revoked." : { - - }, - "This removes the profile directory and all data within it. This cannot be undone." : { - - }, - "This removes the scheduled job permanently." : { - - }, - "This removes the server from config.yaml and deletes any OAuth token." : { - - }, - "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL." : { - - }, - "This will overwrite files under ~/.hermes/ with the archive contents." : { - - }, - "This will permanently delete the session and all its messages." : { - - }, - "Timeout: %llds (%@)" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Timeout: %1$llds (%2$@)" + "%lld": {}, + "%lld %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" + } + }, + "en": { + "stringUnit": { + "state": "new", + "value": "%1$lld %2$@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" } } } }, - "Timeouts" : { - + "%lld chars": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Zeichen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld caracteres" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld caractères" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld 文字" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld caracteres" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 个字符" + } + } + } }, - "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain." : { - + "%lld delivery failure%@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%1$lld Zustellfehler%2$@" + } + }, + "en": { + "stringUnit": { + "state": "new", + "value": "%1$lld delivery failure%2$@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%1$lld error de entrega%2$@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%1$lld échec de livraison%2$@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%1$lld 件の配信失敗%2$@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%1$lld falha de entrega%2$@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%1$lld 次投递失败%2$@" + } + } + } }, - "Toggle text-to-speech (/voice tts)" : { - + "%lld entries": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Einträge" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld entradas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld entrées" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld 件" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld entradas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 条记录" + } + } + } }, - "Toggle voice mode (/voice)" : { - + "%lld files": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Dateien" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld archivos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld fichiers" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld ファイル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld arquivos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 个文件" + } + } + } }, - "Token on disk. Clear to re-authenticate next time the gateway connects." : { - + "%lld messages": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Nachrichten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld mensajes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld messages" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld メッセージ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld mensagens" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 条消息" + } + } + } }, - "Tool Approval Required" : { - + "%lld msgs": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Nachr." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld msjs" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld msgs" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld メッセージ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld msgs" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 条" + } + } + } }, - "Tool Filters" : { - + "%lld of %lld enabled": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%1$lld von %2$lld aktiviert" + } + }, + "en": { + "stringUnit": { + "state": "new", + "value": "%1$lld of %2$lld enabled" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%1$lld de %2$lld habilitados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%1$lld sur %2$lld activés" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%2$lld 中 %1$lld 個が有効" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%1$lld de %2$lld ativadas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已启用 %1$lld / %2$lld" + } + } + } }, - "Tools" : { - + "%lld reasoning": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Reasoning" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld razonamiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld raisonnement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld 推論" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld raciocínio" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 次推理" + } + } + } }, - "Top Tools" : { - + "%lld req": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld erforderlich" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld requeridos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld requis" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld 必須" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld obrig." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 个必填" + } + } + } }, - "URL" : { - + "%lld required config": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Pflichteinstellungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld configuraciones requeridas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld configuration(s) requise(s)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "必須設定 %lld 件" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld configurações obrigatórias" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 项必需配置" + } + } + } }, - "Uninstall" : { - + "%lld sessions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Sitzungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld sesiones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld sessions" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld セッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld sessões" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 次会话" + } + } + } }, - "Unknown: %@" : { - + "%lld tokens": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Tokens" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld tokens" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld jetons" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld トークン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld tokens" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 个令牌" + } + } + } }, - "Update" : { - + "%lld tools": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%lld Tools" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "%lld herramientas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "%lld outils" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%lld ツール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "%lld ferramentas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%lld 个工具" + } + } + } }, - "Update All" : { - + "%lld.": {}, + "(%lld tokens)": {}, + "/%@": {}, + "22": {}, + "30 Days": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "30 Tage" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "30 días" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "30 jours" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "30 日間" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "30 dias" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "30 天" + } + } + } }, - "Updated: %@" : { - + "7 Days": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "7 Tage" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "7 días" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "7 jours" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "7 日間" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "7 dias" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "7 天" + } + } + } }, - "Updates" : { - + "90 Days": {}, + "<%@>": {}, + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Unten erscheint ein QR-Code. Scanne ihn mit WhatsApp auf deinem Telefon. Die Sitzung wird unter ~/.hermes/platforms/whatsapp/ gespeichert, damit nach Neustarts kein erneuter Scan nötig ist." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aparecerá un código QR abajo. Escanéalo con WhatsApp en tu teléfono. La sesión se guarda en ~/.hermes/platforms/whatsapp/ para no tener que volver a escanearla tras reiniciar." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Un QR code apparaîtra ci-dessous. Scannez-le avec WhatsApp sur votre téléphone. La session est enregistrée dans ~/.hermes/platforms/whatsapp/, vous n'aurez donc pas besoin de la rescanner après un redémarrage." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "下に QR コードが表示されます。スマートフォンの WhatsApp でスキャンしてください。セッションは ~/.hermes/platforms/whatsapp/ に保存されるため、再起動後に再度スキャンする必要はありません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Um QR code aparecerá abaixo. Escaneie com o WhatsApp do seu celular. A sessão é salva em ~/.hermes/platforms/whatsapp/ para não precisar escanear de novo após reinícios." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "二维码将在下方显示。用手机上的 WhatsApp 扫描。会话保存在 ~/.hermes/platforms/whatsapp/,重启后无需再次扫描。" + } + } + } }, - "Upload" : { - + "API Key": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "API-Schlüssel" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Clave de API" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Clé API" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "API キー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Chave de API" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "API 密钥" + } + } + } }, - "Upload debug report?" : { - + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "API-Schlüssel werden nie vollständig angezeigt. Scarf zeigt nur die letzten 4 Zeichen zur Identifikation. Die vollständigen Werte speichert hermes in ~/.hermes/auth.json." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las claves de API nunca se muestran completas. Scarf solo muestra los últimos 4 caracteres para identificación. Los valores completos los guarda hermes en ~/.hermes/auth.json." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les clés API ne sont jamais affichées en entier. Scarf n'affiche que les 4 derniers caractères pour identification. Les valeurs complètes sont stockées par hermes dans ~/.hermes/auth.json." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "API キーは完全な形では表示されません。Scarf は識別用に末尾 4 文字のみを表示します。完全なキーの値は hermes が ~/.hermes/auth.json に保存します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Chaves de API nunca são exibidas por completo. O Scarf mostra apenas os últimos 4 caracteres para identificação. Os valores completos são armazenados pelo hermes em ~/.hermes/auth.json." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "API 密钥永远不会完整显示。Scarf 仅显示后 4 位用于识别。完整密钥由 hermes 存储在 ~/.hermes/auth.json。" + } + } + } }, - "Usage Stats" : { - + "Actions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktionen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Acciones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Actions" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ações" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "操作" + } + } + } }, - "Use" : { - + "Active": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktiv" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Activo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Actif" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ativa" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "活跃" + } + } + } }, - "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\"." : { - + "Active profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktives Profil" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Perfil activo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Profil actif" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなプロファイル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Perfil ativo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "当前配置" + } + } + } }, - "Use this" : { - + "Activity": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktivität" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actividad" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Activité" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティビティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atividade" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "活动" + } + } + } }, - "Use {dot.notation} to reference fields in the webhook payload." : { - + "Activity Patterns": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktivitätsmuster" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Patrones de actividad" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Schémas d'activité" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティビティパターン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Padrões de atividade" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "活动模式" + } + } + } }, - "Used as the YAML key. Lowercase, no spaces." : { - + "Add": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加" + } + } + } }, - "View" : { - + "Add Command": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Befehl hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir comando" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter une commande" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コマンドを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar comando" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加命令" + } + } + } }, - "View All" : { - + "Add Credential": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anmeldedaten hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir credencial" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter des identifiants" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "資格情報を追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar credencial" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加凭证" + } + } + } }, - "Voice Off" : { - + "Add Custom": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Eigene hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir personalizado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter personnalisé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "カスタム追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar personalizado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "自定义添加" + } + } + } }, - "Voice On" : { - + "Add Custom MCP Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Eigenen MCP-Server hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir servidor MCP personalizado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter un serveur MCP personnalisé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "カスタム MCP サーバーを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar servidor MCP personalizado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加自定义 MCP 服务器" + } + } + } }, - "Waiting for authorization URL…" : { - + "Add Project": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Projekt hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir proyecto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter un projet" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクトを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar projeto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加项目" + } + } + } }, - "Waiting for first probe" : { - + "Add Quick Command": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Schnellbefehl hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir comando rápido" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter une commande rapide" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "クイックコマンドを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar comando rápido" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加快捷命令" + } + } + } }, - "Waiting for hermes to prompt for the code…" : { - + "Add Remote Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Remote-Server hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir servidor remoto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter un serveur distant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモートサーバーを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar servidor remoto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加远程服务器" + } + } + } }, - "Webhook Setup Docs" : { - + "Add Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir servidor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter un serveur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバーを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar servidor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加服务器" + } + } + } }, - "Webhook platform not enabled" : { - + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Füge einen Projektordner hinzu, um zu beginnen. Lege in deinem Projekt eine .scarf/dashboard.json an, um Widgets zu definieren." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade una carpeta de proyecto para empezar. Crea un archivo .scarf/dashboard.json en tu proyecto para definir widgets." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoutez un dossier de projet pour commencer. Créez un fichier .scarf/dashboard.json dans votre projet pour définir des widgets." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクトフォルダを追加して始めましょう。ウィジェットを定義するには、プロジェクト内に .scarf/dashboard.json ファイルを作成してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicione uma pasta de projeto para começar. Crie um arquivo .scarf/dashboard.json no seu projeto para definir widgets." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加项目文件夹以开始使用。在项目中创建 .scarf/dashboard.json 文件来定义小部件。" + } + } + } }, - "Webhooks" : { - + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anmeldedaten in **Konfigurieren → Credential-Pools** hinzufügen, `ANTHROPIC_API_KEY` (oder ähnlich) in `~/.hermes/.env` setzen oder in deinem Shell-Profil exportieren, dann Scarf neu starten." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade credenciales en **Configurar → Grupos de credenciales**, establece `ANTHROPIC_API_KEY` (o similar) en `~/.hermes/.env`, o expórtala en tu perfil de shell, y reinicia Scarf." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoutez des identifiants dans **Configurer → Pools d'identifiants**, définissez `ANTHROPIC_API_KEY` (ou équivalent) dans `~/.hermes/.env`, ou exportez-la dans votre profil shell, puis redémarrez Scarf." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "**設定 → 資格情報プール** で資格情報を追加するか、`~/.hermes/.env` で `ANTHROPIC_API_KEY`(または類似の変数)を設定するか、シェルプロファイルでエクスポートしてから Scarf を再起動してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicione credenciais em **Configurar → Pools de credenciais**, defina `ANTHROPIC_API_KEY` (ou similar) em `~/.hermes/.env` ou exporte no seu perfil de shell, e reinicie o Scarf." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在 **配置 → 凭证池** 中添加凭证,在 `~/.hermes/.env` 中设置 `ANTHROPIC_API_KEY`(或类似变量),或在 shell 配置中导出该变量,然后重启 Scarf。" + } + } + } }, - "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint." : { - + "Add from Preset": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aus Voreinstellung hinzufügen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añadir desde preajuste" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajouter depuis un préréglage" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プリセットから追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicionar a partir de predefinição" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从预设添加" + } + } + } }, - "WhatsApp Setup Docs" : { - + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Rotations-Anmeldedaten hinzufügen, damit hermes zwischen Schlüsseln wechseln kann, wenn einer ein Rate-Limit erreicht." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade credenciales de rotación para que hermes pueda cambiar entre claves cuando una alcance el límite de tasa." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoutez des identifiants de rotation pour que hermes puisse basculer entre les clés lorsqu'une atteint la limite de débit." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ローテーション用の資格情報を追加すると、あるキーがレート制限に達した際に hermes が別のキーにフェイルオーバーできます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicione credenciais de rotação para que o hermes possa alternar entre chaves quando uma atingir o limite de taxa." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加轮换凭证,以便 hermes 在某个密钥达到速率限制时能切换到其他密钥。" + } + } + } }, - "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device)." : { - + "Add your first command": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Füge deinen ersten Befehl hinzu" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Añade tu primer comando" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ajoutez votre première commande" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最初のコマンドを追加" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Adicione seu primeiro comando" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加第一个命令" + } + } + } }, - "Working" : { - + "After approving in your browser, the provider shows a code. Paste it below and submit.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nach der Genehmigung im Browser zeigt der Anbieter einen Code. Füge ihn unten ein und sende ab." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tras aprobar en tu navegador, el proveedor muestra un código. Pégalo abajo y envíalo." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Après avoir approuvé dans votre navigateur, le fournisseur affiche un code. Collez-le ci-dessous et soumettez." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ブラウザで承認するとプロバイダーがコードを表示します。下に貼り付けて送信してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Após aprovar no navegador, o provedor mostra um código. Cole abaixo e envie." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在浏览器中批准后,提供方会显示一个代码。将其粘贴到下方并提交。" + } + } + } }, - "X" : { - + "Agent": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Agent" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Agent" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Agent" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Agent" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Agent" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Agent" + } + } + } }, - "Y" : { - + "All": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Todos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tous" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべて" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Todos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "全部" + } + } + } }, - "active" : { - + "All Levels": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle Ebenen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Todos los niveles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tous les niveaux" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべてのレベル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Todos os níveis" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "所有级别" + } + } + } }, - "dangerous" : { - + "All Sessions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle Sitzungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Todas las sesiones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Toutes les sessions" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべてのセッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Todas as sessões" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "所有会话" + } + } + } }, - "default" : { - + "All Time": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gesamter Zeitraum" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Todo el tiempo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tout le temps" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "全期間" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Todo o período" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "全部时间" + } + } + } }, - "e.g. anthropic" : { - + "All installed hub skills are up to date.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle installierten Hub-Skills sind aktuell." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Todas las habilidades instaladas desde el hub están al día." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Toutes les compétences installées depuis le hub sont à jour." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "インストールされているハブスキルはすべて最新です。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Todas as habilidades instaladas do hub estão atualizadas." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "所有已安装的 Hub 技能均为最新。" + } + } + } }, - "e.g. deploy" : { - + "Approve": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Genehmigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aprobar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Approuver" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "承認" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aprovar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "批准" + } + } + } }, - "e.g. experimental" : { - + "Archive": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Archivieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Archivar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Archiver" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アーカイブ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Arquivar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "归档" + } + } + } }, - "e.g. github" : { - + "Args (one per line)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Argumente (eines pro Zeile)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Argumentos (uno por línea)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Arguments (un par ligne)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "引数(1 行に 1 つ)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Argumentos (um por linha)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "参数(每行一个)" + } + } + } }, - "e.g. openai" : { - + "Arguments": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Argumente" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Argumentos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Arguments" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "引数" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Argumentos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "参数" + } + } + } }, - "e.g. openai/gpt-4o" : { - + "Assistant Message": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Assistentennachricht" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mensaje del asistente" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Message de l'assistant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アシスタントメッセージ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mensagem do assistente" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "助手消息" + } + } + } }, - "e.g. team-prod" : { - + "Auth": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Auth" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Auth" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Auth" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "認証" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Auth" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "认证" + } + } + } }, - "exit code: %d" : { - + "Authentication uses ssh-agent": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Authentifizierung nutzt ssh-agent" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La autenticación usa ssh-agent" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L'authentification utilise ssh-agent" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "認証には ssh-agent を使用します" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "A autenticação usa ssh-agent" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "使用 ssh-agent 进行认证" + } + } + } }, - "github.com/owner/plugin-repo or owner/repo" : { - + "Authorization Code": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Autorisierungscode" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Código de autorización" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Code d'autorisation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "認可コード" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Código de autorização" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "授权码" + } + } + } }, - "hermes at %@" : { - + "Authorization URL": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Autorisierungs-URL" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "URL de autorización" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "URL d'autorisation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "認可 URL" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "URL de autorização" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "授权 URL" + } + } + } }, - "hermes profile show" : { - + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hilfsaufgaben nutzen separate, typischerweise günstigere Modelle. Provider auf `auto` lassen, um den Hauptanbieter zu übernehmen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las tareas auxiliares usan modelos separados, normalmente más baratos. Deja Proveedor en `auto` para heredar el proveedor principal." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les tâches auxiliaires utilisent des modèles distincts, généralement moins coûteux. Laissez Fournisseur sur `auto` pour hériter du fournisseur principal." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "補助タスクには別の、通常はより安価なモデルを使用します。メインプロバイダーを継承するには Provider を `auto` のままにしてください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tarefas auxiliares usam modelos separados, geralmente mais baratos. Deixe Provedor em `auto` para herdar o provedor principal." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "辅助任务使用独立的、通常更便宜的模型。将 Provider 保持为 `auto` 以继承主提供方。" + } + } + } }, - "hermes.example.com or a ~/.ssh/config alias" : { - + "Back": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zurück" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Atrás" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "戻る" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voltar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "返回" + } + } + } }, - "https://..." : { - + "Back to Catalog": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zurück zum Katalog" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Volver al catálogo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retour au catalogue" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "カタログに戻る" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voltar ao catálogo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "返回目录" + } + } + } }, - "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL." : { - + "Backup Now": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Jetzt sichern" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copia de seguridad ahora" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sauvegarder maintenant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "今すぐバックアップ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Fazer backup agora" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "立即备份" + } + } + } }, - "my_server" : { - + "Becomes the key under mcp_servers: in config.yaml.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wird zum Schlüssel unter mcp_servers: in config.yaml." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Se convierte en la clave bajo mcp_servers: en config.yaml." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Devient la clé sous mcp_servers : dans config.yaml." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "config.yaml の mcp_servers: 下のキーになります。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Vira a chave sob mcp_servers: em config.yaml." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "将作为 config.yaml 中 mcp_servers: 下的键。" + } + } + } }, - "new-name" : { - + "BlueBubbles Docs": {}, + "Browse": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Durchsuchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Examinar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Parcourir" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "参照" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Explorar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览" + } + } + } }, - "npx" : { - + "Browse Hub": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hub durchsuchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Examinar el hub" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Parcourir le hub" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ハブを参照" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Explorar hub" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览 Hub" + } + } + } }, - "required" : { - + "Browse the Hub": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hub durchsuchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Examinar el hub" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Parcourir le hub" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ハブを参照" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Explorar o hub" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览 Hub" + } + } + } }, - "signal-cli Terminal" : { - + "Browse...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Durchsuchen..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Examinar..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Parcourir..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "参照..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Explorar..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览..." + } + } + } }, - "signal-cli is available on PATH" : { - + "Browser": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Browser" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Navegador" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Navigateur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ブラウザ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Navegador" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "浏览器" + } + } + } }, - "signal-cli not found on PATH — install it first" : { - + "By Day": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nach Tag" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Por día" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Par jour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "日別" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Por dia" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按天" + } + } + } }, - "sk-…" : { - + "By Hour": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nach Stunde" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Por hora" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Par heure" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "時間別" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Por hora" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按小时" + } + } + } }, - "ssh trace" : { - + "CLI": {}, + "Call timeout": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aufruf-Timeout" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tiempo de espera de llamada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Délai d'appel" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "呼び出しタイムアウト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tempo limite da chamada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "调用超时" + } + } + } }, - "ssh-agent (leave blank)" : { - + "Can't read Hermes state on %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes-Status auf %@ nicht lesbar" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No se puede leer el estado de Hermes en %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Impossible de lire l'état de Hermes sur %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ 上の Hermes 状態を読み取れません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Não é possível ler o estado do Hermes em %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无法读取 %@ 上的 Hermes 状态" + } + } + } }, - "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above." : { - + "Cancel": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Abbrechen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cancelar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Annuler" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "キャンセル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Cancelar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "取消" + } + } + } }, - "state.db not found at the default location, but Scarf found one at:" : { - + "Changes won't take effect until Hermes reloads the config.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Änderungen werden erst wirksam, wenn Hermes die Konfiguration neu lädt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los cambios no surtirán efecto hasta que Hermes recargue la configuración." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les modifications ne prendront effet qu'au rechargement de la configuration par Hermes." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes が設定を再読み込みするまで変更は反映されません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "As alterações só têm efeito quando o Hermes recarregar a configuração." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "更改在 Hermes 重新加载配置前不会生效。" + } + } + } }, - "state.db readable" : { - + "Chat": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Chat" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Chat" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chat" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "チャット" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Chat" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "聊天" + } + } + } }, - "stderr:" : { - + "Chat Messages": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Chat-Nachrichten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mensajes de chat" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Messages de chat" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "チャットメッセージ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mensagens do chat" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "聊天消息" + } + } + } }, - "stdout:" : { - + "Check": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Prüfen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comprobar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vérifier" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "確認" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Verificar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "检查" + } + } + } }, - "tool_a, tool_b" : { - + "Check Now": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Jetzt prüfen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comprobar ahora" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vérifier maintenant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "今すぐ確認" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Verificar agora" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "立即检查" + } + } + } }, - "tool_c" : { - + "Check for Updates": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nach Updates suchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Buscar actualizaciones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vérifier les mises à jour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アップデートを確認" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Verificar atualizações" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "检查更新" + } + } + } }, - "user" : { - + "Check for Updates…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nach Updates suchen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Buscar actualizaciones…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vérifier les mises à jour…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アップデートを確認…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Verificar atualizações…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "检查更新…" + } + } + } }, - "value" : { - + "Checking…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Prüfe…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comprobando…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vérification…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "確認中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Verificando…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "检查中…" + } + } + } }, - "·" : { - + "Choose a cron job from the list": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle einen Cron-Job aus der Liste" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige una tarea cron de la lista" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez une tâche cron dans la liste" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リストから cron ジョブを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha uma tarefa cron na lista" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从列表中选择一个定时任务" + } + } + } }, - "— or use user/password login —" : { - + "Choose a profile to inspect.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle ein Profil zur Ansicht." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige un perfil para inspeccionar." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez un profil à inspecter." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "検査するプロファイルを選択してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha um perfil para inspecionar." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择一个配置进行查看。" + } + } + } }, - "•" : { - + "Choose a project from the sidebar to view its dashboard.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle ein Projekt aus der Seitenleiste, um sein Dashboard zu sehen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige un proyecto en la barra lateral para ver su panel." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez un projet dans la barre latérale pour voir son tableau de bord." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイドバーからプロジェクトを選択してダッシュボードを表示します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha um projeto na barra lateral para ver o painel." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从侧边栏选择项目以查看其仪表盘。" + } + } + } }, - "••••••••••" : { - - } + "Choose a session from the list": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle eine Sitzung aus der Liste" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige una sesión de la lista" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez une session dans la liste" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リストからセッションを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha uma sessão na lista" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从列表中选择一个会话" + } + } + } + }, + "Choose a skill from the list": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle einen Skill aus der Liste" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige una habilidad de la lista" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez une compétence dans la liste" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リストからスキルを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha uma habilidade na lista" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从列表中选择一个技能" + } + } + } + }, + "Choose an entry from the list": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle einen Eintrag aus der Liste" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige una entrada de la lista" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez une entrée dans la liste" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リストからエントリを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha uma entrada na lista" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从列表中选择一个条目" + } + } + } + }, + "Choose…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Auswählen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elegir…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisir…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "選択…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolher…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择…" + } + } + } + }, + "Clear Token": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Token löschen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Borrar token" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Effacer le jeton" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "トークンをクリア" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Limpar token" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "清除令牌" + } + } + } + }, + "Clear all skills on save": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle Skills beim Speichern löschen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Borrar todas las habilidades al guardar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Effacer toutes les compétences à l'enregistrement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "保存時にすべてのスキルをクリア" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Limpar todas as habilidades ao salvar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "保存时清除所有技能" + } + } + } + }, + "Click Add to connect to a remote Hermes installation over SSH.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Klicke auf Hinzufügen, um dich per SSH mit einer entfernten Hermes-Installation zu verbinden." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Haz clic en Añadir para conectarte a una instalación remota de Hermes mediante SSH." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cliquez sur Ajouter pour vous connecter à une installation Hermes distante via SSH." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "追加をクリックして SSH 経由でリモートの Hermes インストールに接続します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Clique em Adicionar para se conectar a uma instalação remota do Hermes via SSH." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "点击添加以通过 SSH 连接到远程 Hermes 安装。" + } + } + } + }, + "Click for details": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Für Details klicken" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Haz clic para ver detalles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cliquez pour les détails" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "クリックして詳細" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Clique para ver detalhes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "点击查看详情" + } + } + } + }, + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ein Klick auf OAuth starten öffnet die Autorisierungsseite des Anbieters im Browser. Nach der Genehmigung kopierst du den angezeigten Code und fügst ihn in das erscheinende Terminal ein." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Al hacer clic en Iniciar OAuth se abre la página de autorización del proveedor en tu navegador. Tras aprobar, copia el código mostrado y pégalo en el terminal que aparecerá a continuación." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cliquer sur Démarrer OAuth ouvre la page d'autorisation du fournisseur dans votre navigateur. Après approbation, copiez le code affiché par le fournisseur et collez-le dans le terminal qui apparaît ensuite." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "OAuth を開始をクリックすると、ブラウザでプロバイダーの認可ページが開きます。承認後、プロバイダーが表示したコードをコピーし、次に表示されるターミナルに貼り付けてください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Clicar em Iniciar OAuth abre a página de autorização do provedor no navegador. Após aprovar, copie o código exibido pelo provedor e cole no terminal que aparecerá em seguida." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "点击开始 OAuth 会在浏览器中打开提供方的授权页面。批准后,复制提供方显示的代码并粘贴到接下来出现的终端中。" + } + } + } + }, + "Clone config, .env, SOUL.md from active profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "config, .env, SOUL.md aus aktivem Profil klonen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Clonar config, .env, SOUL.md del perfil activo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cloner config, .env, SOUL.md depuis le profil actif" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなプロファイルから config、.env、SOUL.md を複製" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Clonar config, .env, SOUL.md do perfil ativo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从当前配置克隆 config、.env、SOUL.md" + } + } + } + }, + "Close": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Schließen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cerrar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fermer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "閉じる" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Fechar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "关闭" + } + } + } + }, + "Close Window": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fenster schließen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cerrar ventana" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fermer la fenêtre" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ウィンドウを閉じる" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Fechar janela" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "关闭窗口" + } + } + } + }, + "Code: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Code: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Código: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Code : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コード: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Código: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "代码:%@" + } + } + } + }, + "Command": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Befehl" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comando" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Commande" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コマンド" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Comando" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "命令" + } + } + } + }, + "Command looks destructive. Double-check before saving.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Der Befehl wirkt destruktiv. Vor dem Speichern noch einmal prüfen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El comando parece destructivo. Revísalo antes de guardar." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "La commande semble destructive. Vérifiez avant d'enregistrer." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コマンドが破壊的に見えます。保存前に再確認してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O comando parece destrutivo. Revise antes de salvar." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "该命令看起来具有破坏性。保存前请仔细确认。" + } + } + } + }, + "Component": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Komponente" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Componente" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Composant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コンポーネント" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Componente" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "组件" + } + } + } + }, + "Compress": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Komprimieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comprimir" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Compresser" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "圧縮" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Compactar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "压缩" + } + } + } + }, + "Compress Conversation": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Unterhaltung komprimieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comprimir conversación" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Compresser la conversation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "会話を圧縮" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Compactar conversa" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "压缩对话" + } + } + } + }, + "Compress conversation (/compress)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Unterhaltung komprimieren (/compress)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comprimir conversación (/compress)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Compresser la conversation (/compress)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "会話を圧縮 (/compress)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Compactar conversa (/compress)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "压缩对话 (/compress)" + } + } + } + }, + "Configure": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Konfigurieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Configurar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Configurer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "設定" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Configurar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "配置" + } + } + } + }, + "Connect timeout": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verbindungs-Timeout" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tiempo de espera de conexión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Délai de connexion" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "接続タイムアウト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tempo limite de conexão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "连接超时" + } + } + } + }, + "Connected": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verbunden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Conectado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Connecté" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "接続済み" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Conectado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已连接" + } + } + } + }, + "Connected — can't read Hermes state": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verbunden — Hermes-Status nicht lesbar" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Conectado — no se puede leer el estado de Hermes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Connecté — impossible de lire l'état de Hermes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "接続済み — Hermes 状態を読み取れません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Conectado — não é possível ler o estado do Hermes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已连接 — 无法读取 Hermes 状态" + } + } + } + }, + "Connection": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verbindung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Conexión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Connexion" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "接続" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Conexão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "连接" + } + } + } + }, + "Continue Last Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Letzte Sitzung fortsetzen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Continuar última sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Continuer la dernière session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "前回のセッションを続ける" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Continuar última sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "继续上次会话" + } + } + } + }, + "Copied": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kopiert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copiado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copié" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コピー済み" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Copiado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已复制" + } + } + } + }, + "Copy": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kopieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copiar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copier" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コピー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Copiar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "复制" + } + } + } + }, + "Copy Full Report": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Vollständigen Bericht kopieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copiar informe completo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copier le rapport complet" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "完全なレポートをコピー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Copiar relatório completo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "复制完整报告" + } + } + } + }, + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kopiert eine Klartextzusammenfassung jeder Prüfung (bestanden und fehlgeschlagen) — in GitHub-Issues einfügen, damit wir alles auf einmal sehen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copia un resumen en texto plano de cada comprobación (éxitos y fallos) — pégalo en issues de GitHub para que veamos todo a la vez." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copie un résumé en texte brut de chaque vérification (succès et échecs) — à coller dans les issues GitHub pour tout voir d'un coup." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "各チェック(成功・失敗)の概要をプレーンテキストでコピーします — GitHub issue に貼り付けて一度に確認できるようにします。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Copia um resumo em texto simples de cada verificação (aprovadas e falhas) — cole em issues do GitHub para vermos tudo de uma vez." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "复制每项检查(通过和失败)的纯文本摘要 — 粘贴到 GitHub issue 中以便我们一次查看所有内容。" + } + } + } + }, + "Copy code": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Code kopieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copiar código" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copier le code" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コードをコピー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Copiar código" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "复制代码" + } + } + } + }, + "Copy error details": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fehlerdetails kopieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copiar detalles de error" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copier les détails de l'erreur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エラー詳細をコピー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Copiar detalhes do erro" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "复制错误详情" + } + } + } + }, + "Create": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstellen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crear" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "作成" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Criar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "创建" + } + } + } + }, + "Create Profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Profil erstellen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crear perfil" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créer un profil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイルを作成" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Criar perfil" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "创建配置" + } + } + } + }, + "Create Subscription": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Abonnement erstellen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crear suscripción" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créer un abonnement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サブスクリプションを作成" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Criar assinatura" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "创建订阅" + } + } + } + }, + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle eine Slack-App auf api.slack.com/apps, aktiviere Socket Mode, vergib Bot-Scopes (chat:write, app_mentions:read, channels:history usw.) und kopiere dann das Bot User OAuth Token (xoxb-) sowie das App-Level Token (xapp-)." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea una app de Slack en api.slack.com/apps, activa Socket Mode, concede los scopes de bot (chat:write, app_mentions:read, channels:history, etc.) y copia el Bot User OAuth Token (xoxb-) y el App-Level Token (xapp-)." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez une application Slack sur api.slack.com/apps, activez Socket Mode, accordez les scopes bot (chat:write, app_mentions:read, channels:history, etc.), puis copiez le Bot User OAuth Token (xoxb-) et l'App-Level Token (xapp-)." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "api.slack.com/apps で Slack アプリを作成し、Socket Mode を有効にし、bot スコープ(chat:write、app_mentions:read、channels:history など)を付与してから Bot User OAuth Token(xoxb-)と App-Level Token(xapp-)をコピーしてください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um app Slack em api.slack.com/apps, habilite o Socket Mode, conceda os escopos de bot (chat:write, app_mentions:read, channels:history etc.) e copie o Bot User OAuth Token (xoxb-) e o App-Level Token (xapp-)." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在 api.slack.com/apps 创建 Slack 应用,启用 Socket Mode,授予 bot 权限(chat:write、app_mentions:read、channels:history 等),然后复制 Bot User OAuth Token(xoxb-)和 App-Level Token(xapp-)。" + } + } + } + }, + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle einen Bot via @BotFather und hole dir deine numerische User-ID von @userinfobot. Füge Token und User-ID unten ein — der Bot antwortet nur erlaubten Nutzern." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea un bot con @BotFather y obtén tu ID numérico en @userinfobot. Pega el token y tu ID de usuario abajo — el bot solo responderá a usuarios permitidos." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez un bot via @BotFather et obtenez votre ID numérique via @userinfobot. Collez le jeton et votre ID ci-dessous — le bot ne répondra qu'aux utilisateurs autorisés." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "@BotFather でボットを作成し、@userinfobot から数値ユーザー ID を取得してください。トークンとユーザー ID を下に貼り付けてください — ボットは許可されたユーザーにのみ応答します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um bot via @BotFather e obtenha seu ID numérico em @userinfobot. Cole o token e seu ID de usuário abaixo — o bot só responde a usuários permitidos." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "通过 @BotFather 创建机器人,并从 @userinfobot 获取你的数字用户 ID。将令牌和用户 ID 粘贴到下方 — 机器人只会响应允许的用户。" + } + } + } + }, + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle ein Long-Lived Access Token in Home Assistant (Profil → Sicherheit → Long-Lived Access Tokens). Standardmäßig werden keine Ereignisse weitergeleitet — aktiviere Watch All Changes oder füge unten Entity-Filter hinzu." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea un token de acceso de larga duración en Home Assistant (Perfil → Seguridad → Long-Lived Access Tokens). Por defecto no se reenvían eventos — activa Watch All Changes o añade filtros de entidades abajo." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez un jeton d'accès à longue durée dans Home Assistant (Profil → Sécurité → Long-Lived Access Tokens). Par défaut, aucun événement n'est transféré — activez Watch All Changes ou ajoutez des filtres d'entités ci-dessous." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Home Assistant で長期アクセストークンを作成してください(プロファイル → セキュリティ → Long-Lived Access Tokens)。デフォルトではイベントは転送されません — Watch All Changes を有効にするか、下でエンティティフィルタを追加してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um token de acesso de longa duração no Home Assistant (Perfil → Segurança → Long-Lived Access Tokens). Por padrão, nenhum evento é encaminhado — ative Watch All Changes ou adicione filtros de entidades abaixo." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在 Home Assistant 中创建长期访问令牌(配置 → 安全 → 长期访问令牌)。默认不转发任何事件 — 启用 Watch All Changes 或在下方添加实体过滤器。" + } + } + } + }, + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle ein persönliches Access Token unter Profil → Sicherheit → Personal Access Tokens oder ein Bot-Konto. Verwende das Token als MATTERMOST_TOKEN-Wert." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea un token de acceso personal en Perfil → Seguridad → Personal Access Tokens, o crea una cuenta de bot. Usa el token como valor de MATTERMOST_TOKEN." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez un jeton d'accès personnel sous Profil → Sécurité → Personal Access Tokens, ou créez un compte bot. Utilisez le jeton comme valeur de MATTERMOST_TOKEN." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイル → セキュリティ → Personal Access Tokens でパーソナルアクセストークンを作成するか、ボットアカウントを作成してください。そのトークンを MATTERMOST_TOKEN の値として使用します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um token de acesso pessoal em Perfil → Segurança → Personal Access Tokens ou crie uma conta de bot. Use o token como valor de MATTERMOST_TOKEN." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在 配置 → 安全 → 个人访问令牌 下创建个人访问令牌,或创建机器人账号。将该令牌用作 MATTERMOST_TOKEN 的值。" + } + } + } + }, + "Create a profile to isolate config and skills.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle ein Profil, um Konfiguration und Skills zu isolieren." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea un perfil para aislar configuración y habilidades." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez un profil pour isoler configuration et compétences." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "設定とスキルを分離するプロファイルを作成します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um perfil para isolar configuração e habilidades." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "创建配置以隔离 config 和技能。" + } + } + } + }, + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle eine App im Discord Developer Portal, aktiviere die Intents Message Content und Server Members und kopiere das Bot-Token. Lade den Bot über den OAuth2-URL-Generator auf deinen Server ein." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea una app en el Developer Portal de Discord, activa los intents Message Content y Server Members y copia el token del bot. Invita al bot a tu servidor con el generador de URLs OAuth2." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez une application dans le Developer Portal de Discord, activez les intents Message Content et Server Members, puis copiez le jeton du bot. Invitez le bot sur votre serveur via le générateur d'URL OAuth2." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Discord の Developer Portal でアプリを作成し、Message Content と Server Members の intents を有効にしてから、ボットトークンをコピーしてください。OAuth2 URL ジェネレーターでボットをサーバーに招待します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um app no Developer Portal do Discord, ative os intents Message Content e Server Members e copie o token do bot. Convide o bot para o seu servidor via gerador de URL OAuth2." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在 Discord 开发者门户创建应用,启用 Message Content 和 Server Members intents,然后复制机器人令牌。通过 OAuth2 URL 生成器将机器人邀请到你的服务器。" + } + } + } + }, + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erstelle eine App in der Feishu/Lark Developer Console, aktiviere Interactive Card bei Bedarf für Button-Antworten und kopiere App ID und App Secret. Der WebSocket-Modus (empfohlen) braucht keinen öffentlichen Endpunkt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Crea una app en la Feishu/Lark Developer Console, activa Interactive Card si necesitas respuestas por botón y copia el App ID y el App Secret. El modo WebSocket (recomendado) no requiere un endpoint público." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Créez une application dans la Feishu/Lark Developer Console, activez Interactive Card si vous avez besoin de réponses par bouton, et copiez l'App ID et l'App Secret. Le mode WebSocket (recommandé) ne nécessite pas de point d'accès public." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Feishu/Lark Developer Console でアプリを作成し、ボタン応答が必要であれば Interactive Card を有効にして、App ID と App Secret をコピーしてください。WebSocket モード(推奨)ではパブリックエンドポイントは不要です。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Crie um app no Feishu/Lark Developer Console, habilite Interactive Card se precisar de respostas por botão e copie o App ID e o App Secret. O modo WebSocket (recomendado) não requer endpoint público." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在飞书/Lark 开发者后台创建应用,如需按钮交互请启用 Interactive Card,然后复制 App ID 和 App Secret。推荐使用 WebSocket 模式,无需公网地址。" + } + } + } + }, + "Credential Pools": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Credential-Pools" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Grupos de credenciales" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Pools d'identifiants" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "資格情報プール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pools de credenciais" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "凭证池" + } + } + } + }, + "Credential Type": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anmeldedaten-Typ" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tipo de credencial" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Type d'identifiants" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "資格情報の種類" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tipo de credencial" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "凭证类型" + } + } + } + }, + "Credentials": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anmeldedaten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Credenciales" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Identifiants" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "資格情報" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Credenciais" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "凭证" + } + } + } + }, + "Cron": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Cron" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cron" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cron" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Cron" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Cron" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "定时任务" + } + } + } + }, + "Cron Jobs": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Cron-Jobs" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tareas cron" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tâches cron" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Cron ジョブ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tarefas cron" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "定时任务" + } + } + } + }, + "Current: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktuell: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actual: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Actuel : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "現在: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atual: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "当前:%@" + } + } + } + }, + "Custom…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Benutzerdefiniert…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Personalizado…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Personnalisé…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "カスタム…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Personalizado…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "自定义…" + } + } + } + }, + "Daemon running": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Daemon läuft" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Demonio en ejecución" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démon en cours d'exécution" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デーモン実行中" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Daemon em execução" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "守护进程运行中" + } + } + } + }, + "Dashboard": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dashboard" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Panel" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tableau de bord" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ダッシュボード" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Painel" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "仪表盘" + } + } + } + }, + "Default": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Standard" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Predeterminado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Par défaut" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デフォルト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Padrão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "默认" + } + } + } + }, + "Default: ~/.hermes": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Standard: ~/.hermes" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Predeterminado: ~/.hermes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Par défaut : ~/.hermes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デフォルト: ~/.hermes" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Padrão: ~/.hermes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "默认:~/.hermes" + } + } + } + }, + "Defaults to ~/.ssh/config or current user": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Standard ist ~/.ssh/config oder der aktuelle Benutzer" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Por defecto ~/.ssh/config o el usuario actual" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Par défaut : ~/.ssh/config ou utilisateur courant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デフォルトは ~/.ssh/config または現在のユーザー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Padrão é ~/.ssh/config ou usuário atual" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "默认使用 ~/.ssh/config 或当前用户" + } + } + } + }, + "Delete": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Löschen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Eliminar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Supprimer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "削除" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Excluir" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "删除" + } + } + } + }, + "Delete %@?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%@ löschen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Eliminar %@?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Supprimer %@ ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ を削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Excluir %@?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "删除 %@?" + } + } + } + }, + "Delete Session?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzung löschen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Eliminar sesión?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Supprimer la session ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションを削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Excluir sessão?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "删除会话?" + } + } + } + }, + "Delete profile '%@'?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Profil '%@' löschen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Eliminar perfil '%@'?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Supprimer le profil « %@ » ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイル '%@' を削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Excluir perfil '%@'?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "删除配置 '%@'?" + } + } + } + }, + "Delete...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Löschen..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Eliminar..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Supprimer..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "削除..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Excluir..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "删除..." + } + } + } + }, + "Deliver: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zustellen: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Entregar: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Livrer : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "配信: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Entregar: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "投递:%@" + } + } + } + }, + "Diagnostic Output": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Diagnose-Ausgabe" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Salida de diagnóstico" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sortie de diagnostic" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "診断出力" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Saída de diagnóstico" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "诊断输出" + } + } + } + }, + "Diagnostics": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Diagnose" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Diagnósticos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Diagnostics" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "診断" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Diagnóstico" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "诊断" + } + } + } + }, + "Disable": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Deaktivieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Desactivar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Désactiver" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "無効化" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Desativar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "禁用" + } + } + } + }, + "Disabled": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Deaktiviert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Desactivado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Désactivé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "無効" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Desativado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已禁用" + } + } + } + }, + "Discord Setup Docs": {}, + "Docs": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dokumentation" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Docs" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Docs" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ドキュメント" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Docs" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "文档" + } + } + } + }, + "Done": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fertig" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Listo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Terminé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "完了" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Concluído" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "完成" + } + } + } + }, + "Edit": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Bearbeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Editar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifier" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "編集" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Editar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "编辑" + } + } + } + }, + "Edit %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%@ bearbeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Editar %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifier %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ を編集" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Editar %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "编辑 %@" + } + } + } + }, + "Edit /%@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "/%@ bearbeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Editar /%@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifier /%@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "/%@ を編集" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Editar /%@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "编辑 /%@" + } + } + } + }, + "Edit Agent Memory": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Agent-Speicher bearbeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Editar memoria del agente" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifier la mémoire de l'agent" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エージェントメモリを編集" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Editar memória do agente" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "编辑 Agent 记忆" + } + } + } + }, + "Edit User Profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nutzerprofil bearbeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Editar perfil de usuario" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifier le profil utilisateur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ユーザープロファイルを編集" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Editar perfil de usuário" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "编辑用户配置" + } + } + } + }, + "Edit config.yaml": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "config.yaml bearbeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Editar config.yaml" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modifier config.yaml" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "config.yaml を編集" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Editar config.yaml" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "编辑 config.yaml" + } + } + } + }, + "Email Setup Docs": {}, + "Empty": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Leer" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Vacío" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vide" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "空" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Vazio" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "空" + } + } + } + }, + "Enable": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktivieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Activar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Activer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "有効化" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ativar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "启用" + } + } + } + }, + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktiviere 2FA für dein E-Mail-Konto und erzeuge ein App-Passwort. Normale Kontopasswörter funktionieren nicht. Setze immer erlaubte Absender — sonst kann jeder, der die Adresse kennt, dem Agent Nachrichten schicken." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Activa 2FA en tu cuenta de correo y genera una contraseña de aplicación. Las contraseñas normales no funcionarán. Establece siempre remitentes permitidos — de lo contrario, cualquiera que conozca la dirección podrá enviar mensajes al agente." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Activez la 2FA sur votre compte email et générez un mot de passe d'application. Les mots de passe de compte classiques ne fonctionneront pas. Définissez toujours les expéditeurs autorisés — sinon toute personne connaissant l'adresse pourra envoyer des messages à l'agent." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "メールアカウントで 2FA を有効にし、アプリパスワードを生成してください。通常のアカウントパスワードは使用できません。許可された送信者を必ず設定してください — そうしないと、アドレスを知っている誰もがエージェントにメッセージを送れます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ative o 2FA na sua conta de e-mail e gere uma senha de aplicativo. Senhas normais da conta não funcionam. Sempre defina remetentes permitidos — caso contrário, qualquer um que saiba o endereço pode enviar mensagens para o agente." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "为你的邮箱账户启用双重验证并生成应用专用密码。普通账户密码将无法使用。务必设置允许的发件人 — 否则任何知道邮件地址的人都可以向 agent 发消息。" + } + } + } + }, + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktiviere die Webhook-Plattform, um ereignisgesteuerte Agent-Trigger zu akzeptieren. Das HMAC-Secret dient als Fallback, wenn einzelne Routen keines liefern." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Activa la plataforma de webhooks para aceptar disparadores de agente dirigidos por eventos. El secreto HMAC se usa como respaldo cuando las rutas individuales no aportan el suyo." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Activez la plateforme webhook pour accepter les déclencheurs d'agent pilotés par événements. Le secret HMAC est utilisé en repli quand les routes individuelles n'en fournissent pas." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "webhook プラットフォームを有効化してイベント駆動のエージェントトリガーを受け付けます。個別のルートが独自のものを提供しない場合、HMAC シークレットがフォールバックとして使用されます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ative a plataforma de webhook para aceitar gatilhos de agente orientados a eventos. O segredo HMAC é usado como fallback quando rotas individuais não fornecem o próprio." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "启用 webhook 平台以接受事件驱动的 agent 触发。当单独的路由未提供自己的密钥时,使用 HMAC 密钥作为回退。" + } + } + } + }, + "Enabled": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktiviert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Activado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Activé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "有効" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ativado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已启用" + } + } + } + }, + "Env vars, headers, and tool filters can be edited after the server is added.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Umgebungsvariablen, Header und Tool-Filter können nach dem Hinzufügen des Servers bearbeitet werden." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las variables de entorno, cabeceras y filtros de herramientas se pueden editar después de añadir el servidor." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les variables d'environnement, en-têtes et filtres d'outils peuvent être modifiés après l'ajout du serveur." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "環境変数、ヘッダー、ツールフィルタはサーバー追加後に編集できます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Variáveis de ambiente, cabeçalhos e filtros de ferramentas podem ser editados após o servidor ser adicionado." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "添加服务器后可以编辑环境变量、请求头和工具过滤器。" + } + } + } + }, + "Environment Variables": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Umgebungsvariablen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Variables de entorno" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Variables d'environnement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "環境変数" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Variáveis de ambiente" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "环境变量" + } + } + } + }, + "Error": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fehler" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Error" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Erreur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エラー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Erro" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "错误" + } + } + } + }, + "Errors": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fehler" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Errores" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Erreurs" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エラー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Erros" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "错误" + } + } + } + }, + "Exclude": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausschließen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Excluir" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exclure" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "除外" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Excluir" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "排除" + } + } + } + }, + "Execute": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausführen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exécuter" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "実行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "执行" + } + } + } + }, + "Expected at %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erwartet unter %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esperado en %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Attendu à %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ に期待" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Esperado em %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "预期位于 %@" + } + } + } + }, + "Export All": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle exportieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Exportar todo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tout exporter" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべてエクスポート" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Exportar tudo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "全部导出" + } + } + } + }, + "Export...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Exportieren..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Exportar..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exporter..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エクスポート..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Exportar..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "导出..." + } + } + } + }, + "Export…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Exportieren…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Exportar…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exporter…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エクスポート…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Exportar…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "导出…" + } + } + } + }, + "Expose prompts": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Prompts verfügbar machen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Exponer prompts" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exposer les prompts" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロンプトを公開" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Expor prompts" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "暴露提示" + } + } + } + }, + "Expose resources": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ressourcen verfügbar machen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Exponer recursos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exposer les ressources" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リソースを公開" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Expor recursos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "暴露资源" + } + } + } + }, + "Feishu Setup Docs": {}, + "Fetch": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Abrufen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Obtener" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Récupérer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "取得" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Buscar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "拉取" + } + } + } + }, + "Files": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dateien" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Archivos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fichiers" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ファイル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Arquivos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "文件" + } + } + } + }, + "Filter logs...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Logs filtern..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtrar registros..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtrer les journaux..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ログをフィルタ..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtrar logs..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "筛选日志..." + } + } + } + }, + "Filter servers...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server filtern..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtrar servidores..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtrer les serveurs..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバーをフィルタ..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtrar servidores..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "筛选服务器..." + } + } + } + }, + "Filter skills...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Skills filtern..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtrar habilidades..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtrer les compétences..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "スキルをフィルタ..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtrar habilidades..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "筛选技能..." + } + } + } + }, + "Filter to session %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Auf Sitzung %@ filtern" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtrar a la sesión %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtrer sur la session %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッション %@ にフィルタ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtrar para a sessão %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "筛选到会话 %@" + } + } + } + }, + "Focus topic (optional)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fokusthema (optional)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tema de enfoque (opcional)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sujet ciblé (optionnel)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "フォーカストピック(任意)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tópico de foco (opcional)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "聚焦主题(可选)" + } + } + } + }, + "Full copy of active profile (all state)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Vollständige Kopie des aktiven Profils (gesamter Zustand)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copia completa del perfil activo (todo el estado)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Copie complète du profil actif (tout l'état)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなプロファイルの完全コピー(すべての状態)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Cópia completa do perfil ativo (todo o estado)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "当前配置的完整副本(所有状态)" + } + } + } + }, + "Gateway": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gateway" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Gateway" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Gateway" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Gateway" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gateway" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Gateway" + } + } + } + }, + "Gateway Running": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gateway läuft" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Gateway en ejecución" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Gateway en cours" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Gateway 実行中" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gateway em execução" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Gateway 运行中" + } + } + } + }, + "Gateway Stopped": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gateway gestoppt" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Gateway detenido" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Gateway arrêté" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Gateway 停止" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gateway parado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Gateway 已停止" + } + } + } + }, + "Gateway restart required": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gateway-Neustart erforderlich" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Se requiere reiniciar el gateway" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Redémarrage du gateway requis" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Gateway の再起動が必要です" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Reinicialização do gateway necessária" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "需要重启 Gateway" + } + } + } + }, + "Header": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Header" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cabecera" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "En-tête" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ヘッダー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Cabeçalho" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "请求头" + } + } + } + }, + "Headers": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Header" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cabeceras" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "En-têtes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ヘッダー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Cabeçalhos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "请求头" + } + } + } + }, + "Health": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zustand" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Salud" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Santé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "状態" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Saúde" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "健康" + } + } + } + }, + "Hermes": {}, + "Hermes Not Found": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes nicht gefunden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Hermes no encontrado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Hermes introuvable" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes が見つかりません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Hermes não encontrado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未找到 Hermes" + } + } + } + }, + "Hermes Running": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes läuft" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Hermes en ejecución" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Hermes en cours" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes 実行中" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Hermes em execução" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Hermes 运行中" + } + } + } + }, + "Hermes Stopped": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes gestoppt" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Hermes detenido" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Hermes arrêté" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes 停止" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Hermes parado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Hermes 已停止" + } + } + } + }, + "Hermes binary not found": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes-Binary nicht gefunden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Binario de Hermes no encontrado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Binaire Hermes introuvable" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes バイナリが見つかりません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Binário do Hermes não encontrado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未找到 Hermes 可执行文件" + } + } + } + }, + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes braucht ein globales Webhook-Secret und einen Port, bevor Abonnements Traffic empfangen können. Starte den Gateway-Einrichtungsassistenten oder bearbeite ~/.hermes/config.yaml manuell." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Hermes necesita un secreto y puerto globales de webhook antes de que las suscripciones reciban tráfico. Ejecuta el asistente de configuración del gateway o edita ~/.hermes/config.yaml manualmente." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Hermes a besoin d'un secret webhook global et d'un port avant que les abonnements puissent recevoir du trafic. Lancez l'assistant de configuration du gateway ou éditez ~/.hermes/config.yaml manuellement." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サブスクリプションがトラフィックを受信する前に、Hermes にはグローバルな webhook シークレットとポートが必要です。ゲートウェイセットアップウィザードを実行するか、~/.hermes/config.yaml を手動で編集してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O Hermes precisa de um segredo global de webhook e uma porta antes que assinaturas possam receber tráfego. Execute o assistente de configuração do gateway ou edite ~/.hermes/config.yaml manualmente." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "订阅接收流量前,Hermes 需要全局 webhook 密钥和端口。运行 gateway 设置向导或手动编辑 ~/.hermes/config.yaml。" + } + } + } + }, + "Hide": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausblenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ocultar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Masquer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "非表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ocultar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "隐藏" + } + } + } + }, + "Hide Output": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausgabe ausblenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ocultar salida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Masquer la sortie" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "出力を非表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ocultar saída" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "隐藏输出" + } + } + } + }, + "Hide details": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Details ausblenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ocultar detalles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Masquer les détails" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "詳細を非表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ocultar detalhes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "隐藏详情" + } + } + } + }, + "Home Assistant Docs": {}, + "Host key changed": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Host-Schlüssel geändert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Clave de host cambiada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Clé d'hôte modifiée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ホストキーが変更されました" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Chave do host alterada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "主机密钥已变更" + } + } + } + }, + "ID: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "ID: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "ID: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "ID : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ID: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ID: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "ID:%@" + } + } + } + }, + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wenn dies die erste Verbindung ist, stelle sicher, dass dein Schlüssel mit `ssh-add` geladen wurde und der Remote ihn akzeptiert." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Si es la primera conexión, asegúrate de que tu clave esté cargada con `ssh-add` y de que el remoto la acepte." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "S'il s'agit de la première connexion, assurez-vous que votre clé est chargée avec `ssh-add` et que l'hôte distant l'accepte." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "初回接続の場合は、`ssh-add` でキーがロードされていることと、リモートがそれを受け付けていることを確認してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Se esta for a primeira conexão, garanta que sua chave esteja carregada com `ssh-add` e que o remoto a aceite." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "如果这是首次连接,请确保已通过 `ssh-add` 加载你的密钥,并且远端接受该密钥。" + } + } + } + }, + "If you trust the change, remove the stale entry and reconnect:": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wenn du der Änderung vertraust, entferne den veralteten Eintrag und verbinde dich erneut:" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Si confías en el cambio, elimina la entrada obsoleta y reconéctate:" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Si vous faites confiance au changement, supprimez l'entrée obsolète et reconnectez-vous :" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "変更を信頼する場合、古いエントリを削除して再接続してください:" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Se você confia na mudança, remova a entrada antiga e reconecte:" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "如果你信任此变更,请移除过期条目并重新连接:" + } + } + } + }, + "Import": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Importieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Importar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Importer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "インポート" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Importar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "导入" + } + } + } + }, + "Inactive": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Inaktiv" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Inactivo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Inactif" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "非アクティブ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Inativo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未激活" + } + } + } + }, + "Include (comma-separated — if set, only these are exposed)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Einschließen (kommagetrennt — wenn gesetzt, werden nur diese freigegeben)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Incluir (separados por comas — si se define, solo estos se exponen)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Inclure (séparés par des virgules — si défini, seuls ceux-ci sont exposés)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "含める(カンマ区切り — 設定した場合これらのみが公開されます)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Incluir (separados por vírgula — se definido, apenas estes são expostos)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "包含(逗号分隔 — 若设置,仅暴露这些)" + } + } + } + }, + "Insights": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Einsichten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Analíticas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Analyses" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "インサイト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Insights" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "洞察" + } + } + } + }, + "Install": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Installieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Instalar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Installer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "インストール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Instalar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "安装" + } + } + } + }, + "Install BlueBubbles Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "BlueBubbles Server installieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Instalar BlueBubbles Server" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Installer BlueBubbles Server" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "BlueBubbles Server をインストール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Instalar BlueBubbles Server" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "安装 BlueBubbles 服务器" + } + } + } + }, + "Install Plugin": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Plugin installieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Instalar plugin" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Installer le plugin" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プラグインをインストール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Instalar plugin" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "安装插件" + } + } + } + }, + "Install a Plugin": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Plugin installieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Instalar un plugin" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Installer un plugin" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プラグインをインストール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Instalar um plugin" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "安装插件" + } + } + } + }, + "Install signal-cli": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "signal-cli installieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Instalar signal-cli" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Installer signal-cli" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "signal-cli をインストール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Instalar signal-cli" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "安装 signal-cli" + } + } + } + }, + "Installed": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Installiert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Instalado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Installé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "インストール済み" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Instalado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已安装" + } + } + } + }, + "Interact": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Interagieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Interactuar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Interagir" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "操作" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Interagir" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "交互" + } + } + } + }, + "Invalid URL": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ungültige URL" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "URL no válida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "URL invalide" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "無効な URL" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "URL inválida" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无效 URL" + } + } + } + }, + "KEY": {}, + "Keep typing to send as a message, or press Esc.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Weitertippen, um als Nachricht zu senden, oder Esc drücken." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sigue escribiendo para enviar como mensaje, o pulsa Esc." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Continuez à taper pour envoyer en tant que message, ou appuyez sur Échap." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "入力を続けるとメッセージとして送信されます。キャンセルするには Esc を押してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Continue digitando para enviar como mensagem, ou pressione Esc." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "继续输入作为消息发送,或按 Esc 取消。" + } + } + } + }, + "Label (optional)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Label (optional)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Etiqueta (opcional)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Étiquette (optionnel)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ラベル(任意)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Rótulo (opcional)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "标签(可选)" + } + } + } + }, + "Last Output": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Letzte Ausgabe" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Última salida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Dernière sortie" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最終出力" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Última saída" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "最后输出" + } + } + } + }, + "Last probe: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Letzte Prüfung: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Última comprobación: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Dernière sonde : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最終確認: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Última verificação: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "上次探测:%@" + } + } + } + }, + "Last run: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Letzter Lauf: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Última ejecución: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Dernière exécution : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最終実行: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Última execução: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "上次运行:%@" + } + } + } + }, + "Last updated: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zuletzt aktualisiert: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Última actualización: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mis à jour : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最終更新: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atualizado em: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "最后更新:%@" + } + } + } + }, + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Leer lassen, um aus dem Präfix der Modell-ID abzuleiten (\"openai/...\" → openai)." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Déjalo vacío para deducirlo del prefijo del ID del modelo (\"openai/...\" → openai)." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Laissez vide pour déduire du préfixe de l'ID du modèle (« openai/... » → openai)." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モデル ID のプレフィックスから推定するには空のままにします(\"openai/...\" → openai)。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Deixe em branco para inferir pelo prefixo do ID do modelo (\"openai/...\" → openai)." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "留空则从模型 ID 的前缀推断(\"openai/...\" → openai)。" + } + } + } + }, + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Leer lassen, außer Hermes liegt nicht am Standardpfad (systemd-Dienste oft unter /var/lib/hermes/.hermes; Docker-Sidecars variieren). Test Connection schlägt automatisch einen Wert vor, wenn es eine bekannte Alternative erkennt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Déjalo vacío salvo que Hermes esté instalado en una ruta no predeterminada (los servicios systemd suelen estar en /var/lib/hermes/.hermes; los sidecars Docker varían). Probar conexión sugiere un valor automáticamente si detecta una alternativa conocida." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Laissez vide sauf si Hermes est installé à un chemin non standard (les services systemd résident souvent dans /var/lib/hermes/.hermes ; les sidecars Docker varient). Tester la connexion suggère automatiquement une valeur lorsqu'un des chemins alternatifs connus est détecté." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes がデフォルト以外のパスにインストールされていない限り空のままにしてください(systemd サービスはしばしば /var/lib/hermes/.hermes にあり、Docker サイドカーは様々です)。テスト接続は既知の代替パスを検出すると自動的に値を提案します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Deixe em branco a menos que o Hermes esteja instalado em um caminho não padrão (serviços systemd geralmente ficam em /var/lib/hermes/.hermes; sidecars Docker variam). Testar conexão sugere automaticamente um valor ao detectar um dos caminhos alternativos conhecidos." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "除非 Hermes 安装在非默认路径,否则请留空(systemd 服务通常在 /var/lib/hermes/.hermes,Docker sidecar 则各不相同)。检测到已知替代路径时,测试连接会自动建议值。" + } + } + } + }, + "Level": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ebene" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nivel" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Niveau" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "レベル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nível" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "级别" + } + } + } + }, + "Link Device": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gerät koppeln" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Vincular dispositivo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Associer un appareil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デバイスをリンク" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Vincular dispositivo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "关联设备" + } + } + } + }, + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kopple zuerst das Gerät, um einen QR-Code zu erzeugen und zu scannen. Nach dem Koppeln starte den Daemon — er muss laufen, damit hermes Nachrichten senden/empfangen kann." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Vincula primero el dispositivo para generar y escanear un código QR. Una vez vinculado, inicia el demonio — debe seguir ejecutándose para que hermes envíe/reciba mensajes." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Associez d'abord l'appareil pour générer et scanner un QR code. Une fois associé, démarrez le démon — il doit continuer à fonctionner pour que hermes puisse envoyer/recevoir des messages." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "まずデバイスをリンクして QR コードを生成・スキャンしてください。リンク後、デーモンを起動してください — hermes がメッセージを送受信するには動作し続ける必要があります。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Vincule o dispositivo primeiro para gerar e escanear um QR code. Após vincular, inicie o daemon — ele precisa continuar rodando para o hermes enviar/receber mensagens." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "首先关联设备以生成并扫描二维码。关联后启动守护进程 — 必须保持运行以便 hermes 收发消息。" + } + } + } + }, + "Linking…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kopple…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Vinculando…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Association…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リンク中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Vinculando…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "关联中…" + } + } + } + }, + "Loaded": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Geladen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cargado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chargé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "読み込み済み" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Carregado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已加载" + } + } + } + }, + "Loading session…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Lade Sitzung…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cargando sesión…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chargement de la session…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションを読み込み中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Carregando sessão…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "正在加载会话…" + } + } + } + }, + "Local": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Lokal" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Local" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Local" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ローカル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Local" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "本地" + } + } + } + }, + "Local (stdio)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Lokal (stdio)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Local (stdio)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Local (stdio)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ローカル (stdio)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Local (stdio)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "本地 (stdio)" + } + } + } + }, + "Log File": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Log-Datei" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Archivo de registro" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fichier journal" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ログファイル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Arquivo de log" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "日志文件" + } + } + } + }, + "Logs": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Logs" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Registros" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Journaux" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ログ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Logs" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "日志" + } + } + } + }, + "MCP Servers": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "MCP-Server" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Servidores MCP" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Serveurs MCP" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "MCP サーバー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Servidores MCP" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "MCP 服务器" + } + } + } + }, + "MCP Servers (%lld)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "MCP-Server (%lld)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Servidores MCP (%lld)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Serveurs MCP (%lld)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "MCP サーバー (%lld)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Servidores MCP (%lld)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "MCP 服务器 (%lld)" + } + } + } + }, + "Manage": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verwalten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Administrar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Gérer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "管理" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gerenciar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "管理" + } + } + } + }, + "Manage Servers…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server verwalten…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Administrar servidores…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Gérer les serveurs…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバーを管理…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gerenciar servidores…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "管理服务器…" + } + } + } + }, + "Manage in Credential Pools": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "In Credential-Pools verwalten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Administrar en grupos de credenciales" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Gérer dans les pools d'identifiants" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "資格情報プールで管理" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gerenciar nos pools de credenciais" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在凭证池中管理" + } + } + } + }, + "Matrix Setup Docs": {}, + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Matrix nutzt entweder ein Access Token (bevorzugt) oder Benutzername/Passwort. Hol dir ein Access Token in Element: Einstellungen → Hilfe & Info → Access Token." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Matrix usa un token de acceso (preferido) o usuario/contraseña. Obtén un token de acceso en Element: Ajustes → Ayuda y acerca de → Access Token." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Matrix utilise soit un jeton d'accès (préféré), soit un nom d'utilisateur/mot de passe. Obtenez un jeton d'accès dans Element : Paramètres → Aide & À propos → Access Token." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Matrix はアクセストークン(推奨)かユーザー名/パスワードを使用します。Element からアクセストークンを取得してください: 設定 → ヘルプ & 情報 → アクセストークン。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O Matrix usa um token de acesso (preferido) ou usuário/senha. Obtenha um token de acesso no Element: Configurações → Ajuda e sobre → Access Token." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Matrix 使用访问令牌(推荐)或用户名/密码。从 Element 获取访问令牌:设置 → 帮助与关于 → 访问令牌。" + } + } + } + }, + "Mattermost Setup Docs": {}, + "Memory": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Speicher" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Memoria" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mémoire" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "メモリ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Memória" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "记忆" + } + } + } + }, + "Memory is managed by %@. File contents shown here may be stale.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Der Speicher wird von %@ verwaltet. Die hier angezeigten Dateiinhalte können veraltet sein." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La memoria la gestiona %@. El contenido de archivos mostrado aquí puede estar desactualizado." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "La mémoire est gérée par %@. Le contenu des fichiers affichés ici peut être obsolète." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "メモリは %@ が管理します。ここに表示されるファイル内容は古い場合があります。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "A memória é gerenciada por %@. O conteúdo dos arquivos exibido aqui pode estar desatualizado." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "记忆由 %@ 管理。此处显示的文件内容可能已过时。" + } + } + } + }, + "Message Hermes...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes Nachricht senden..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mensaje a Hermes..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Envoyer un message à Hermes..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes にメッセージを送信..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Enviar mensagem ao Hermes..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "向 Hermes 发送消息..." + } + } + } + }, + "Messages will appear here as the conversation progresses.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nachrichten erscheinen hier im Laufe der Unterhaltung." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los mensajes aparecerán aquí a medida que avance la conversación." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les messages apparaîtront ici au fur et à mesure de la conversation." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "会話が進むにつれてメッセージがここに表示されます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "As mensagens aparecerão aqui conforme a conversa progride." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "消息将随对话进行显示在此处。" + } + } + } + }, + "Migrate": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Migrieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Migrar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Migrer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "移行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Migrar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "迁移" + } + } + } + }, + "Missing required config:": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fehlende erforderliche Konfiguration:" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Falta configuración requerida:" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Configuration requise manquante :" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "必須設定が不足しています:" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Configuração obrigatória ausente:" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "缺少必需的配置:" + } + } + } + }, + "Model ID": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Modell-ID" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "ID del modelo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "ID du modèle" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モデル ID" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ID do modelo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "模型 ID" + } + } + } + }, + "Models": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Modelle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Modelos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modèles" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モデル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Modelos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "模型" + } + } + } + }, + "Monitor": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Überwachen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Monitor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Surveiller" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モニター" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Monitor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "监控" + } + } + } + }, + "Name": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Name" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nombre" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nom" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "名前" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nome" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "名称" + } + } + } + }, + "Name (no leading slash)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Name (ohne führenden Schrägstrich)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nombre (sin barra inicial)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nom (sans barre oblique initiale)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "名前(先頭のスラッシュなし)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nome (sem barra inicial)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "名称(不带前导斜杠)" + } + } + } + }, + "New Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Neue Sitzung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nueva sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nouvelle session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "新しいセッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nova sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "新建会话" + } + } + } + }, + "New Webhook Subscription": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Neues Webhook-Abonnement" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nueva suscripción de webhook" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nouvel abonnement webhook" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "新しい Webhook サブスクリプション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nova assinatura de webhook" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "新建 Webhook 订阅" + } + } + } + }, + "New name for '%@'": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Neuer Name für '%@'" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nuevo nombre para '%@'" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nouveau nom pour « %@ »" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "'%@' の新しい名前" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Novo nome para '%@'" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "'%@' 的新名称" + } + } + } + }, + "Next run: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nächster Lauf: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Próxima ejecución: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Prochaine exécution : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "次回実行: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Próxima execução: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "下次运行:%@" + } + } + } + }, + "No AI provider credentials detected": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Anmeldedaten für KI-Anbieter erkannt" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No se detectaron credenciales de proveedor de IA" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun identifiant de fournisseur d'IA détecté" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "AI プロバイダーの資格情報が検出されません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhuma credencial de provedor de IA detectada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未检测到 AI 提供方凭证" + } + } + } + }, + "No Active Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine aktive Sitzung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin sesión activa" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune session active" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなセッションなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem sessão ativa" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无活跃会话" + } + } + } + }, + "No Activity": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Aktivität" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin actividad" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune activité" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティビティなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem atividade" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无活动" + } + } + } + }, + "No Cron Jobs": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Cron-Jobs" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin tareas cron" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune tâche cron" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Cron ジョブなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem tarefas cron" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无定时任务" + } + } + } + }, + "No Dashboard": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kein Dashboard" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin panel" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun tableau de bord" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ダッシュボードなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem painel" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无仪表盘" + } + } + } + }, + "No MCP servers configured": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine MCP-Server konfiguriert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No hay servidores MCP configurados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun serveur MCP configuré" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "MCP サーバーが設定されていません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum servidor MCP configurado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未配置 MCP 服务器" + } + } + } + }, + "No Models": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Modelle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin modelos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun modèle" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モデルなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem modelos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无模型" + } + } + } + }, + "No Profiles": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Profile" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin perfiles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun profil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイルなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem perfis" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无配置" + } + } + } + }, + "No Projects": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Projekte" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin proyectos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun projet" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクトなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem projetos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无项目" + } + } + } + }, + "No Updates": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Updates" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin actualizaciones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune mise à jour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アップデートなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem atualizações" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无更新" + } + } + } + }, + "No active session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine aktive Sitzung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin sesión activa" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune session active" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなセッションなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem sessão ativa" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无活跃会话" + } + } + } + }, + "No additional output. Check ~/.ssh/config and ssh-agent.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine weitere Ausgabe. Prüfe ~/.ssh/config und ssh-agent." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin salida adicional. Revisa ~/.ssh/config y ssh-agent." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune sortie supplémentaire. Vérifiez ~/.ssh/config et ssh-agent." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "追加出力はありません。~/.ssh/config と ssh-agent を確認してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem saída adicional. Verifique ~/.ssh/config e ssh-agent." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无额外输出。请检查 ~/.ssh/config 和 ssh-agent。" + } + } + } + }, + "No commands available": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Befehle verfügbar" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No hay comandos disponibles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune commande disponible" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "利用可能なコマンドはありません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem comandos disponíveis" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无可用命令" + } + } + } + }, + "No credential pools configured": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Credential-Pools konfiguriert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No hay grupos de credenciales configurados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun pool d'identifiants configuré" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "資格情報プールが設定されていません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum pool de credenciais configurado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未配置凭证池" + } + } + } + }, + "No data": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Daten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin datos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune donnée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "データなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem dados" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无数据" + } + } + } + }, + "No env vars configured.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Umgebungsvariablen konfiguriert." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin variables de entorno configuradas." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune variable d'environnement configurée." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "環境変数が設定されていません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhuma variável de ambiente configurada." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未配置环境变量。" + } + } + } + }, + "No env vars. Add one with the button below.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Umgebungsvariablen. Füge eine mit der Schaltfläche unten hinzu." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin variables de entorno. Añade una con el botón de abajo." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune variable d'environnement. Ajoutez-en une avec le bouton ci-dessous." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "環境変数がありません。下のボタンで追加してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem variáveis de ambiente. Adicione uma com o botão abaixo." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无环境变量。点击下方按钮添加。" + } + } + } + }, + "No headers configured.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Header konfiguriert." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin cabeceras configuradas." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun en-tête configuré." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ヘッダーが設定されていません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum cabeçalho configurado." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未配置请求头。" + } + } + } + }, + "No headers. Add one with the button below.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Header. Füge einen mit der Schaltfläche unten hinzu." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin cabeceras. Añade una con el botón de abajo." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun en-tête. Ajoutez-en un avec le bouton ci-dessous." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ヘッダーがありません。下のボタンで追加してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem cabeçalhos. Adicione um com o botão abaixo." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无请求头。点击下方按钮添加。" + } + } + } + }, + "No matching commands": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine passenden Befehle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin comandos coincidentes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune commande correspondante" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "一致するコマンドなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem comandos correspondentes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无匹配命令" + } + } + } + }, + "No paired users": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine gekoppelten Nutzer" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin usuarios vinculados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun utilisateur appairé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ペア済みユーザーなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem usuários pareados" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无配对用户" + } + } + } + }, + "No platforms connected": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Plattformen verbunden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin plataformas conectadas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune plateforme connectée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "接続されているプラットフォームなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhuma plataforma conectada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未连接平台" + } + } + } + }, + "No plugins installed": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Plugins installiert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin plugins instalados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun plugin installé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プラグインがインストールされていません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum plugin instalado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未安装插件" + } + } + } + }, + "No quick commands configured": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Schnellbefehle konfiguriert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin comandos rápidos configurados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune commande rapide configurée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "クイックコマンドが設定されていません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum comando rápido configurado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未配置快捷命令" + } + } + } + }, + "No remote servers": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Remote-Server" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin servidores remotos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun serveur distant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモートサーバーなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem servidores remotos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无远程服务器" + } + } + } + }, + "No scheduled jobs configured": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine geplanten Jobs konfiguriert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin tareas programadas configuradas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune tâche planifiée configurée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "スケジュールされたジョブなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhuma tarefa agendada configurada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未配置定时任务" + } + } + } + }, + "No servers configured yet": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Noch keine Server konfiguriert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aún no hay servidores configurados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun serveur configuré pour l'instant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "まだサーバーが設定されていません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum servidor configurado ainda" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "尚未配置服务器" + } + } + } + }, + "No sessions found": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Sitzungen gefunden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No se encontraron sesiones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucune session trouvée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションが見つかりません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhuma sessão encontrada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未找到会话" + } + } + } + }, + "No tool calls found": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Tool-Aufrufe gefunden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No se encontraron llamadas a herramientas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun appel d'outil trouvé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ツール呼び出しが見つかりません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhuma chamada de ferramenta encontrada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未找到工具调用" + } + } + } + }, + "No webhook subscriptions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine Webhook-Abonnements" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sin suscripciones de webhook" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun abonnement webhook" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook サブスクリプションなし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sem assinaturas de webhook" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无 Webhook 订阅" + } + } + } + }, + "None": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Keine" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ninguno" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Aucun" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "なし" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nenhum" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "无" + } + } + } + }, + "Notable Sessions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Bemerkenswerte Sitzungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sesiones destacadas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sessions notables" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "注目のセッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sessões notáveis" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重要会话" + } + } + } + }, + "OAuth": {}, + "OAuth 2.1": {}, + "OAuth login for %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "OAuth-Anmeldung für %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Inicio de sesión OAuth para %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Connexion OAuth pour %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ の OAuth ログイン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Login OAuth para %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%@ 的 OAuth 登录" + } + } + } + }, + "OK": {}, + "Open BotFather": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "BotFather öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir BotFather" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir BotFather" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "BotFather を開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir BotFather" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开 BotFather" + } + } + } + }, + "Open Developer Portal": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Developer Portal öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir Developer Portal" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir le Developer Portal" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Developer Portal を開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir Developer Portal" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开开发者门户" + } + } + } + }, + "Open Local": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Lokal öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir local" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir local" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ローカルを開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir local" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开本地" + } + } + } + }, + "Open Other Server…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anderen Server öffnen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir otro servidor…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir un autre serveur…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "他のサーバーを開く…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir outro servidor…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开其他服务器…" + } + } + } + }, + "Open Scarf": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Scarf öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir Scarf" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir Scarf" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf を開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir Scarf" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开 Scarf" + } + } + } + }, + "Open Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir servidor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir le serveur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバーを開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir servidor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开服务器" + } + } + } + }, + "Open Slack API": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Slack-API öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir Slack API" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir l'API Slack" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Slack API を開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir API do Slack" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开 Slack API" + } + } + } + }, + "Open in Browser": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Im Browser öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir en el navegador" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir dans le navigateur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ブラウザで開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir no navegador" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在浏览器中打开" + } + } + } + }, + "Open in Editor": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Im Editor öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir en el editor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir dans l'éditeur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エディタで開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir no editor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在编辑器中打开" + } + } + } + }, + "Open in new window": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "In neuem Fenster öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir en nueva ventana" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir dans une nouvelle fenêtre" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "新しいウィンドウで開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir em nova janela" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在新窗口中打开" + } + } + } + }, + "Open session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzung öffnen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Abrir sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ouvrir la session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションを開く" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Abrir sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开会话" + } + } + } + }, + "Optional — defaults to hostname": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Optional — Standard ist der Hostname" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Opcional — por defecto el nombre de host" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Optionnel — par défaut : nom d'hôte" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "任意 — デフォルトはホスト名" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Opcional — padrão é o nome do host" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "可选 — 默认为主机名" + } + } + } + }, + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fokussiere die Zusammenfassung optional auf ein bestimmtes Thema. Leer lassen, um gleichmäßig zu komprimieren." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Opcionalmente, enfoca el resumen en un tema específico. Déjalo vacío para comprimir uniformemente." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Centrez éventuellement le résumé sur un sujet précis. Laissez vide pour compresser uniformément." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "要約を特定のトピックに絞ることができます。均等に圧縮するには空のままにしてください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Opcionalmente, foque o resumo em um tópico específico. Deixe em branco para compactar uniformemente." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "可选地将摘要聚焦到特定主题。留空则均匀压缩。" + } + } + } + }, + "Other": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Andere" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Otro" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Autre" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "その他" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Outro" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "其他" + } + } + } + }, + "Output": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausgabe" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Salida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sortie" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "出力" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Saída" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "输出" + } + } + } + }, + "Overview": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Übersicht" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Resumen" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vue d'ensemble" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "概要" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Visão geral" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "概览" + } + } + } + }, + "PID %d": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "PID %d" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "PID %d" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "PID %d" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "PID %d" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "PID %d" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "PID %d" + } + } + } + }, + "PID %lld": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "PID %lld" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "PID %lld" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "PID %lld" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "PID %lld" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "PID %lld" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "PID %lld" + } + } + } + }, + "Pair Device": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gerät koppeln" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Emparejar dispositivo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Appairer l'appareil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デバイスをペアリング" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Parear dispositivo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "配对设备" + } + } + } + }, + "Paired Users": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gekoppelte Nutzer" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Usuarios emparejados" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utilisateurs appairés" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ペア済みユーザー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Usuários pareados" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已配对用户" + } + } + } + }, + "Paste code here…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Code hier einfügen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pega el código aquí…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Collez le code ici…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ここにコードを貼り付け…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Cole o código aqui…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在此粘贴代码…" + } + } + } + }, + "Pause": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Pausieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pausar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Pause" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "一時停止" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pausar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "暂停" + } + } + } + }, + "Pending Approvals": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausstehende Genehmigungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aprobaciones pendientes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Approbations en attente" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "承認待ち" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aprovações pendentes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "待批准" + } + } + } + }, + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Abonnements pro Route (Ereignisse, Prompt-Vorlage, Zustellziel) werden in der Webhooks-Seitenleiste verwaltet — nicht hier. Dieses Panel steuert nur, ob die Webhook-Plattform überhaupt zuhört." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Las suscripciones por ruta (eventos, plantilla de prompt, destino de entrega) se gestionan en la barra lateral de Webhooks — no aquí. Este panel solo controla si la plataforma de webhooks está escuchando." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les abonnements par route (événements, modèle de prompt, cible de livraison) sont gérés dans la barre latérale Webhooks — pas ici. Ce panneau contrôle uniquement si la plateforme webhook écoute." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ルートごとのサブスクリプション(イベント、プロンプトテンプレート、配信先)は Webhooks サイドバーで管理します — ここではありません。このパネルは webhook プラットフォームが待ち受けるかどうかのみを制御します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "As assinaturas por rota (eventos, template de prompt, alvo de entrega) são gerenciadas na barra lateral de Webhooks — não aqui. Este painel só controla se a plataforma de webhook está escutando." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按路由的订阅(事件、提示模板、投递目标)在 Webhooks 侧边栏中管理 — 不在此处。本面板仅控制 webhook 平台是否监听。" + } + } + } + }, + "Period": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zeitraum" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Período" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Période" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "期間" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Período" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "周期" + } + } + } + }, + "Personalities": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Persönlichkeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Personalidades" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Personnalités" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "パーソナリティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Personalidades" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "人格" + } + } + } + }, + "Pick an MCP server to add.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle einen MCP-Server zum Hinzufügen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige un servidor MCP para añadir." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez un serveur MCP à ajouter." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "追加する MCP サーバーを選択してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha um servidor MCP para adicionar." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择要添加的 MCP 服务器。" + } + } + } + }, + "Pick one from the list, or add a new server from the toolbar.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wähle einen aus der Liste oder füge über die Symbolleiste einen neuen Server hinzu." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Elige uno de la lista o añade un nuevo servidor desde la barra de herramientas." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Choisissez-en un dans la liste ou ajoutez un nouveau serveur depuis la barre d'outils." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リストから選ぶか、ツールバーから新しいサーバーを追加してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Escolha um da lista ou adicione um novo servidor pela barra de ferramentas." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从列表中选择,或从工具栏添加新服务器。" + } + } + } + }, + "Platforms": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Plattformen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Plataformas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Plateformes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プラットフォーム" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Plataformas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "平台" + } + } + } + }, + "Plugins": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Plugins" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Plugins" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Plugins" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プラグイン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Plugins" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "插件" + } + } + } + }, + "Plugins extend hermes with custom tools, providers, or memory backends.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Plugins erweitern hermes um eigene Tools, Anbieter oder Speicher-Backends." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los plugins extienden hermes con herramientas, proveedores o backends de memoria personalizados." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les plugins étendent hermes avec des outils, fournisseurs ou backends mémoire personnalisés." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プラグインは、カスタムツール、プロバイダー、メモリバックエンドで hermes を拡張します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Plugins estendem o hermes com ferramentas, provedores ou backends de memória personalizados." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "插件通过自定义工具、提供方或记忆后端扩展 hermes。" + } + } + } + }, + "Pre-Run Script": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Vorab-Skript" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Script previo a la ejecución" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Script de pré-exécution" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "事前実行スクリプト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Script de pré-execução" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "运行前脚本" + } + } + } + }, + "Preset:": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Voreinstellung:" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Preajuste:" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Préréglage :" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プリセット:" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Predefinição:" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "预设:" + } + } + } + }, + "Probe": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Prüfen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Probar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sonder" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プローブ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sondar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "探测" + } + } + } + }, + "Profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Profil" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Perfil" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Profil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Perfil" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "配置" + } + } + } + }, + "Profiles": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Profile" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Perfiles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Profils" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Perfis" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "配置" + } + } + } + }, + "Project Name": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Projektname" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nombre del proyecto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nom du projet" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクト名" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nome do projeto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "项目名称" + } + } + } + }, + "Project Path": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Projektpfad" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ruta del proyecto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chemin du projet" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクトパス" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Caminho do projeto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "项目路径" + } + } + } + }, + "Projects": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Projekte" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Proyectos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Projets" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Projetos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "项目" + } + } + } + }, + "Prompt": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Prompt" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Prompt" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Prompt" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロンプト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Prompt" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "提示" + } + } + } + }, + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gib eine Git-URL (https://github.com/...) oder ein Kürzel wie `owner/repo` an." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Proporciona una URL de Git (https://github.com/...) o una forma corta como `owner/repo`." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fournissez une URL Git (https://github.com/...) ou un raccourci comme `owner/repo`." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Git URL(https://github.com/...)または `owner/repo` のような省略形を指定してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Forneça uma URL do Git (https://github.com/...) ou um atalho como `owner/repo`." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "提供 Git URL(https://github.com/...)或简写如 `owner/repo`。" + } + } + } + }, + "Provider": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anbieter" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Proveedor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fournisseur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロバイダー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Provedor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "提供方" + } + } + } + }, + "Push to Talk": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Push-to-Talk" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pulsar para hablar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Push-to-Talk" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "押して話す" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pressionar para falar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按住说话" + } + } + } + }, + "Push to talk (Ctrl+B)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Push-to-Talk (Strg+B)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pulsar para hablar (Ctrl+B)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Push-to-Talk (Ctrl+B)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "押して話す (Ctrl+B)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pressionar para falar (Ctrl+B)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按住说话 (Ctrl+B)" + } + } + } + }, + "Quick Commands": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Schnellbefehle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comandos rápidos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Commandes rapides" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "クイックコマンド" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Comandos rápidos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "快捷命令" + } + } + } + }, + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Schnellbefehle sind Shell-Shortcuts, die hermes im Chat als `/command_name` verfügbar macht. Sie stehen unter `quick_commands:` in config.yaml." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los comandos rápidos son atajos de shell que hermes expone en el chat como `/command_name`. Viven bajo `quick_commands:` en config.yaml." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les commandes rapides sont des raccourcis shell que hermes expose dans le chat sous la forme `/command_name`. Elles se trouvent sous `quick_commands:` dans config.yaml." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "クイックコマンドは、hermes がチャットで `/command_name` として公開するシェルショートカットです。config.yaml の `quick_commands:` 以下に記述します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Comandos rápidos são atalhos de shell que o hermes expõe no chat como `/command_name`. Ficam em `quick_commands:` no config.yaml." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "快捷命令是 hermes 在聊天中以 `/command_name` 形式暴露的 shell 快捷方式。它们位于 config.yaml 的 `quick_commands:` 下。" + } + } + } + }, + "Quit Scarf": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Scarf beenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Salir de Scarf" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Quitter Scarf" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf を終了" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sair do Scarf" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "退出 Scarf" + } + } + } + }, + "Raw Config": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Rohkonfiguration" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Configuración en bruto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Configuration brute" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "生の設定" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Configuração bruta" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "原始配置" + } + } + } + }, + "Raw remote output (for debugging)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Rohdaten der Remote-Ausgabe (zum Debuggen)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Salida remota en bruto (para depurar)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sortie distante brute (pour le débogage)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "生のリモート出力(デバッグ用)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Saída remota bruta (para depuração)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "远程原始输出(用于调试)" + } + } + } + }, + "Re-run": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erneut ausführen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Volver a ejecutar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Relancer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "再実行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Re-executar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重新运行" + } + } + } + }, + "Read": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Lesen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Leer" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lire" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "読み取り" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ler" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "读取" + } + } + } + }, + "Reasoning": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Reasoning" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Razonamiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Raisonnement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "推論" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Raciocínio" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "推理" + } + } + } + }, + "Recent Sessions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Letzte Sitzungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sesiones recientes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sessions récentes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最近のセッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sessões recentes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "最近会话" + } + } + } + }, + "Reconnect": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erneut verbinden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reconectar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Reconnecter" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "再接続" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Reconectar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重新连接" + } + } + } + }, + "Recording…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nehme auf…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Grabando…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Enregistrement…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "録音中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Gravando…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "录制中…" + } + } + } + }, + "Refresh": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktualisieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actualizar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Actualiser" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "更新" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atualizar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "刷新" + } + } + } + }, + "Reload": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Neu laden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Recargar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Recharger" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "再読み込み" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Recarregar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重新加载" + } + } + } + }, + "Remote (HTTP)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Remote (HTTP)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Remoto (HTTP)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Distant (HTTP)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモート (HTTP)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remoto (HTTP)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "远程 (HTTP)" + } + } + } + }, + "Remote Diagnostics — %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Remote-Diagnose — %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Diagnósticos remotos — %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Diagnostics distants — %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモート診断 — %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Diagnóstico remoto — %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "远程诊断 — %@" + } + } + } + }, + "Remove": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Entfernen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Quitar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "削除" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "移除" + } + } + } + }, + "Remove %@?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "%@ entfernen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Quitar %@?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer %@ ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ を削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover %@?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "移除 %@?" + } + } + } + }, + "Remove credential for %@?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anmeldedaten für %@ entfernen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Quitar credencial de %@?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer les identifiants pour %@ ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ の資格情報を削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover credencial de %@?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "移除 %@ 的凭证?" + } + } + } + }, + "Remove this server from Scarf.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Diesen Server aus Scarf entfernen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Quitar este servidor de Scarf." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer ce serveur de Scarf." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このサーバーを Scarf から削除します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover este servidor do Scarf." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从 Scarf 中移除此服务器。" + } + } + } + }, + "Remove this server?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Diesen Server entfernen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Quitar este servidor?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer ce serveur ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このサーバーを削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover este servidor?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "移除此服务器?" + } + } + } + }, + "Remove via config.yaml…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Über config.yaml entfernen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Quitar vía config.yaml…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer via config.yaml…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "config.yaml 経由で削除…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover via config.yaml…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "通过 config.yaml 移除…" + } + } + } + }, + "Remove webhook %@?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhook %@ entfernen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Quitar webhook %@?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retirer le webhook %@ ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "webhook %@ を削除しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Remover webhook %@?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "移除 webhook %@?" + } + } + } + }, + "Rename": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Umbenennen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Renombrar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Renommer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "名前を変更" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Renomear" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重命名" + } + } + } + }, + "Rename Profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Profil umbenennen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Renombrar perfil" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Renommer le profil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイル名を変更" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Renomear perfil" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重命名配置" + } + } + } + }, + "Rename Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzung umbenennen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Renombrar sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Renommer la session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッション名を変更" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Renomear sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重命名会话" + } + } + } + }, + "Rename...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Umbenennen..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Renombrar..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Renommer..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "名前を変更..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Renomear..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重命名..." + } + } + } + }, + "Requires: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erfordert: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Requiere: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nécessite : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "必須: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Requer: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "需要:%@" + } + } + } + }, + "Reset Cooldowns": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Cooldowns zurücksetzen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Restablecer enfriamientos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Réinitialiser les temps de repos" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "クールダウンをリセット" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Redefinir cooldowns" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重置冷却" + } + } + } + }, + "Restart": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Neu starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Redémarrer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "再起動" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重启" + } + } + } + }, + "Restart Gateway": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Gateway neu starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar gateway" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Redémarrer le gateway" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Gateway を再起動" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar gateway" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重启 Gateway" + } + } + } + }, + "Restart Hermes": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes neu starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar Hermes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Redémarrer Hermes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes を再起動" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar Hermes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重启 Hermes" + } + } + } + }, + "Restart Now": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Jetzt neu starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar ahora" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Redémarrer maintenant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "今すぐ再起動" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Reiniciar agora" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "立即重启" + } + } + } + }, + "Restore": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wiederherstellen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Restaurar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Restaurer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "復元" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Restaurar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "恢复" + } + } + } + }, + "Restore from backup?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aus Backup wiederherstellen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Restaurar desde copia de seguridad?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Restaurer depuis la sauvegarde ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "バックアップから復元しますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Restaurar a partir do backup?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从备份恢复?" + } + } + } + }, + "Restore…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wiederherstellen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Restaurar…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Restaurer…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "復元…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Restaurar…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "恢复…" + } + } + } + }, + "Result": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ergebnis" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Resultado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Résultat" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "結果" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Resultado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "结果" + } + } + } + }, + "Resume": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Fortsetzen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reanudar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Reprendre" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "再開" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Retomar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "继续" + } + } + } + }, + "Resume Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzung fortsetzen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reanudar sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Reprendre la session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションを再開" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Retomar sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "恢复会话" + } + } + } + }, + "Retry": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erneut versuchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Reintentar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Réessayer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "再試行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tentar novamente" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "重试" + } + } + } + }, + "Return to Active Session (%@...)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zurück zur aktiven Sitzung (%@...)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Volver a sesión activa (%@...)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retour à la session active (%@...)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブセッションに戻る (%@...)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voltar à sessão ativa (%@...)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "返回活跃会话 (%@...)" + } + } + } + }, + "Reveal": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Revelar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示" + } + } + } + }, + "Revoke": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Widerrufen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Revocar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Révoquer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "取り消し" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Revogar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "撤销" + } + } + } + }, + "Rich Chat": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Rich Chat" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Chat enriquecido" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chat enrichi" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リッチチャット" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Chat avançado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "富文本聊天" + } + } + } + }, + "Run Diagnostics…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Diagnose ausführen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutar diagnósticos…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lancer les diagnostics…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "診断を実行…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executar diagnóstico…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "运行诊断…" + } + } + } + }, + "Run Dump": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dump ausführen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutar dump" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exécuter Dump" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ダンプを実行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executar dump" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "运行 Dump" + } + } + } + }, + "Run Now": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Jetzt ausführen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutar ahora" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exécuter maintenant" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "今すぐ実行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executar agora" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "立即运行" + } + } + } + }, + "Run Setup in Terminal": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Einrichtung im Terminal ausführen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutar instalación en el terminal" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lancer l'installation dans le terminal" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナルでセットアップを実行" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executar instalação no terminal" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在终端中运行设置" + } + } + } + }, + "Run `hermes memory setup` in Terminal for full provider configuration.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Führe `hermes memory setup` im Terminal aus für die vollständige Anbieter-Konfiguration." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecuta `hermes memory setup` en el terminal para la configuración completa del proveedor." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exécutez `hermes memory setup` dans le terminal pour la configuration complète du fournisseur." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロバイダーの完全な設定には、ターミナルで `hermes memory setup` を実行してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Execute `hermes memory setup` no terminal para a configuração completa do provedor." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在终端中运行 `hermes memory setup` 以完成完整的提供方配置。" + } + } + } + }, + "Run remote diagnostics — check exactly which files are readable on this server.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Remote-Diagnose ausführen — prüfe genau, welche Dateien auf diesem Server lesbar sind." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutar diagnósticos remotos — comprueba exactamente qué archivos se pueden leer en este servidor." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Lancer les diagnostics distants — vérifier exactement quels fichiers sont lisibles sur ce serveur." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモート診断を実行 — このサーバーで読み取れるファイルを正確に確認します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executar diagnóstico remoto — verifica exatamente quais arquivos podem ser lidos neste servidor." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "运行远程诊断 — 准确检查此服务器上哪些文件可读。" + } + } + } + }, + "Running a single shell session on %@ that exercises every path Scarf reads…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Führe eine einzelne Shell-Sitzung auf %@ aus, die jeden Pfad durchläuft, den Scarf liest…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutando una sola sesión de shell en %@ que recorre cada ruta que lee Scarf…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exécution d'une session shell unique sur %@ qui teste chaque chemin que Scarf lit…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf が読み取るすべてのパスを確認する単一のシェルセッションを %@ で実行中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executando uma única sessão de shell em %@ que percorre todos os caminhos que o Scarf lê…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在 %@ 上运行单一 shell 会话,测试 Scarf 读取的每个路径…" + } + } + } + }, + "Running checks…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Führe Prüfungen aus…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ejecutando comprobaciones…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Exécution des vérifications…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "チェックを実行中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Executando verificações…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "正在运行检查…" + } + } + } + }, + "SILENT": {}, + "SOUL.md": {}, + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "SOUL.md beschreibt Stimme, Werte und Persönlichkeit des Agents unter ~/.hermes/SOUL.md. Sie wird in den Kontext jeder Sitzung injiziert." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "SOUL.md describe la voz, valores y personalidad del agente en ~/.hermes/SOUL.md. Se inyecta en el contexto de cada sesión." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "SOUL.md décrit la voix, les valeurs et la personnalité de l'agent dans ~/.hermes/SOUL.md. Il est injecté dans le contexte de chaque session." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "SOUL.md は ~/.hermes/SOUL.md でエージェントの話し方、価値観、パーソナリティを記述します。これはすべてのセッションのコンテキストに挿入されます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O SOUL.md descreve a voz, os valores e a personalidade do agente em ~/.hermes/SOUL.md. Ele é injetado no contexto de cada sessão." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "SOUL.md 位于 ~/.hermes/SOUL.md,描述 agent 的语气、价值观与人格。它会被注入到每个会话的上下文中。" + } + } + } + }, + "SSH works but %@. Click for diagnostics.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "SSH funktioniert, aber %@. Für Diagnose klicken." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "SSH funciona pero %@. Haz clic para ver diagnósticos." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "SSH fonctionne mais %@. Cliquez pour les diagnostics." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "SSH は動作していますが %@。診断を表示するにはクリックしてください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O SSH funciona, mas %@. Clique para ver diagnósticos." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "SSH 正常,但 %@。点击查看诊断。" + } + } + } + }, + "Save": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Speichern" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Guardar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Enregistrer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "保存" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Salvar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "保存" + } + } + } + }, + "Scarf": {}, + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Scarf fragt nie nach Passphrasen. Füge deinen Schlüssel im Terminal zum ssh-agent hinzu und klicke dann auf Erneut versuchen. Falls dein Schlüssel nicht `id_ed25519` ist, tausche den Pfad:" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Scarf nunca pide frases de contraseña. Añade tu clave a ssh-agent en el terminal y haz clic en Reintentar. Si tu clave no es `id_ed25519`, cambia la ruta:" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Scarf ne demande jamais de phrases secrètes. Ajoutez votre clé à ssh-agent dans le terminal, puis cliquez sur Réessayer. Si votre clé n'est pas `id_ed25519`, changez le chemin :" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf はパスフレーズを要求しません。ターミナルで ssh-agent にキーを追加してから、再試行をクリックしてください。キーが `id_ed25519` でない場合はパスを変更してください:" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O Scarf nunca pede frases secretas. Adicione sua chave ao ssh-agent no terminal e clique em Tentar novamente. Se sua chave não for `id_ed25519`, troque o caminho:" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Scarf 永远不会提示输入密码短语。请在终端中将密钥添加到 ssh-agent,然后点击重试。如果你的密钥不是 `id_ed25519`,请替换路径:" + } + } + } + }, + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Scarf führt diese über eine einzige SSH-Sitzung aus, die der Shell entspricht, aus der dein Dashboard liest. Eine grüne Zeile hier bedeutet also, dass Scarf die Datei zur Laufzeit tatsächlich lesen kann." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Scarf ejecuta estos comandos en una única sesión SSH idéntica al shell desde el que lee tu panel, por lo que una fila en verde significa que Scarf puede leer ese archivo en tiempo de ejecución." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Scarf exécute ces commandes sur une session SSH unique identique au shell utilisé par votre tableau de bord. Une ligne verte signifie donc que Scarf peut réellement lire ce fichier à l'exécution." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf はダッシュボードが読み取るシェルと同じ単一の SSH セッションでこれらを実行します。ここで緑色の行は、Scarf が実行時にそのファイルを実際に読み取れることを意味します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O Scarf executa esses comandos em uma única sessão SSH idêntica ao shell usado pelo seu painel. Uma linha verde aqui significa que o Scarf consegue ler aquele arquivo em tempo de execução." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Scarf 在单一 SSH 会话中运行这些命令,该会话与仪表盘读取的 shell 一致。因此这里绿色行表示 Scarf 在运行时确实可以读取该文件。" + } + } + } + }, + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Scarf nutzt ssh-agent zur Authentifizierung. Hat dein Schlüssel eine Passphrase, führe vor dem Verbinden `ssh-add` aus — Scarf fragt oder speichert keine Passphrasen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Scarf usa ssh-agent para autenticarse. Si tu clave tiene frase de contraseña, ejecuta `ssh-add` antes de conectarte — Scarf nunca pide ni almacena frases de contraseña." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Scarf utilise ssh-agent pour l'authentification. Si votre clé a une phrase secrète, exécutez `ssh-add` avant de vous connecter — Scarf ne demande ni ne stocke jamais de phrases secrètes." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf は認証に ssh-agent を使用します。キーにパスフレーズがある場合は、接続前に `ssh-add` を実行してください — Scarf はパスフレーズを要求することも保存することもありません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O Scarf usa ssh-agent para autenticação. Se sua chave tiver uma frase secreta, rode `ssh-add` antes de conectar — o Scarf nunca pede nem armazena frases secretas." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Scarf 使用 ssh-agent 进行认证。如果你的密钥带有密码短语,请在连接前运行 `ssh-add` — Scarf 永远不会提示或存储密码短语。" + } + } + } + }, + "Scarf — %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Scarf — %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Scarf — %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Scarf — %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Scarf — %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Scarf — %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Scarf — %@" + } + } + } + }, + "Search": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Suchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Buscar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Rechercher" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "検索" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pesquisar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "搜索" + } + } + } + }, + "Search Results (%lld)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Suchergebnisse (%lld)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Resultados de búsqueda (%lld)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Résultats de la recherche (%lld)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "検索結果 (%lld)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Resultados da pesquisa (%lld)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "搜索结果 (%lld)" + } + } + } + }, + "Search messages...": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nachrichten suchen..." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Buscar mensajes..." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Rechercher des messages..." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "メッセージを検索..." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pesquisar mensagens..." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "搜索消息..." + } + } + } + }, + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Durchsuche oder browse Skills, die in Registries wie skills.sh, GitHub und dem offiziellen Hub veröffentlicht sind." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Busca o examina habilidades publicadas en registros como skills.sh, GitHub y el hub oficial." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Recherchez ou parcourez les compétences publiées sur des registres comme skills.sh, GitHub et le hub officiel." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "skills.sh、GitHub、公式ハブなどのレジストリに公開されたスキルを検索または参照します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pesquise ou navegue por habilidades publicadas em registros como skills.sh, GitHub e o hub oficial." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "搜索或浏览发布到 skills.sh、GitHub 和官方 Hub 等注册表的技能。" + } + } + } + }, + "Search registries": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Registries durchsuchen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Buscar en registros" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Rechercher dans les registres" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "レジストリを検索" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pesquisar registros" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "搜索注册表" + } + } + } + }, + "Search…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Suchen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Buscar…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Rechercher…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "検索…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pesquisar…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "搜索…" + } + } + } + }, + "Select": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择" + } + } + } + }, + "Select Model": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Modell auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar modelo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner le modèle" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モデルを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar modelo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择模型" + } + } + } + }, + "Select a Job": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Job auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar una tarea" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner une tâche" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ジョブを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar uma tarefa" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择任务" + } + } + } + }, + "Select a Profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Profil auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar un perfil" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner un profil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロファイルを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar um perfil" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择配置" + } + } + } + }, + "Select a Project": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Projekt auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar un proyecto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner un projet" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プロジェクトを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar um projeto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择项目" + } + } + } + }, + "Select a Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzung auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar una sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner une session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar uma sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择会话" + } + } + } + }, + "Select a Skill": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Skill auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar una habilidad" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner une compétence" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "スキルを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar uma habilidade" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择技能" + } + } + } + }, + "Select a Tool Call": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Tool-Aufruf auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar una llamada a herramienta" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner un appel d'outil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ツール呼び出しを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar uma chamada de ferramenta" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择工具调用" + } + } + } + }, + "Select an MCP Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "MCP-Server auswählen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seleccionar un servidor MCP" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sélectionner un serveur MCP" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "MCP サーバーを選択" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Selecionar um servidor MCP" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "选择 MCP 服务器" + } + } + } + }, + "Send message (Enter)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nachricht senden (Enter)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Enviar mensaje (Intro)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Envoyer le message (Entrée)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "メッセージを送信 (Enter)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Enviar mensagem (Enter)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "发送消息 (Enter)" + } + } + } + }, + "Series": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Serie" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Serie" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Série" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "系列" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Série" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "系列" + } + } + } + }, + "Server No Longer Exists": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server existiert nicht mehr" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El servidor ya no existe" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le serveur n'existe plus" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバーは存在しません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Servidor não existe mais" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务器已不存在" + } + } + } + }, + "Server name": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Servername" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Nombre del servidor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Nom du serveur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバー名" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Nome do servidor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务器名称" + } + } + } + }, + "Servers": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Servidores" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Serveurs" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Servidores" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务器" + } + } + } + }, + "Service": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dienst" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Servicio" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Service" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サービス" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Serviço" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务" + } + } + } + }, + "Service definition stale": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dienstdefinition veraltet" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Definición de servicio obsoleta" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Définition de service obsolète" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サービス定義が古くなっています" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Definição de serviço desatualizada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务定义已过期" + } + } + } + }, + "Session": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "会话" + } + } + } + }, + "Session title": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzungstitel" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Título de sesión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Titre de session" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッションタイトル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Título da sessão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "会话标题" + } + } + } + }, + "Sessions": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sesiones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sessions" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッション" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sessões" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "会话" + } + } + } + }, + "Settings": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Einstellungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ajustes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Réglages" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "設定" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Configurações" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "设置" + } + } + } + }, + "Setup": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Einrichtung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Configuración" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Configuration" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セットアップ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Configuração" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "设置" + } + } + } + }, + "Share Debug Report…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Debug-Bericht teilen…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Compartir informe de depuración…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Partager le rapport de débogage…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デバッグレポートを共有…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Compartilhar relatório de depuração…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "分享调试报告…" + } + } + } + }, + "Shell Command": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Shell-Befehl" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comando de shell" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Commande shell" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "シェルコマンド" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Comando de shell" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Shell 命令" + } + } + } + }, + "Show": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mostrar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示" + } + } + } + }, + "Show Output": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ausgabe anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar salida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher la sortie" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "出力を表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mostrar saída" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示输出" + } + } + } + }, + "Show all %lld lines": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle %lld Zeilen anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar las %lld líneas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher toutes les %lld lignes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべての %lld 行を表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mostrar todas as %lld linhas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示全部 %lld 行" + } + } + } + }, + "Show details": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Details anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar detalles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher les détails" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "詳細を表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mostrar detalhes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示详情" + } + } + } + }, + "Show less": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Weniger anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar menos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher moins" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "折りたたむ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mostrar menos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "收起" + } + } + } + }, + "Show values": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Werte anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Mostrar valores" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Afficher les valeurs" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "値を表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mostrar valores" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示值" + } + } + } + }, + "Signal Setup Docs": {}, + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Die Signal-Integration benötigt lokal installiertes signal-cli (Java-basiert). Kopple diesen Mac als Signal-Gerät und lasse den Daemon laufen, damit hermes Nachrichten senden/empfangen kann." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La integración con Signal requiere signal-cli (basado en Java) instalado localmente. Vincula este Mac como dispositivo Signal y mantén el demonio en ejecución para que hermes envíe/reciba mensajes." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L'intégration Signal nécessite signal-cli (basé sur Java) installé localement. Associez ce Mac comme appareil Signal, puis laissez le démon fonctionner pour que hermes puisse envoyer/recevoir des messages." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Signal 連携にはローカルにインストールされた signal-cli(Java 製)が必要です。この Mac を Signal デバイスとしてリンクしてから、デーモンを動作させ続けて hermes がメッセージを送受信できるようにします。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "A integração com Signal requer signal-cli (baseado em Java) instalado localmente. Vincule este Mac como dispositivo Signal e mantenha o daemon em execução para o hermes enviar/receber mensagens." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Signal 集成需要在本地安装 signal-cli(基于 Java)。将此 Mac 关联为 Signal 设备,然后保持守护进程运行,以便 hermes 收发消息。" + } + } + } + }, + "Site": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Seite" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sitio" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Site" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サイト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Site" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "站点" + } + } + } + }, + "Skills": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Skills" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Habilidades" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Compétences" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "スキル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Habilidades" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "技能" + } + } + } + }, + "Skills (%lld)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Skills (%lld)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Habilidades (%lld)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Compétences (%lld)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "スキル (%lld)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Habilidades (%lld)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "技能 (%lld)" + } + } + } + }, + "Slack Setup Docs": {}, + "Source": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Quelle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Origen" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Source" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ソース" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Origem" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "来源" + } + } + } + }, + "Start": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Iniciar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démarrer" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "開始" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Iniciar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "启动" + } + } + } + }, + "Start Daemon": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Daemon starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Iniciar demonio" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démarrer le démon" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デーモンを開始" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Iniciar daemon" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "启动守护进程" + } + } + } + }, + "Start Hermes": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Iniciar Hermes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démarrer Hermes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes を開始" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Iniciar Hermes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "启动 Hermes" + } + } + } + }, + "Start OAuth": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "OAuth starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Iniciar OAuth" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démarrer OAuth" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "OAuth を開始" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Iniciar OAuth" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "开始 OAuth" + } + } + } + }, + "Start Pairing": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kopplung starten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Iniciar emparejamiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démarrer l'appairage" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ペアリングを開始" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Iniciar pareamento" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "开始配对" + } + } + } + }, + "Start a new session or resume an existing one from the Session menu above.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Starte eine neue Sitzung oder setze eine bestehende aus dem Sitzungsmenü oben fort." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Inicia una nueva sesión o reanuda una existente desde el menú Sesión de arriba." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Démarrez une nouvelle session ou reprenez-en une existante depuis le menu Session ci-dessus." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "上のセッションメニューから新しいセッションを開始するか、既存のセッションを再開してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Inicie uma nova sessão ou retome uma existente no menu Sessão acima." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "从上方会话菜单启动新会话或恢复已有会话。" + } + } + } + }, + "Status": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Status" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Estado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Statut" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ステータス" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Status" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "状态" + } + } + } + }, + "Stop": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Stoppen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Detener" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Arrêter" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "停止" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Parar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "停止" + } + } + } + }, + "Stop Hermes": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hermes stoppen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Detener Hermes" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Arrêter Hermes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Hermes を停止" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Parar Hermes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "停止 Hermes" + } + } + } + }, + "Subagent": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sub-Agent" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Subagente" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sous-agent" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サブエージェント" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Subagente" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "子 agent" + } + } + } + }, + "Subagent Sessions (%lld)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sub-Agent-Sitzungen (%lld)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sesiones de subagente (%lld)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sessions de sous-agent (%lld)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サブエージェントセッション (%lld)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sessões de subagente (%lld)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "子 agent 会话 (%lld)" + } + } + } + }, + "Submit": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Absenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Enviar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Soumettre" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "送信" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Enviar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "提交" + } + } + } + }, + "Subscribe": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Abonnieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Suscribir" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "S'abonner" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "購読" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Assinar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "订阅" + } + } + } + }, + "Succeeded": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erfolgreich" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Exitoso" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Réussi" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "成功" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sucesso" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "成功" + } + } + } + }, + "Switch to This Profile": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zu diesem Profil wechseln" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cambiar a este perfil" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Basculer sur ce profil" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このプロファイルに切り替え" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Mudar para este perfil" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "切换到此配置" + } + } + } + }, + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Das Wechseln des aktiven Profils ändert das von hermes verwendete `~/.hermes`-Verzeichnis. Starte Scarf nach dem Wechsel neu, damit es aus den Dateien des neuen Profils liest." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cambiar el perfil activo cambia el directorio `~/.hermes` que usa hermes. Reinicia Scarf tras cambiar para que relea los archivos del nuevo perfil." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Changer de profil actif modifie le répertoire `~/.hermes` utilisé par hermes. Redémarrez Scarf après le changement pour qu'il relise les fichiers du nouveau profil." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなプロファイルを切り替えると、hermes が使用する `~/.hermes` ディレクトリが変わります。切り替え後、Scarf を再起動して新しいプロファイルのファイルを読み込み直してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Trocar o perfil ativo muda o diretório `~/.hermes` usado pelo hermes. Reinicie o Scarf após trocar para ele reler os arquivos do novo perfil." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "切换当前配置会改变 hermes 使用的 `~/.hermes` 目录。切换后请重启 Scarf,以便它从新配置的文件中重新读取。" + } + } + } + }, + "TTS Off": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "TTS aus" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "TTS apagado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "TTS désactivé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "TTS オフ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "TTS desligado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "TTS 关" + } + } + } + }, + "TTS On": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "TTS an" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "TTS encendido" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "TTS activé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "TTS オン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "TTS ligado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "TTS 开" + } + } + } + }, + "Telegram Setup Docs": {}, + "Terminal": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Terminal" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Terminal" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Terminal" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターミナル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Terminal" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "终端" + } + } + } + }, + "Test": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Testen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Probar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tester" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "テスト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Testar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "测试" + } + } + } + }, + "Test All": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle testen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Probar todo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tout tester" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべてテスト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Testar todos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "测试全部" + } + } + } + }, + "Test Connection": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verbindung testen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Probar conexión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tester la connexion" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "接続テスト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Testar conexão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "测试连接" + } + } + } + }, + "Test failed": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Test fehlgeschlagen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Prueba fallida" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Test échoué" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "テスト失敗" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Teste falhou" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "测试失败" + } + } + } + }, + "Test passed": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Test bestanden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Prueba superada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Test réussi" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "テスト成功" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Teste aprovado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "测试通过" + } + } + } + }, + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Der Agent hat bisher keine Slash-Befehle angeboten. Weitertippen, um als Nachricht zu senden, oder Esc drücken." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El agente aún no ha anunciado comandos slash. Sigue escribiendo para enviar como mensaje, o pulsa Esc." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L'agent n'a pas encore annoncé de commandes slash. Continuez à taper pour envoyer en tant que message, ou appuyez sur Échap." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エージェントはまだスラッシュコマンドを提示していません。入力を続けるとメッセージとして送信されます。キャンセルするには Esc を押してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O agente ainda não anunciou nenhum comando slash. Continue digitando para enviar como mensagem, ou pressione Esc." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "agent 尚未公布任何斜杠命令。继续输入作为消息发送,或按 Esc。" + } + } + } + }, + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Der SSH-Fingerabdruck des Remote passt nicht mehr zu dem, was deine `~/.ssh/known_hosts`-Datei erwartet. Meist bedeutet das, dass der Remote neu installiert wurde — seltener, dass jemand die Verbindung abfängt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La huella SSH del remoto ya no coincide con lo que tu archivo `~/.ssh/known_hosts` esperaba. Normalmente significa que el remoto se reinstaló — o, con menos frecuencia, que alguien intercepta la conexión." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L'empreinte SSH de l'hôte distant ne correspond plus à ce qu'attendait votre fichier `~/.ssh/known_hosts`. Cela signifie généralement que l'hôte distant a été réinstallé — ou, plus rarement, que quelqu'un intercepte la connexion." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "リモートの SSH フィンガープリントが `~/.ssh/known_hosts` の期待値と一致しません。通常はリモートが再インストールされたことを意味します — まれに通信が傍受されている可能性もあります。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "A impressão SSH do remoto não corresponde mais ao que seu arquivo `~/.ssh/known_hosts` esperava. Normalmente isso significa que o remoto foi reinstalado — ou, mais raramente, que alguém está interceptando a conexão." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "远端的 SSH 指纹与你 `~/.ssh/known_hosts` 文件中预期的不再匹配。这通常意味着远端已重装 — 较少见的情况是有人在拦截连接。" + } + } + } + }, + "The server this window was opened with has been removed from your registry.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Der Server, mit dem dieses Fenster geöffnet wurde, wurde aus deiner Registrierung entfernt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El servidor con el que se abrió esta ventana se ha eliminado de tu registro." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le serveur avec lequel cette fenêtre a été ouverte a été retiré de votre registre." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このウィンドウを開いたサーバーはレジストリから削除されました。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O servidor com o qual esta janela foi aberta foi removido do seu registro." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "打开此窗口所用的服务器已从你的注册表中移除。" + } + } + } + }, + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Die SSH-Konfiguration des Servers wird aus Scarf entfernt. Deine Remote-Dateien bleiben unangetastet." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La configuración SSH del servidor se elimina de Scarf. Tus archivos remotos no se tocan." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "La configuration SSH du serveur est supprimée de Scarf. Vos fichiers distants ne sont pas modifiés." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバーの SSH 設定は Scarf から削除されます。リモートファイルは変更されません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "A configuração SSH do servidor é removida do Scarf. Seus arquivos remotos permanecem intocados." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务器的 SSH 配置已从 Scarf 中移除。你的远程文件未被改动。" + } + } + } + }, + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Das Terminal ist ein echtes TTY — mit ⌘V einfügen, Return drücken und warten, bis der Prozess mit \"login succeeded\" endet." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "El terminal es un TTY real — pega con ⌘V, pulsa Intro y espera a que el proceso termine con «login succeeded»." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Le terminal est un véritable TTY — collez avec ⌘V, appuyez sur Retour et attendez que le processus se termine avec « login succeeded »." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このターミナルは実際の TTY です — ⌘V で貼り付け、Return を押して、プロセスが「login succeeded」で終了するのを待ってください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O terminal é um TTY real — cole com ⌘V, pressione Return e aguarde o processo encerrar com \"login succeeded\"." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "终端是真正的 TTY — 使用 ⌘V 粘贴,按 Return,等待进程以 \"login succeeded\" 退出。" + } + } + } + }, + "These list fields must be edited directly in config.yaml.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Diese Listenfelder müssen direkt in config.yaml bearbeitet werden." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Estos campos de lista deben editarse directamente en config.yaml." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ces champs liste doivent être modifiés directement dans config.yaml." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これらのリストフィールドは config.yaml で直接編集する必要があります。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Esses campos de lista precisam ser editados diretamente em config.yaml." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这些列表字段必须直接在 config.yaml 中编辑。" + } + } + } + }, + "This provider has no catalogued models.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Für diesen Anbieter sind keine katalogisierten Modelle vorhanden." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Este proveedor no tiene modelos catalogados." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Ce fournisseur n'a pas de modèles catalogués." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このプロバイダーにはカタログ化されたモデルがありません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Este provedor não tem modelos catalogados." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "此提供方没有已登记的模型。" + } + } + } + }, + "This removes the credential from hermes. The upstream provider key is not revoked.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit werden die Anmeldedaten aus hermes entfernt. Der Schlüssel beim Upstream-Anbieter wird nicht widerrufen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto quita la credencial de hermes. La clave del proveedor original no se revoca." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela retire les identifiants de hermes. La clé chez le fournisseur amont n'est pas révoquée." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これにより hermes から資格情報が削除されます。上流プロバイダーのキーは取り消されません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso remove a credencial do hermes. A chave do provedor original não é revogada." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这将从 hermes 中移除该凭证。上游提供方的密钥不会被撤销。" + } + } + } + }, + "This removes the profile directory and all data within it. This cannot be undone.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit werden das Profilverzeichnis und alle darin enthaltenen Daten entfernt. Dies kann nicht rückgängig gemacht werden." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto elimina el directorio del perfil y todos sus datos. No se puede deshacer." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela supprime le répertoire du profil et toutes les données qu'il contient. Action irréversible." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これによりプロファイルディレクトリとその中のすべてのデータが削除されます。元に戻せません。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso remove o diretório do perfil e todos os dados dentro dele. Não pode ser desfeito." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这将移除配置目录及其中所有数据。此操作无法撤销。" + } + } + } + }, + "This removes the scheduled job permanently.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit wird der geplante Job dauerhaft entfernt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto elimina la tarea programada de forma permanente." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela supprime définitivement la tâche planifiée." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これによりスケジュールされたジョブが恒久的に削除されます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso remove a tarefa agendada permanentemente." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这将永久移除该定时任务。" + } + } + } + }, + "This removes the server from config.yaml and deletes any OAuth token.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit wird der Server aus config.yaml entfernt und jedes OAuth-Token gelöscht." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto elimina el servidor de config.yaml y borra cualquier token OAuth." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela retire le serveur de config.yaml et supprime tout jeton OAuth." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これにより config.yaml からサーバーが削除され、OAuth トークンも削除されます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso remove o servidor do config.yaml e apaga qualquer token OAuth." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这将从 config.yaml 中移除服务器并删除任何 OAuth 令牌。" + } + } + } + }, + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit werden Logs, Konfiguration (mit geschwärzten Secrets) und Systeminfos zur Support-Infrastruktur von Nous Research hochgeladen. Prüfe die Ausgabe unten, bevor du die zurückgegebene URL teilst." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto sube registros, configuración (con secretos redactados) e información del sistema a la infraestructura de soporte de Nous Research. Revisa la salida antes de compartir la URL devuelta." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela téléverse les journaux, la configuration (secrets masqués) et les infos système vers l'infrastructure de support Nous Research. Vérifiez la sortie ci-dessous avant de partager l'URL retournée." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これにより、ログ、設定(シークレットはマスク済み)、システム情報が Nous Research のサポートインフラにアップロードされます。返された URL を共有する前に下の出力を確認してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso envia logs, configuração (com segredos mascarados) e informações do sistema para a infraestrutura de suporte da Nous Research. Revise a saída antes de compartilhar a URL retornada." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这会将日志、配置(密钥已脱敏)和系统信息上传到 Nous Research 支持基础设施。分享返回的 URL 前请查看下方输出。" + } + } + } + }, + "This will overwrite files under ~/.hermes/ with the archive contents.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit werden Dateien unter ~/.hermes/ mit dem Archivinhalt überschrieben." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto sobrescribirá archivos bajo ~/.hermes/ con el contenido del archivo." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela écrasera les fichiers sous ~/.hermes/ avec le contenu de l'archive." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これにより ~/.hermes/ 以下のファイルがアーカイブの内容で上書きされます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso sobrescreverá arquivos em ~/.hermes/ com o conteúdo do arquivo." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这将使用归档内容覆盖 ~/.hermes/ 下的文件。" + } + } + } + }, + "This will permanently delete the session and all its messages.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Damit werden die Sitzung und alle ihre Nachrichten dauerhaft gelöscht." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esto eliminará permanentemente la sesión y todos sus mensajes." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Cela supprimera définitivement la session et tous ses messages." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これによりセッションとそのすべてのメッセージが恒久的に削除されます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Isso excluirá permanentemente a sessão e todas as suas mensagens." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "这将永久删除该会话及其所有消息。" + } + } + } + }, + "Timeout: %llds (%@)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Timeout: %1$lld s (%2$@)" + } + }, + "en": { + "stringUnit": { + "state": "new", + "value": "Timeout: %1$llds (%2$@)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tiempo de espera: %1$lld s (%2$@)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Délai : %1$lld s (%2$@)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "タイムアウト: %1$lld 秒 (%2$@)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tempo limite: %1$lld s (%2$@)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "超时:%1$lld 秒 (%2$@)" + } + } + } + }, + "Timeouts": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Timeouts" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tiempos de espera" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Délais" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "タイムアウト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tempos limite" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "超时" + } + } + } + }, + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Um die Passphrase-Abfrage bei jedem Neustart zu überspringen, füge `--apple-use-keychain` hinzu, um sie im macOS-Schlüsselbund zu cachen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Para evitar que pida la frase de contraseña en cada reinicio, añade `--apple-use-keychain` para almacenarla en el llavero de macOS." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Pour éviter la demande de phrase secrète à chaque redémarrage, ajoutez `--apple-use-keychain` pour la mettre en cache dans le trousseau macOS." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "毎回の再起動時にパスフレーズのプロンプトをスキップするには、`--apple-use-keychain` を追加して macOS キーチェーンにキャッシュしてください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Para pular a solicitação de frase secreta a cada reinicialização, adicione `--apple-use-keychain` para armazená-la no Keychain do macOS." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "要跳过每次重启时的密码短语提示,添加 `--apple-use-keychain` 以将其缓存到 macOS Keychain 中。" + } + } + } + }, + "Toggle text-to-speech (/voice tts)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Text-to-Speech umschalten (/voice tts)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Alternar texto a voz (/voice tts)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Basculer la synthèse vocale (/voice tts)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "テキスト読み上げを切り替え (/voice tts)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Alternar texto-para-fala (/voice tts)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "切换文字转语音 (/voice tts)" + } + } + } + }, + "Toggle voice mode (/voice)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sprachmodus umschalten (/voice)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Alternar modo de voz (/voice)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Basculer le mode vocal (/voice)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "音声モードを切り替え (/voice)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Alternar modo de voz (/voice)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "切换语音模式 (/voice)" + } + } + } + }, + "Token on disk. Clear to re-authenticate next time the gateway connects.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Token auf der Festplatte. Löschen, damit sich das Gateway beim nächsten Verbinden neu authentifiziert." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Token en disco. Bórralo para que se vuelva a autenticar en la próxima conexión del gateway." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Jeton sur disque. Effacez-le pour forcer une nouvelle authentification à la prochaine connexion du gateway." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "トークンはディスク上にあります。消去すると、次回 gateway が接続する際に再認証します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Token no disco. Limpe para reautenticar na próxima vez que o gateway conectar." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "令牌已保存到磁盘。清除后,gateway 下次连接时将重新认证。" + } + } + } + }, + "Tool Approval Required": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Tool-Genehmigung erforderlich" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Se requiere aprobación de herramienta" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Approbation d'outil requise" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ツールの承認が必要" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aprovação de ferramenta necessária" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "需要工具批准" + } + } + } + }, + "Tool Filters": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Tool-Filter" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtros de herramientas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtres d'outils" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ツールフィルタ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtros de ferramentas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "工具过滤器" + } + } + } + }, + "Tools": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Tools" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Herramientas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Outils" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ツール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ferramentas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "工具" + } + } + } + }, + "Top Tools": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Top-Tools" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Herramientas principales" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Outils principaux" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "トップツール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Principais ferramentas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "常用工具" + } + } + } + }, + "URL": {}, + "Uninstall": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Deinstallieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Desinstalar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Désinstaller" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アンインストール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Desinstalar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "卸载" + } + } + } + }, + "Unknown: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Unbekannt: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Desconocido: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Inconnu : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "不明: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Desconhecido: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未知:%@" + } + } + } + }, + "Update": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktualisieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actualizar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mettre à jour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "更新" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atualizar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "更新" + } + } + } + }, + "Update All": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle aktualisieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actualizar todo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tout mettre à jour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべて更新" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atualizar todos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "全部更新" + } + } + } + }, + "Updated: %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktualisiert: %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actualizado: %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mis à jour : %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "更新日時: %@" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atualizado: %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已更新:%@" + } + } + } + }, + "Updates": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Updates" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Actualizaciones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mises à jour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アップデート" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atualizações" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "更新" + } + } + } + }, + "Upload": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hochladen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Subir" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Téléverser" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アップロード" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Enviar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "上传" + } + } + } + }, + "Upload debug report?": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Debug-Bericht hochladen?" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "¿Subir informe de depuración?" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Téléverser le rapport de débogage ?" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デバッグレポートをアップロードしますか?" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Enviar relatório de depuração?" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "上传调试报告?" + } + } + } + }, + "Usage Stats": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Nutzungsstatistik" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Estadísticas de uso" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Statistiques d'utilisation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "使用統計" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Estatísticas de uso" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "使用统计" + } + } + } + }, + "Use": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verwenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Usar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utiliser" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "使用" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Usar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "使用" + } + } + } + }, + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verwende ein Modell, das nicht im Katalog ist. Hermes akzeptiert jede Zeichenkette, die der Anbieter erkennt, inklusive anbieter-präfixierter Formen wie \"openrouter/anthropic/claude-opus-4.6\"." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Usa un modelo que no esté en el catálogo. Hermes acepta cualquier cadena que reconozca el proveedor, incluidas formas con prefijo como «openrouter/anthropic/claude-opus-4.6»." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utilisez un modèle absent du catalogue. Hermes accepte toute chaîne reconnue par le fournisseur, y compris des formes préfixées comme « openrouter/anthropic/claude-opus-4.6 »." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "カタログにないモデルを使用します。Hermes はプロバイダーが認識する任意の文字列を受け付けます(例: \"openrouter/anthropic/claude-opus-4.6\" のようなプロバイダープレフィックス形式も可)。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Use um modelo fora do catálogo. O Hermes aceita qualquer string reconhecida pelo provedor, inclusive formas com prefixo do provedor como \"openrouter/anthropic/claude-opus-4.6\"." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "使用未登记在目录中的模型。Hermes 接受提供方识别的任何字符串,包括带有提供方前缀的形式,如 \"openrouter/anthropic/claude-opus-4.6\"。" + } + } + } + }, + "Use this": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Dieses verwenden" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Usar este" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utiliser celui-ci" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "これを使用" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Usar este" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "使用此项" + } + } + } + }, + "Use {dot.notation} to reference fields in the webhook payload.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verwende {dot.notation}, um Felder im Webhook-Payload zu referenzieren." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Usa {dot.notation} para referenciar campos del payload del webhook." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utilisez {dot.notation} pour référencer des champs dans la charge utile du webhook." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "webhook ペイロードのフィールドを参照するには {dot.notation} を使用します。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Use {dot.notation} para referenciar campos no payload do webhook." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "使用 {dot.notation} 引用 webhook payload 中的字段。" + } + } + } + }, + "Used as the YAML key. Lowercase, no spaces.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Wird als YAML-Schlüssel verwendet. Kleinbuchstaben, keine Leerzeichen." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Se usa como clave YAML. Minúsculas, sin espacios." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Utilisé comme clé YAML. Minuscules, sans espaces." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "YAML キーとして使用されます。小文字・空白なし。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Usado como chave YAML. Minúsculas, sem espaços." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "用作 YAML 键。小写,不含空格。" + } + } + } + }, + "View": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ver" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Voir" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ver" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "查看" + } + } + } + }, + "View All": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Alle anzeigen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ver todo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tout voir" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "すべて表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Ver tudo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "查看全部" + } + } + } + }, + "Voice Off": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Stimme aus" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Voz desactivada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Voix désactivée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "音声オフ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voz desligada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "语音关" + } + } + } + }, + "Voice On": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Stimme an" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Voz activada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Voix activée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "音声オン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voz ligada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "语音开" + } + } + } + }, + "Waiting for authorization URL…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Warte auf Autorisierungs-URL…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esperando URL de autorización…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "En attente de l'URL d'autorisation…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "認可 URL を待機中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aguardando URL de autorização…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "等待授权 URL…" + } + } + } + }, + "Waiting for first probe": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Warte auf erste Prüfung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esperando primera comprobación" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "En attente de la première sonde" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "最初のプローブを待機中" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aguardando primeira verificação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "等待首次探测" + } + } + } + }, + "Waiting for hermes to prompt for the code…": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Warte, bis hermes nach dem Code fragt…" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Esperando a que hermes pida el código…" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "En attente que hermes demande le code…" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "hermes がコードを要求するのを待機中…" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aguardando o hermes solicitar o código…" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "等待 hermes 提示输入代码…" + } + } + } + }, + "Webhook Setup Docs": {}, + "Webhook platform not enabled": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhook-Plattform nicht aktiviert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Plataforma de webhooks no activada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Plateforme webhook non activée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook プラットフォームが有効ではありません" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Plataforma de webhook não ativada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "未启用 webhook 平台" + } + } + } + }, + "Webhooks": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhooks" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Webhooks" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Webhooks" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Webhooks" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Webhooks" + } + } + } + }, + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhooks ermöglichen externen Diensten, Agent-Antworten auszulösen. Jedes Abonnement hat seinen eigenen URL-Endpunkt." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Los webhooks permiten que servicios externos disparen respuestas del agente. Cada suscripción obtiene su propio endpoint de URL." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Les webhooks permettent à des services externes de déclencher des réponses d'agent. Chaque abonnement a son propre point d'accès URL." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook を使うと外部サービスがエージェントの応答をトリガーできます。各サブスクリプションは独自の URL エンドポイントを持ちます。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Webhooks permitem que serviços externos disparem respostas do agente. Cada assinatura tem seu próprio endpoint de URL." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Webhooks 允许外部服务触发 agent 响应。每个订阅都有自己的 URL 端点。" + } + } + } + }, + "WhatsApp Setup Docs": {}, + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "WhatsApp nutzt die Baileys-Bibliothek, um eine WhatsApp-Web-Sitzung zu emulieren. Kopple diesen Mac als verknüpftes Gerät, indem du den Kopplungsassistenten ausführst und den QR-Code mit deinem Telefon scannst (Einstellungen → Verknüpfte Geräte → Gerät verknüpfen)." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "WhatsApp usa la biblioteca Baileys para emular una sesión de WhatsApp Web. Empareja este Mac como dispositivo vinculado ejecutando el asistente y escaneando el código QR con tu teléfono (Ajustes → Dispositivos vinculados → Vincular dispositivo)." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "WhatsApp utilise la bibliothèque Baileys pour émuler une session WhatsApp Web. Appairez ce Mac comme appareil lié en lançant l'assistant d'appairage et en scannant le QR code avec votre téléphone (Paramètres → Appareils liés → Associer un appareil)." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "WhatsApp は Baileys ライブラリで WhatsApp Web セッションをエミュレートします。ペアリングウィザードを実行し、スマートフォンで QR コードをスキャンしてこの Mac をリンク済みデバイスとしてペアリングしてください(設定 → リンク済みデバイス → デバイスをリンク)。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "O WhatsApp usa a biblioteca Baileys para emular uma sessão do WhatsApp Web. Pareie este Mac como dispositivo vinculado executando o assistente de pareamento e escaneando o QR code com seu telefone (Ajustes → Dispositivos vinculados → Vincular um dispositivo)." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "WhatsApp 使用 Baileys 库模拟 WhatsApp Web 会话。通过运行配对向导并用手机扫描二维码,将此 Mac 配对为关联设备(设置 → 关联设备 → 关联一台设备)。" + } + } + } + }, + "Working": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "In Arbeit" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Trabajando" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Travail en cours" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "処理中" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Trabalhando" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "工作中" + } + } + } + }, + "X": {}, + "Y": {}, + "active": {}, + "dangerous": {}, + "default": {}, + "e.g. anthropic": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. anthropic" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. anthropic" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. anthropic" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: anthropic" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: anthropic" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 anthropic" + } + } + } + }, + "e.g. deploy": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. deploy" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. deploy" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. deploy" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: deploy" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: deploy" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 deploy" + } + } + } + }, + "e.g. experimental": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. experimental" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. experimental" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. experimental" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: experimental" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: experimental" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 experimental" + } + } + } + }, + "e.g. github": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. github" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. github" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. github" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: github" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: github" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 github" + } + } + } + }, + "e.g. openai": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. openai" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. openai" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. openai" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: openai" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: openai" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 openai" + } + } + } + }, + "e.g. openai/gpt-4o": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. openai/gpt-4o" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. openai/gpt-4o" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. openai/gpt-4o" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: openai/gpt-4o" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: openai/gpt-4o" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 openai/gpt-4o" + } + } + } + }, + "e.g. team-prod": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "z. B. team-prod" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "p. ej. team-prod" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "par ex. team-prod" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "例: team-prod" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ex: team-prod" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "例如 team-prod" + } + } + } + }, + "exit code: %d": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Exit-Code: %d" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "código de salida: %d" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "code de sortie : %d" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "終了コード: %d" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "código de saída: %d" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "退出码:%d" + } + } + } + }, + "github.com/owner/plugin-repo or owner/repo": {}, + "hermes at %@": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "hermes auf %@" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "hermes en %@" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "hermes sur %@" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "%@ 上の hermes" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "hermes em %@" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "%@ 上的 hermes" + } + } + } + }, + "hermes profile show": {}, + "hermes.example.com or a ~/.ssh/config alias": {}, + "https://...": {}, + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Die iMessage-Integration läuft über BlueBubbles Server. Du brauchst einen Mac, der eingeschaltet bleibt und in Messages.app angemeldet ist — installiere BlueBubbles Server darauf und richte hermes auf die URL dieses Servers aus." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "La integración de iMessage usa BlueBubbles Server. Necesitas un Mac encendido con Messages.app iniciado — instala BlueBubbles Server ahí y apunta hermes a la URL de ese servidor." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "L'intégration iMessage passe par BlueBubbles Server. Il vous faut un Mac qui reste allumé avec Messages.app connecté — installez BlueBubbles Server dessus, puis pointez hermes vers l'URL de ce serveur." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "iMessage 連携は BlueBubbles Server を経由します。メッセージ App にサインインしたまま動作し続ける Mac が必要です — そこに BlueBubbles Server をインストールし、そのサーバーの URL を hermes に指定してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "A integração com iMessage usa o BlueBubbles Server. Você precisa de um Mac ligado e com Messages.app conectado — instale o BlueBubbles Server nele e aponte o hermes para a URL desse servidor." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "iMessage 集成通过 BlueBubbles Server 运行。你需要一台保持开机且登录 Messages.app 的 Mac — 在其上安装 BlueBubbles Server,然后将 hermes 指向该服务器的 URL。" + } + } + } + }, + "my_server": {}, + "new-name": {}, + "npx": {}, + "required": {}, + "signal-cli Terminal": {}, + "signal-cli is available on PATH": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "signal-cli ist im PATH verfügbar" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "signal-cli está disponible en el PATH" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "signal-cli est disponible dans le PATH" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "signal-cli は PATH 上で利用可能です" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "signal-cli está disponível no PATH" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "signal-cli 已在 PATH 中" + } + } + } + }, + "signal-cli not found on PATH — install it first": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "signal-cli im PATH nicht gefunden — bitte zuerst installieren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "signal-cli no está en el PATH — instálalo primero" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "signal-cli introuvable dans le PATH — installez-le d'abord" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "signal-cli が PATH にありません — 先にインストールしてください" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "signal-cli não encontrado no PATH — instale-o primeiro" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "PATH 中未找到 signal-cli — 请先安装" + } + } + } + }, + "sk-…": {}, + "ssh trace": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "ssh-Trace" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "traza ssh" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "trace ssh" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ssh トレース" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "trace do ssh" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "ssh 跟踪" + } + } + } + }, + "ssh-agent (leave blank)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "ssh-agent (leer lassen)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "ssh-agent (dejar vacío)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "ssh-agent (laisser vide)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ssh-agent(空のまま)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "ssh-agent (deixe em branco)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "ssh-agent(留空)" + } + } + } + }, + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "state.db wurde am konfigurierten Pfad nicht gefunden. Entweder lief Hermes auf diesem Server noch nicht, oder es ist an einem nicht standardmäßigen Ort installiert — setze oben das Feld für das Hermes-Datenverzeichnis." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No se encontró state.db en la ruta configurada. O bien Hermes no se ha ejecutado aún en este servidor, o está instalado en una ubicación no predeterminada — establece arriba el campo del directorio de datos de Hermes." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "state.db introuvable au chemin configuré. Soit Hermes n'a pas encore été lancé sur ce serveur, soit il est installé à un emplacement non standard — définissez le champ répertoire de données Hermes ci-dessus." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "設定されたパスに state.db が見つかりません。Hermes がこのサーバーでまだ実行されていないか、デフォルトでない場所にインストールされている可能性があります — 上の Hermes データディレクトリフィールドを設定してください。" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "state.db não encontrado no caminho configurado. Ou o Hermes ainda não rodou neste servidor, ou está instalado em um local não padrão — defina o campo de diretório de dados do Hermes acima." + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "在配置的路径下未找到 state.db。要么 Hermes 尚未在此服务器上运行过,要么它安装在非默认位置 — 请在上方设置 Hermes 数据目录字段。" + } + } + } + }, + "state.db not found at the default location, but Scarf found one at:": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "state.db wurde am Standardort nicht gefunden, Scarf hat aber eine unter folgendem Pfad entdeckt:" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "No se encontró state.db en la ubicación predeterminada, pero Scarf encontró uno en:" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "state.db introuvable à l'emplacement par défaut, mais Scarf en a trouvé une à :" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デフォルトの場所には state.db がありませんが、Scarf が以下の場所に見つけました:" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "state.db não encontrado no local padrão, mas o Scarf encontrou um em:" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "默认位置下未找到 state.db,但 Scarf 在此处找到了一个:" + } + } + } + }, + "state.db readable": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "state.db lesbar" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "state.db legible" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "state.db lisible" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "state.db 読み取り可能" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "state.db legível" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "state.db 可读" + } + } + } + }, + "stderr:": {}, + "stdout:": {}, + "tool_a, tool_b": {}, + "tool_c": {}, + "user": {}, + "value": {}, + "·": {}, + "— or use user/password login —": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "— oder Benutzername/Passwort-Anmeldung verwenden —" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "— o usa inicio de sesión con usuario/contraseña —" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "— ou utilisez la connexion utilisateur/mot de passe —" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "— またはユーザー名/パスワードでログイン —" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "— ou use login com usuário/senha —" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "— 或使用用户名/密码登录 —" + } + } + } + }, + "•": {}, + "••••••••••": {} }, - "version" : "1.0" -} \ No newline at end of file + "version": "1.0" +} diff --git a/tools/merge-translations.py b/tools/merge-translations.py new file mode 100644 index 0000000..49cf267 --- /dev/null +++ b/tools/merge-translations.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +""" +Merge per-locale translation JSON files into Localizable.xcstrings. + +Each JSON under tools/translations/.json is a flat +{ "English source key": "Translation" } map. Keys absent from the JSON +fall through to English at runtime — that's the desired behavior for +proper nouns, format-only strings, and technical terminology. + +Usage: + python3 tools/merge-translations.py + +Re-runnable: rewrites the per-locale stringUnit entries each time, so +translators can iterate on a JSON and re-merge. +""" +from __future__ import annotations + +import json +import sys +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +CATALOG = REPO_ROOT / "scarf" / "scarf" / "Localizable.xcstrings" +TRANSLATIONS_DIR = REPO_ROOT / "tools" / "translations" + +LOCALES = ["zh-Hans", "de", "fr", "es", "ja", "pt-BR"] + + +def load_json(path: Path) -> dict: + with path.open("r", encoding="utf-8") as f: + return json.load(f) + + +def save_json(path: Path, data: dict) -> None: + with path.open("w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=2, sort_keys=True) + f.write("\n") + + +def main() -> int: + catalog = load_json(CATALOG) + source_keys = set(catalog.get("strings", {}).keys()) + + applied: dict[str, int] = {} + skipped_unknown: dict[str, list[str]] = {} + + for locale in LOCALES: + path = TRANSLATIONS_DIR / f"{locale}.json" + if not path.exists(): + print(f"[skip] {locale}: no file at {path}") + continue + + translations = load_json(path) + applied[locale] = 0 + skipped_unknown[locale] = [] + + for source, target in translations.items(): + if source not in source_keys: + skipped_unknown[locale].append(source) + continue + entry = catalog["strings"].setdefault(source, {}) + entry.setdefault("localizations", {}) + entry["localizations"][locale] = { + "stringUnit": { + "state": "translated", + "value": target, + } + } + applied[locale] += 1 + + save_json(CATALOG, catalog) + + # Summary + print("Merge summary:") + for locale in LOCALES: + if locale in applied: + extras = len(skipped_unknown.get(locale, [])) + print(f" {locale:8} applied={applied[locale]:4} unknown-keys-skipped={extras}") + any_unknown = any(skipped_unknown.values()) + if any_unknown: + print("\nKeys present in translation files but missing from the catalog:") + for locale, unknowns in skipped_unknown.items(): + for k in unknowns: + print(f" [{locale}] {k!r}") + return 1 + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/translations/de.json b/tools/translations/de.json new file mode 100644 index 0000000..4bb14fe --- /dev/null +++ b/tools/translations/de.json @@ -0,0 +1,520 @@ +{ + "%@ ctx": "%@ Kontext", + "%@ in / %@ out": "%1$@ ein / %2$@ aus", + "%@ reasoning": "%@ Reasoning", + "%@ tokens": "%@ Tokens", + "%@s · %lld tools": "%1$@ s · %2$lld Tools", + "%lld %@": "%1$lld %2$@", + "%lld chars": "%lld Zeichen", + "%lld delivery failure%@": "%1$lld Zustellfehler%2$@", + "%lld entries": "%lld Einträge", + "%lld files": "%lld Dateien", + "%lld messages": "%lld Nachrichten", + "%lld msgs": "%lld Nachr.", + "%lld of %lld enabled": "%1$lld von %2$lld aktiviert", + "%lld reasoning": "%lld Reasoning", + "%lld req": "%lld erforderlich", + "%lld required config": "%lld Pflichteinstellungen", + "%lld sessions": "%lld Sitzungen", + "%lld tokens": "%lld Tokens", + "%lld tools": "%lld Tools", + "30 Days": "30 Tage", + "7 Days": "7 Tage", + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Unten erscheint ein QR-Code. Scanne ihn mit WhatsApp auf deinem Telefon. Die Sitzung wird unter ~/.hermes/platforms/whatsapp/ gespeichert, damit nach Neustarts kein erneuter Scan nötig ist.", + "API Key": "API-Schlüssel", + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "API-Schlüssel werden nie vollständig angezeigt. Scarf zeigt nur die letzten 4 Zeichen zur Identifikation. Die vollständigen Werte speichert hermes in ~/.hermes/auth.json.", + "Actions": "Aktionen", + "Active": "Aktiv", + "Active profile": "Aktives Profil", + "Activity": "Aktivität", + "Activity Patterns": "Aktivitätsmuster", + "Add": "Hinzufügen", + "Add Command": "Befehl hinzufügen", + "Add Credential": "Anmeldedaten hinzufügen", + "Add Custom": "Eigene hinzufügen", + "Add Custom MCP Server": "Eigenen MCP-Server hinzufügen", + "Add Project": "Projekt hinzufügen", + "Add Quick Command": "Schnellbefehl hinzufügen", + "Add Remote Server": "Remote-Server hinzufügen", + "Add Server": "Server hinzufügen", + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": "Füge einen Projektordner hinzu, um zu beginnen. Lege in deinem Projekt eine .scarf/dashboard.json an, um Widgets zu definieren.", + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": "Anmeldedaten in **Konfigurieren → Credential-Pools** hinzufügen, `ANTHROPIC_API_KEY` (oder ähnlich) in `~/.hermes/.env` setzen oder in deinem Shell-Profil exportieren, dann Scarf neu starten.", + "Add from Preset": "Aus Voreinstellung hinzufügen", + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Rotations-Anmeldedaten hinzufügen, damit hermes zwischen Schlüsseln wechseln kann, wenn einer ein Rate-Limit erreicht.", + "Add your first command": "Füge deinen ersten Befehl hinzu", + "After approving in your browser, the provider shows a code. Paste it below and submit.": "Nach der Genehmigung im Browser zeigt der Anbieter einen Code. Füge ihn unten ein und sende ab.", + "Agent": "Agent", + "All": "Alle", + "All Levels": "Alle Ebenen", + "All Sessions": "Alle Sitzungen", + "All Time": "Gesamter Zeitraum", + "All installed hub skills are up to date.": "Alle installierten Hub-Skills sind aktuell.", + "Approve": "Genehmigen", + "Archive": "Archivieren", + "Args (one per line)": "Argumente (eines pro Zeile)", + "Arguments": "Argumente", + "Assistant Message": "Assistentennachricht", + "Auth": "Auth", + "Authentication uses ssh-agent": "Authentifizierung nutzt ssh-agent", + "Authorization Code": "Autorisierungscode", + "Authorization URL": "Autorisierungs-URL", + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Hilfsaufgaben nutzen separate, typischerweise günstigere Modelle. Provider auf `auto` lassen, um den Hauptanbieter zu übernehmen.", + "Back": "Zurück", + "Back to Catalog": "Zurück zum Katalog", + "Backup Now": "Jetzt sichern", + "Becomes the key under mcp_servers: in config.yaml.": "Wird zum Schlüssel unter mcp_servers: in config.yaml.", + "Browse": "Durchsuchen", + "Browse Hub": "Hub durchsuchen", + "Browse the Hub": "Hub durchsuchen", + "Browse...": "Durchsuchen...", + "Browser": "Browser", + "By Day": "Nach Tag", + "By Hour": "Nach Stunde", + "Call timeout": "Aufruf-Timeout", + "Can't read Hermes state on %@": "Hermes-Status auf %@ nicht lesbar", + "Cancel": "Abbrechen", + "Changes won't take effect until Hermes reloads the config.": "Änderungen werden erst wirksam, wenn Hermes die Konfiguration neu lädt.", + "Chat": "Chat", + "Chat Messages": "Chat-Nachrichten", + "Check": "Prüfen", + "Check Now": "Jetzt prüfen", + "Check for Updates": "Nach Updates suchen", + "Check for Updates…": "Nach Updates suchen…", + "Checking…": "Prüfe…", + "Choose a cron job from the list": "Wähle einen Cron-Job aus der Liste", + "Choose a profile to inspect.": "Wähle ein Profil zur Ansicht.", + "Choose a project from the sidebar to view its dashboard.": "Wähle ein Projekt aus der Seitenleiste, um sein Dashboard zu sehen.", + "Choose a session from the list": "Wähle eine Sitzung aus der Liste", + "Choose a skill from the list": "Wähle einen Skill aus der Liste", + "Choose an entry from the list": "Wähle einen Eintrag aus der Liste", + "Choose…": "Auswählen…", + "Clear Token": "Token löschen", + "Clear all skills on save": "Alle Skills beim Speichern löschen", + "Click Add to connect to a remote Hermes installation over SSH.": "Klicke auf Hinzufügen, um dich per SSH mit einer entfernten Hermes-Installation zu verbinden.", + "Click for details": "Für Details klicken", + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": "Ein Klick auf OAuth starten öffnet die Autorisierungsseite des Anbieters im Browser. Nach der Genehmigung kopierst du den angezeigten Code und fügst ihn in das erscheinende Terminal ein.", + "Clone config, .env, SOUL.md from active profile": "config, .env, SOUL.md aus aktivem Profil klonen", + "Close": "Schließen", + "Close Window": "Fenster schließen", + "Code: %@": "Code: %@", + "Command": "Befehl", + "Command looks destructive. Double-check before saving.": "Der Befehl wirkt destruktiv. Vor dem Speichern noch einmal prüfen.", + "Component": "Komponente", + "Compress": "Komprimieren", + "Compress Conversation": "Unterhaltung komprimieren", + "Compress conversation (/compress)": "Unterhaltung komprimieren (/compress)", + "Configure": "Konfigurieren", + "Connect timeout": "Verbindungs-Timeout", + "Connected": "Verbunden", + "Connected — can't read Hermes state": "Verbunden — Hermes-Status nicht lesbar", + "Connection": "Verbindung", + "Continue Last Session": "Letzte Sitzung fortsetzen", + "Copied": "Kopiert", + "Copy": "Kopieren", + "Copy Full Report": "Vollständigen Bericht kopieren", + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": "Kopiert eine Klartextzusammenfassung jeder Prüfung (bestanden und fehlgeschlagen) — in GitHub-Issues einfügen, damit wir alles auf einmal sehen.", + "Copy code": "Code kopieren", + "Copy error details": "Fehlerdetails kopieren", + "Create": "Erstellen", + "Create Profile": "Profil erstellen", + "Create Subscription": "Abonnement erstellen", + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": "Erstelle eine Slack-App auf api.slack.com/apps, aktiviere Socket Mode, vergib Bot-Scopes (chat:write, app_mentions:read, channels:history usw.) und kopiere dann das Bot User OAuth Token (xoxb-) sowie das App-Level Token (xapp-).", + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": "Erstelle einen Bot via @BotFather und hole dir deine numerische User-ID von @userinfobot. Füge Token und User-ID unten ein — der Bot antwortet nur erlaubten Nutzern.", + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": "Erstelle ein Long-Lived Access Token in Home Assistant (Profil → Sicherheit → Long-Lived Access Tokens). Standardmäßig werden keine Ereignisse weitergeleitet — aktiviere Watch All Changes oder füge unten Entity-Filter hinzu.", + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": "Erstelle ein persönliches Access Token unter Profil → Sicherheit → Personal Access Tokens oder ein Bot-Konto. Verwende das Token als MATTERMOST_TOKEN-Wert.", + "Create a profile to isolate config and skills.": "Erstelle ein Profil, um Konfiguration und Skills zu isolieren.", + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": "Erstelle eine App im Discord Developer Portal, aktiviere die Intents Message Content und Server Members und kopiere das Bot-Token. Lade den Bot über den OAuth2-URL-Generator auf deinen Server ein.", + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": "Erstelle eine App in der Feishu/Lark Developer Console, aktiviere Interactive Card bei Bedarf für Button-Antworten und kopiere App ID und App Secret. Der WebSocket-Modus (empfohlen) braucht keinen öffentlichen Endpunkt.", + "Credential Pools": "Credential-Pools", + "Credential Type": "Anmeldedaten-Typ", + "Credentials": "Anmeldedaten", + "Cron": "Cron", + "Cron Jobs": "Cron-Jobs", + "Current: %@": "Aktuell: %@", + "Custom…": "Benutzerdefiniert…", + "Daemon running": "Daemon läuft", + "Dashboard": "Dashboard", + "Default": "Standard", + "Default: ~/.hermes": "Standard: ~/.hermes", + "Defaults to ~/.ssh/config or current user": "Standard ist ~/.ssh/config oder der aktuelle Benutzer", + "Delete": "Löschen", + "Delete %@?": "%@ löschen?", + "Delete Session?": "Sitzung löschen?", + "Delete profile '%@'?": "Profil '%@' löschen?", + "Delete...": "Löschen...", + "Deliver: %@": "Zustellen: %@", + "Diagnostic Output": "Diagnose-Ausgabe", + "Diagnostics": "Diagnose", + "Disable": "Deaktivieren", + "Disabled": "Deaktiviert", + "Docs": "Dokumentation", + "Done": "Fertig", + "Edit": "Bearbeiten", + "Edit %@": "%@ bearbeiten", + "Edit /%@": "/%@ bearbeiten", + "Edit Agent Memory": "Agent-Speicher bearbeiten", + "Edit User Profile": "Nutzerprofil bearbeiten", + "Edit config.yaml": "config.yaml bearbeiten", + "Empty": "Leer", + "Enable": "Aktivieren", + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Aktiviere 2FA für dein E-Mail-Konto und erzeuge ein App-Passwort. Normale Kontopasswörter funktionieren nicht. Setze immer erlaubte Absender — sonst kann jeder, der die Adresse kennt, dem Agent Nachrichten schicken.", + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Aktiviere die Webhook-Plattform, um ereignisgesteuerte Agent-Trigger zu akzeptieren. Das HMAC-Secret dient als Fallback, wenn einzelne Routen keines liefern.", + "Enabled": "Aktiviert", + "Env vars, headers, and tool filters can be edited after the server is added.": "Umgebungsvariablen, Header und Tool-Filter können nach dem Hinzufügen des Servers bearbeitet werden.", + "Environment Variables": "Umgebungsvariablen", + "Error": "Fehler", + "Errors": "Fehler", + "Exclude": "Ausschließen", + "Execute": "Ausführen", + "Expected at %@": "Erwartet unter %@", + "Export All": "Alle exportieren", + "Export...": "Exportieren...", + "Export…": "Exportieren…", + "Expose prompts": "Prompts verfügbar machen", + "Expose resources": "Ressourcen verfügbar machen", + "Fetch": "Abrufen", + "Files": "Dateien", + "Filter logs...": "Logs filtern...", + "Filter servers...": "Server filtern...", + "Filter skills...": "Skills filtern...", + "Filter to session %@": "Auf Sitzung %@ filtern", + "Focus topic (optional)": "Fokusthema (optional)", + "Full copy of active profile (all state)": "Vollständige Kopie des aktiven Profils (gesamter Zustand)", + "Gateway": "Gateway", + "Gateway Running": "Gateway läuft", + "Gateway Stopped": "Gateway gestoppt", + "Gateway restart required": "Gateway-Neustart erforderlich", + "Header": "Header", + "Headers": "Header", + "Health": "Zustand", + "Hermes Not Found": "Hermes nicht gefunden", + "Hermes Running": "Hermes läuft", + "Hermes Stopped": "Hermes gestoppt", + "Hermes binary not found": "Hermes-Binary nicht gefunden", + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": "Hermes braucht ein globales Webhook-Secret und einen Port, bevor Abonnements Traffic empfangen können. Starte den Gateway-Einrichtungsassistenten oder bearbeite ~/.hermes/config.yaml manuell.", + "Hide": "Ausblenden", + "Hide Output": "Ausgabe ausblenden", + "Hide details": "Details ausblenden", + "Host key changed": "Host-Schlüssel geändert", + "ID: %@": "ID: %@", + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "Wenn dies die erste Verbindung ist, stelle sicher, dass dein Schlüssel mit `ssh-add` geladen wurde und der Remote ihn akzeptiert.", + "If you trust the change, remove the stale entry and reconnect:": "Wenn du der Änderung vertraust, entferne den veralteten Eintrag und verbinde dich erneut:", + "Import": "Importieren", + "Inactive": "Inaktiv", + "Include (comma-separated — if set, only these are exposed)": "Einschließen (kommagetrennt — wenn gesetzt, werden nur diese freigegeben)", + "Insights": "Einsichten", + "Install": "Installieren", + "Install BlueBubbles Server": "BlueBubbles Server installieren", + "Install Plugin": "Plugin installieren", + "Install a Plugin": "Plugin installieren", + "Install signal-cli": "signal-cli installieren", + "Installed": "Installiert", + "Interact": "Interagieren", + "Invalid URL": "Ungültige URL", + "Keep typing to send as a message, or press Esc.": "Weitertippen, um als Nachricht zu senden, oder Esc drücken.", + "Label (optional)": "Label (optional)", + "Last Output": "Letzte Ausgabe", + "Last probe: %@": "Letzte Prüfung: %@", + "Last run: %@": "Letzter Lauf: %@", + "Last updated: %@": "Zuletzt aktualisiert: %@", + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Leer lassen, um aus dem Präfix der Modell-ID abzuleiten (\"openai/...\" → openai).", + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Leer lassen, außer Hermes liegt nicht am Standardpfad (systemd-Dienste oft unter /var/lib/hermes/.hermes; Docker-Sidecars variieren). Test Connection schlägt automatisch einen Wert vor, wenn es eine bekannte Alternative erkennt.", + "Level": "Ebene", + "Link Device": "Gerät koppeln", + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": "Kopple zuerst das Gerät, um einen QR-Code zu erzeugen und zu scannen. Nach dem Koppeln starte den Daemon — er muss laufen, damit hermes Nachrichten senden/empfangen kann.", + "Linking…": "Kopple…", + "Loaded": "Geladen", + "Loading session…": "Lade Sitzung…", + "Local": "Lokal", + "Local (stdio)": "Lokal (stdio)", + "Log File": "Log-Datei", + "Logs": "Logs", + "MCP Servers": "MCP-Server", + "MCP Servers (%lld)": "MCP-Server (%lld)", + "Manage": "Verwalten", + "Manage Servers…": "Server verwalten…", + "Manage in Credential Pools": "In Credential-Pools verwalten", + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": "Matrix nutzt entweder ein Access Token (bevorzugt) oder Benutzername/Passwort. Hol dir ein Access Token in Element: Einstellungen → Hilfe & Info → Access Token.", + "Memory": "Speicher", + "Memory is managed by %@. File contents shown here may be stale.": "Der Speicher wird von %@ verwaltet. Die hier angezeigten Dateiinhalte können veraltet sein.", + "Message Hermes...": "Hermes Nachricht senden...", + "Messages will appear here as the conversation progresses.": "Nachrichten erscheinen hier im Laufe der Unterhaltung.", + "Migrate": "Migrieren", + "Missing required config:": "Fehlende erforderliche Konfiguration:", + "Model ID": "Modell-ID", + "Models": "Modelle", + "Monitor": "Überwachen", + "Name": "Name", + "Name (no leading slash)": "Name (ohne führenden Schrägstrich)", + "New Session": "Neue Sitzung", + "New Webhook Subscription": "Neues Webhook-Abonnement", + "New name for '%@'": "Neuer Name für '%@'", + "Next run: %@": "Nächster Lauf: %@", + "No AI provider credentials detected": "Keine Anmeldedaten für KI-Anbieter erkannt", + "No Active Session": "Keine aktive Sitzung", + "No Activity": "Keine Aktivität", + "No Cron Jobs": "Keine Cron-Jobs", + "No Dashboard": "Kein Dashboard", + "No MCP servers configured": "Keine MCP-Server konfiguriert", + "No Models": "Keine Modelle", + "No Profiles": "Keine Profile", + "No Projects": "Keine Projekte", + "No Updates": "Keine Updates", + "No active session": "Keine aktive Sitzung", + "No additional output. Check ~/.ssh/config and ssh-agent.": "Keine weitere Ausgabe. Prüfe ~/.ssh/config und ssh-agent.", + "No commands available": "Keine Befehle verfügbar", + "No credential pools configured": "Keine Credential-Pools konfiguriert", + "No data": "Keine Daten", + "No env vars configured.": "Keine Umgebungsvariablen konfiguriert.", + "No env vars. Add one with the button below.": "Keine Umgebungsvariablen. Füge eine mit der Schaltfläche unten hinzu.", + "No headers configured.": "Keine Header konfiguriert.", + "No headers. Add one with the button below.": "Keine Header. Füge einen mit der Schaltfläche unten hinzu.", + "No matching commands": "Keine passenden Befehle", + "No paired users": "Keine gekoppelten Nutzer", + "No platforms connected": "Keine Plattformen verbunden", + "No plugins installed": "Keine Plugins installiert", + "No quick commands configured": "Keine Schnellbefehle konfiguriert", + "No remote servers": "Keine Remote-Server", + "No scheduled jobs configured": "Keine geplanten Jobs konfiguriert", + "No servers configured yet": "Noch keine Server konfiguriert", + "No sessions found": "Keine Sitzungen gefunden", + "No tool calls found": "Keine Tool-Aufrufe gefunden", + "No webhook subscriptions": "Keine Webhook-Abonnements", + "None": "Keine", + "Notable Sessions": "Bemerkenswerte Sitzungen", + "OAuth login for %@": "OAuth-Anmeldung für %@", + "Open BotFather": "BotFather öffnen", + "Open Developer Portal": "Developer Portal öffnen", + "Open Local": "Lokal öffnen", + "Open Other Server…": "Anderen Server öffnen…", + "Open Scarf": "Scarf öffnen", + "Open Server": "Server öffnen", + "Open Slack API": "Slack-API öffnen", + "Open in Browser": "Im Browser öffnen", + "Open in Editor": "Im Editor öffnen", + "Open in new window": "In neuem Fenster öffnen", + "Open session": "Sitzung öffnen", + "Optional — defaults to hostname": "Optional — Standard ist der Hostname", + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Fokussiere die Zusammenfassung optional auf ein bestimmtes Thema. Leer lassen, um gleichmäßig zu komprimieren.", + "Other": "Andere", + "Output": "Ausgabe", + "Overview": "Übersicht", + "PID %d": "PID %d", + "PID %lld": "PID %lld", + "Pair Device": "Gerät koppeln", + "Paired Users": "Gekoppelte Nutzer", + "Paste code here…": "Code hier einfügen…", + "Pause": "Pausieren", + "Pending Approvals": "Ausstehende Genehmigungen", + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "Abonnements pro Route (Ereignisse, Prompt-Vorlage, Zustellziel) werden in der Webhooks-Seitenleiste verwaltet — nicht hier. Dieses Panel steuert nur, ob die Webhook-Plattform überhaupt zuhört.", + "Period": "Zeitraum", + "Personalities": "Persönlichkeiten", + "Pick an MCP server to add.": "Wähle einen MCP-Server zum Hinzufügen.", + "Pick one from the list, or add a new server from the toolbar.": "Wähle einen aus der Liste oder füge über die Symbolleiste einen neuen Server hinzu.", + "Platforms": "Plattformen", + "Plugins": "Plugins", + "Plugins extend hermes with custom tools, providers, or memory backends.": "Plugins erweitern hermes um eigene Tools, Anbieter oder Speicher-Backends.", + "Pre-Run Script": "Vorab-Skript", + "Preset:": "Voreinstellung:", + "Probe": "Prüfen", + "Profile": "Profil", + "Profiles": "Profile", + "Project Name": "Projektname", + "Project Path": "Projektpfad", + "Projects": "Projekte", + "Prompt": "Prompt", + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": "Gib eine Git-URL (https://github.com/...) oder ein Kürzel wie `owner/repo` an.", + "Provider": "Anbieter", + "Push to Talk": "Push-to-Talk", + "Push to talk (Ctrl+B)": "Push-to-Talk (Strg+B)", + "Quick Commands": "Schnellbefehle", + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Schnellbefehle sind Shell-Shortcuts, die hermes im Chat als `/command_name` verfügbar macht. Sie stehen unter `quick_commands:` in config.yaml.", + "Quit Scarf": "Scarf beenden", + "Raw Config": "Rohkonfiguration", + "Raw remote output (for debugging)": "Rohdaten der Remote-Ausgabe (zum Debuggen)", + "Re-run": "Erneut ausführen", + "Read": "Lesen", + "Reasoning": "Reasoning", + "Recent Sessions": "Letzte Sitzungen", + "Reconnect": "Erneut verbinden", + "Recording…": "Nehme auf…", + "Refresh": "Aktualisieren", + "Reload": "Neu laden", + "Remote (HTTP)": "Remote (HTTP)", + "Remote Diagnostics — %@": "Remote-Diagnose — %@", + "Remove": "Entfernen", + "Remove %@?": "%@ entfernen?", + "Remove credential for %@?": "Anmeldedaten für %@ entfernen?", + "Remove this server from Scarf.": "Diesen Server aus Scarf entfernen.", + "Remove this server?": "Diesen Server entfernen?", + "Remove via config.yaml…": "Über config.yaml entfernen…", + "Remove webhook %@?": "Webhook %@ entfernen?", + "Rename": "Umbenennen", + "Rename Profile": "Profil umbenennen", + "Rename Session": "Sitzung umbenennen", + "Rename...": "Umbenennen...", + "Requires: %@": "Erfordert: %@", + "Reset Cooldowns": "Cooldowns zurücksetzen", + "Restart": "Neu starten", + "Restart Gateway": "Gateway neu starten", + "Restart Hermes": "Hermes neu starten", + "Restart Now": "Jetzt neu starten", + "Restore": "Wiederherstellen", + "Restore from backup?": "Aus Backup wiederherstellen?", + "Restore…": "Wiederherstellen…", + "Result": "Ergebnis", + "Resume": "Fortsetzen", + "Resume Session": "Sitzung fortsetzen", + "Retry": "Erneut versuchen", + "Return to Active Session (%@...)": "Zurück zur aktiven Sitzung (%@...)", + "Reveal": "Anzeigen", + "Revoke": "Widerrufen", + "Rich Chat": "Rich Chat", + "Run Diagnostics…": "Diagnose ausführen…", + "Run Dump": "Dump ausführen", + "Run Now": "Jetzt ausführen", + "Run Setup in Terminal": "Einrichtung im Terminal ausführen", + "Run `hermes memory setup` in Terminal for full provider configuration.": "Führe `hermes memory setup` im Terminal aus für die vollständige Anbieter-Konfiguration.", + "Run remote diagnostics — check exactly which files are readable on this server.": "Remote-Diagnose ausführen — prüfe genau, welche Dateien auf diesem Server lesbar sind.", + "Running a single shell session on %@ that exercises every path Scarf reads…": "Führe eine einzelne Shell-Sitzung auf %@ aus, die jeden Pfad durchläuft, den Scarf liest…", + "Running checks…": "Führe Prüfungen aus…", + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": "SOUL.md beschreibt Stimme, Werte und Persönlichkeit des Agents unter ~/.hermes/SOUL.md. Sie wird in den Kontext jeder Sitzung injiziert.", + "SSH works but %@. Click for diagnostics.": "SSH funktioniert, aber %@. Für Diagnose klicken.", + "Save": "Speichern", + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": "Scarf fragt nie nach Passphrasen. Füge deinen Schlüssel im Terminal zum ssh-agent hinzu und klicke dann auf Erneut versuchen. Falls dein Schlüssel nicht `id_ed25519` ist, tausche den Pfad:", + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": "Scarf führt diese über eine einzige SSH-Sitzung aus, die der Shell entspricht, aus der dein Dashboard liest. Eine grüne Zeile hier bedeutet also, dass Scarf die Datei zur Laufzeit tatsächlich lesen kann.", + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": "Scarf nutzt ssh-agent zur Authentifizierung. Hat dein Schlüssel eine Passphrase, führe vor dem Verbinden `ssh-add` aus — Scarf fragt oder speichert keine Passphrasen.", + "Scarf — %@": "Scarf — %@", + "Search": "Suchen", + "Search Results (%lld)": "Suchergebnisse (%lld)", + "Search messages...": "Nachrichten suchen...", + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Durchsuche oder browse Skills, die in Registries wie skills.sh, GitHub und dem offiziellen Hub veröffentlicht sind.", + "Search registries": "Registries durchsuchen", + "Search…": "Suchen…", + "Select": "Auswählen", + "Select Model": "Modell auswählen", + "Select a Job": "Job auswählen", + "Select a Profile": "Profil auswählen", + "Select a Project": "Projekt auswählen", + "Select a Session": "Sitzung auswählen", + "Select a Skill": "Skill auswählen", + "Select a Tool Call": "Tool-Aufruf auswählen", + "Select an MCP Server": "MCP-Server auswählen", + "Send message (Enter)": "Nachricht senden (Enter)", + "Series": "Serie", + "Server No Longer Exists": "Server existiert nicht mehr", + "Server name": "Servername", + "Servers": "Server", + "Service": "Dienst", + "Service definition stale": "Dienstdefinition veraltet", + "Session": "Sitzung", + "Session title": "Sitzungstitel", + "Sessions": "Sitzungen", + "Settings": "Einstellungen", + "Setup": "Einrichtung", + "Share Debug Report…": "Debug-Bericht teilen…", + "Shell Command": "Shell-Befehl", + "Show": "Anzeigen", + "Show Output": "Ausgabe anzeigen", + "Show all %lld lines": "Alle %lld Zeilen anzeigen", + "Show details": "Details anzeigen", + "Show less": "Weniger anzeigen", + "Show values": "Werte anzeigen", + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": "Die Signal-Integration benötigt lokal installiertes signal-cli (Java-basiert). Kopple diesen Mac als Signal-Gerät und lasse den Daemon laufen, damit hermes Nachrichten senden/empfangen kann.", + "Site": "Seite", + "Skills": "Skills", + "Skills (%lld)": "Skills (%lld)", + "Source": "Quelle", + "Start": "Starten", + "Start Daemon": "Daemon starten", + "Start Hermes": "Hermes starten", + "Start OAuth": "OAuth starten", + "Start Pairing": "Kopplung starten", + "Start a new session or resume an existing one from the Session menu above.": "Starte eine neue Sitzung oder setze eine bestehende aus dem Sitzungsmenü oben fort.", + "Status": "Status", + "Stop": "Stoppen", + "Stop Hermes": "Hermes stoppen", + "Subagent": "Sub-Agent", + "Subagent Sessions (%lld)": "Sub-Agent-Sitzungen (%lld)", + "Submit": "Absenden", + "Subscribe": "Abonnieren", + "Succeeded": "Erfolgreich", + "Switch to This Profile": "Zu diesem Profil wechseln", + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": "Das Wechseln des aktiven Profils ändert das von hermes verwendete `~/.hermes`-Verzeichnis. Starte Scarf nach dem Wechsel neu, damit es aus den Dateien des neuen Profils liest.", + "TTS Off": "TTS aus", + "TTS On": "TTS an", + "Terminal": "Terminal", + "Test": "Testen", + "Test All": "Alle testen", + "Test Connection": "Verbindung testen", + "Test failed": "Test fehlgeschlagen", + "Test passed": "Test bestanden", + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "Der Agent hat bisher keine Slash-Befehle angeboten. Weitertippen, um als Nachricht zu senden, oder Esc drücken.", + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "Der SSH-Fingerabdruck des Remote passt nicht mehr zu dem, was deine `~/.ssh/known_hosts`-Datei erwartet. Meist bedeutet das, dass der Remote neu installiert wurde — seltener, dass jemand die Verbindung abfängt.", + "The server this window was opened with has been removed from your registry.": "Der Server, mit dem dieses Fenster geöffnet wurde, wurde aus deiner Registrierung entfernt.", + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": "Die SSH-Konfiguration des Servers wird aus Scarf entfernt. Deine Remote-Dateien bleiben unangetastet.", + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": "Das Terminal ist ein echtes TTY — mit ⌘V einfügen, Return drücken und warten, bis der Prozess mit \"login succeeded\" endet.", + "These list fields must be edited directly in config.yaml.": "Diese Listenfelder müssen direkt in config.yaml bearbeitet werden.", + "This provider has no catalogued models.": "Für diesen Anbieter sind keine katalogisierten Modelle vorhanden.", + "This removes the credential from hermes. The upstream provider key is not revoked.": "Damit werden die Anmeldedaten aus hermes entfernt. Der Schlüssel beim Upstream-Anbieter wird nicht widerrufen.", + "This removes the profile directory and all data within it. This cannot be undone.": "Damit werden das Profilverzeichnis und alle darin enthaltenen Daten entfernt. Dies kann nicht rückgängig gemacht werden.", + "This removes the scheduled job permanently.": "Damit wird der geplante Job dauerhaft entfernt.", + "This removes the server from config.yaml and deletes any OAuth token.": "Damit wird der Server aus config.yaml entfernt und jedes OAuth-Token gelöscht.", + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": "Damit werden Logs, Konfiguration (mit geschwärzten Secrets) und Systeminfos zur Support-Infrastruktur von Nous Research hochgeladen. Prüfe die Ausgabe unten, bevor du die zurückgegebene URL teilst.", + "This will overwrite files under ~/.hermes/ with the archive contents.": "Damit werden Dateien unter ~/.hermes/ mit dem Archivinhalt überschrieben.", + "This will permanently delete the session and all its messages.": "Damit werden die Sitzung und alle ihre Nachrichten dauerhaft gelöscht.", + "Timeout: %llds (%@)": "Timeout: %1$lld s (%2$@)", + "Timeouts": "Timeouts", + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Um die Passphrase-Abfrage bei jedem Neustart zu überspringen, füge `--apple-use-keychain` hinzu, um sie im macOS-Schlüsselbund zu cachen.", + "Toggle text-to-speech (/voice tts)": "Text-to-Speech umschalten (/voice tts)", + "Toggle voice mode (/voice)": "Sprachmodus umschalten (/voice)", + "Token on disk. Clear to re-authenticate next time the gateway connects.": "Token auf der Festplatte. Löschen, damit sich das Gateway beim nächsten Verbinden neu authentifiziert.", + "Tool Approval Required": "Tool-Genehmigung erforderlich", + "Tool Filters": "Tool-Filter", + "Tools": "Tools", + "Top Tools": "Top-Tools", + "Uninstall": "Deinstallieren", + "Unknown: %@": "Unbekannt: %@", + "Update": "Aktualisieren", + "Update All": "Alle aktualisieren", + "Updated: %@": "Aktualisiert: %@", + "Updates": "Updates", + "Upload": "Hochladen", + "Upload debug report?": "Debug-Bericht hochladen?", + "Usage Stats": "Nutzungsstatistik", + "Use": "Verwenden", + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": "Verwende ein Modell, das nicht im Katalog ist. Hermes akzeptiert jede Zeichenkette, die der Anbieter erkennt, inklusive anbieter-präfixierter Formen wie \"openrouter/anthropic/claude-opus-4.6\".", + "Use this": "Dieses verwenden", + "Use {dot.notation} to reference fields in the webhook payload.": "Verwende {dot.notation}, um Felder im Webhook-Payload zu referenzieren.", + "Used as the YAML key. Lowercase, no spaces.": "Wird als YAML-Schlüssel verwendet. Kleinbuchstaben, keine Leerzeichen.", + "View": "Anzeigen", + "View All": "Alle anzeigen", + "Voice Off": "Stimme aus", + "Voice On": "Stimme an", + "Waiting for authorization URL…": "Warte auf Autorisierungs-URL…", + "Waiting for first probe": "Warte auf erste Prüfung", + "Waiting for hermes to prompt for the code…": "Warte, bis hermes nach dem Code fragt…", + "Webhook platform not enabled": "Webhook-Plattform nicht aktiviert", + "Webhooks": "Webhooks", + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhooks ermöglichen externen Diensten, Agent-Antworten auszulösen. Jedes Abonnement hat seinen eigenen URL-Endpunkt.", + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp nutzt die Baileys-Bibliothek, um eine WhatsApp-Web-Sitzung zu emulieren. Kopple diesen Mac als verknüpftes Gerät, indem du den Kopplungsassistenten ausführst und den QR-Code mit deinem Telefon scannst (Einstellungen → Verknüpfte Geräte → Gerät verknüpfen).", + "Working": "In Arbeit", + "e.g. anthropic": "z. B. anthropic", + "e.g. deploy": "z. B. deploy", + "e.g. experimental": "z. B. experimental", + "e.g. github": "z. B. github", + "e.g. openai": "z. B. openai", + "e.g. openai/gpt-4o": "z. B. openai/gpt-4o", + "e.g. team-prod": "z. B. team-prod", + "exit code: %d": "Exit-Code: %d", + "hermes at %@": "hermes auf %@", + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": "Die iMessage-Integration läuft über BlueBubbles Server. Du brauchst einen Mac, der eingeschaltet bleibt und in Messages.app angemeldet ist — installiere BlueBubbles Server darauf und richte hermes auf die URL dieses Servers aus.", + "signal-cli is available on PATH": "signal-cli ist im PATH verfügbar", + "signal-cli not found on PATH — install it first": "signal-cli im PATH nicht gefunden — bitte zuerst installieren", + "ssh trace": "ssh-Trace", + "ssh-agent (leave blank)": "ssh-agent (leer lassen)", + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": "state.db wurde am konfigurierten Pfad nicht gefunden. Entweder lief Hermes auf diesem Server noch nicht, oder es ist an einem nicht standardmäßigen Ort installiert — setze oben das Feld für das Hermes-Datenverzeichnis.", + "state.db not found at the default location, but Scarf found one at:": "state.db wurde am Standardort nicht gefunden, Scarf hat aber eine unter folgendem Pfad entdeckt:", + "state.db readable": "state.db lesbar", + "— or use user/password login —": "— oder Benutzername/Passwort-Anmeldung verwenden —" +} diff --git a/tools/translations/es.json b/tools/translations/es.json new file mode 100644 index 0000000..9da374a --- /dev/null +++ b/tools/translations/es.json @@ -0,0 +1,520 @@ +{ + "%@ ctx": "%@ contexto", + "%@ in / %@ out": "%1$@ entrada / %2$@ salida", + "%@ reasoning": "%@ razonamiento", + "%@ tokens": "%@ tokens", + "%@s · %lld tools": "%1$@ s · %2$lld herramientas", + "%lld %@": "%1$lld %2$@", + "%lld chars": "%lld caracteres", + "%lld delivery failure%@": "%1$lld error de entrega%2$@", + "%lld entries": "%lld entradas", + "%lld files": "%lld archivos", + "%lld messages": "%lld mensajes", + "%lld msgs": "%lld msjs", + "%lld of %lld enabled": "%1$lld de %2$lld habilitados", + "%lld reasoning": "%lld razonamiento", + "%lld req": "%lld requeridos", + "%lld required config": "%lld configuraciones requeridas", + "%lld sessions": "%lld sesiones", + "%lld tokens": "%lld tokens", + "%lld tools": "%lld herramientas", + "30 Days": "30 días", + "7 Days": "7 días", + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Aparecerá un código QR abajo. Escanéalo con WhatsApp en tu teléfono. La sesión se guarda en ~/.hermes/platforms/whatsapp/ para no tener que volver a escanearla tras reiniciar.", + "API Key": "Clave de API", + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "Las claves de API nunca se muestran completas. Scarf solo muestra los últimos 4 caracteres para identificación. Los valores completos los guarda hermes en ~/.hermes/auth.json.", + "Actions": "Acciones", + "Active": "Activo", + "Active profile": "Perfil activo", + "Activity": "Actividad", + "Activity Patterns": "Patrones de actividad", + "Add": "Añadir", + "Add Command": "Añadir comando", + "Add Credential": "Añadir credencial", + "Add Custom": "Añadir personalizado", + "Add Custom MCP Server": "Añadir servidor MCP personalizado", + "Add Project": "Añadir proyecto", + "Add Quick Command": "Añadir comando rápido", + "Add Remote Server": "Añadir servidor remoto", + "Add Server": "Añadir servidor", + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": "Añade una carpeta de proyecto para empezar. Crea un archivo .scarf/dashboard.json en tu proyecto para definir widgets.", + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": "Añade credenciales en **Configurar → Grupos de credenciales**, establece `ANTHROPIC_API_KEY` (o similar) en `~/.hermes/.env`, o expórtala en tu perfil de shell, y reinicia Scarf.", + "Add from Preset": "Añadir desde preajuste", + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Añade credenciales de rotación para que hermes pueda cambiar entre claves cuando una alcance el límite de tasa.", + "Add your first command": "Añade tu primer comando", + "After approving in your browser, the provider shows a code. Paste it below and submit.": "Tras aprobar en tu navegador, el proveedor muestra un código. Pégalo abajo y envíalo.", + "Agent": "Agent", + "All": "Todos", + "All Levels": "Todos los niveles", + "All Sessions": "Todas las sesiones", + "All Time": "Todo el tiempo", + "All installed hub skills are up to date.": "Todas las habilidades instaladas desde el hub están al día.", + "Approve": "Aprobar", + "Archive": "Archivar", + "Args (one per line)": "Argumentos (uno por línea)", + "Arguments": "Argumentos", + "Assistant Message": "Mensaje del asistente", + "Auth": "Auth", + "Authentication uses ssh-agent": "La autenticación usa ssh-agent", + "Authorization Code": "Código de autorización", + "Authorization URL": "URL de autorización", + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Las tareas auxiliares usan modelos separados, normalmente más baratos. Deja Proveedor en `auto` para heredar el proveedor principal.", + "Back": "Atrás", + "Back to Catalog": "Volver al catálogo", + "Backup Now": "Copia de seguridad ahora", + "Becomes the key under mcp_servers: in config.yaml.": "Se convierte en la clave bajo mcp_servers: en config.yaml.", + "Browse": "Examinar", + "Browse Hub": "Examinar el hub", + "Browse the Hub": "Examinar el hub", + "Browse...": "Examinar...", + "Browser": "Navegador", + "By Day": "Por día", + "By Hour": "Por hora", + "Call timeout": "Tiempo de espera de llamada", + "Can't read Hermes state on %@": "No se puede leer el estado de Hermes en %@", + "Cancel": "Cancelar", + "Changes won't take effect until Hermes reloads the config.": "Los cambios no surtirán efecto hasta que Hermes recargue la configuración.", + "Chat": "Chat", + "Chat Messages": "Mensajes de chat", + "Check": "Comprobar", + "Check Now": "Comprobar ahora", + "Check for Updates": "Buscar actualizaciones", + "Check for Updates…": "Buscar actualizaciones…", + "Checking…": "Comprobando…", + "Choose a cron job from the list": "Elige una tarea cron de la lista", + "Choose a profile to inspect.": "Elige un perfil para inspeccionar.", + "Choose a project from the sidebar to view its dashboard.": "Elige un proyecto en la barra lateral para ver su panel.", + "Choose a session from the list": "Elige una sesión de la lista", + "Choose a skill from the list": "Elige una habilidad de la lista", + "Choose an entry from the list": "Elige una entrada de la lista", + "Choose…": "Elegir…", + "Clear Token": "Borrar token", + "Clear all skills on save": "Borrar todas las habilidades al guardar", + "Click Add to connect to a remote Hermes installation over SSH.": "Haz clic en Añadir para conectarte a una instalación remota de Hermes mediante SSH.", + "Click for details": "Haz clic para ver detalles", + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": "Al hacer clic en Iniciar OAuth se abre la página de autorización del proveedor en tu navegador. Tras aprobar, copia el código mostrado y pégalo en el terminal que aparecerá a continuación.", + "Clone config, .env, SOUL.md from active profile": "Clonar config, .env, SOUL.md del perfil activo", + "Close": "Cerrar", + "Close Window": "Cerrar ventana", + "Code: %@": "Código: %@", + "Command": "Comando", + "Command looks destructive. Double-check before saving.": "El comando parece destructivo. Revísalo antes de guardar.", + "Component": "Componente", + "Compress": "Comprimir", + "Compress Conversation": "Comprimir conversación", + "Compress conversation (/compress)": "Comprimir conversación (/compress)", + "Configure": "Configurar", + "Connect timeout": "Tiempo de espera de conexión", + "Connected": "Conectado", + "Connected — can't read Hermes state": "Conectado — no se puede leer el estado de Hermes", + "Connection": "Conexión", + "Continue Last Session": "Continuar última sesión", + "Copied": "Copiado", + "Copy": "Copiar", + "Copy Full Report": "Copiar informe completo", + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": "Copia un resumen en texto plano de cada comprobación (éxitos y fallos) — pégalo en issues de GitHub para que veamos todo a la vez.", + "Copy code": "Copiar código", + "Copy error details": "Copiar detalles de error", + "Create": "Crear", + "Create Profile": "Crear perfil", + "Create Subscription": "Crear suscripción", + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": "Crea una app de Slack en api.slack.com/apps, activa Socket Mode, concede los scopes de bot (chat:write, app_mentions:read, channels:history, etc.) y copia el Bot User OAuth Token (xoxb-) y el App-Level Token (xapp-).", + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": "Crea un bot con @BotFather y obtén tu ID numérico en @userinfobot. Pega el token y tu ID de usuario abajo — el bot solo responderá a usuarios permitidos.", + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": "Crea un token de acceso de larga duración en Home Assistant (Perfil → Seguridad → Long-Lived Access Tokens). Por defecto no se reenvían eventos — activa Watch All Changes o añade filtros de entidades abajo.", + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": "Crea un token de acceso personal en Perfil → Seguridad → Personal Access Tokens, o crea una cuenta de bot. Usa el token como valor de MATTERMOST_TOKEN.", + "Create a profile to isolate config and skills.": "Crea un perfil para aislar configuración y habilidades.", + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": "Crea una app en el Developer Portal de Discord, activa los intents Message Content y Server Members y copia el token del bot. Invita al bot a tu servidor con el generador de URLs OAuth2.", + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": "Crea una app en la Feishu/Lark Developer Console, activa Interactive Card si necesitas respuestas por botón y copia el App ID y el App Secret. El modo WebSocket (recomendado) no requiere un endpoint público.", + "Credential Pools": "Grupos de credenciales", + "Credential Type": "Tipo de credencial", + "Credentials": "Credenciales", + "Cron": "Cron", + "Cron Jobs": "Tareas cron", + "Current: %@": "Actual: %@", + "Custom…": "Personalizado…", + "Daemon running": "Demonio en ejecución", + "Dashboard": "Panel", + "Default": "Predeterminado", + "Default: ~/.hermes": "Predeterminado: ~/.hermes", + "Defaults to ~/.ssh/config or current user": "Por defecto ~/.ssh/config o el usuario actual", + "Delete": "Eliminar", + "Delete %@?": "¿Eliminar %@?", + "Delete Session?": "¿Eliminar sesión?", + "Delete profile '%@'?": "¿Eliminar perfil '%@'?", + "Delete...": "Eliminar...", + "Deliver: %@": "Entregar: %@", + "Diagnostic Output": "Salida de diagnóstico", + "Diagnostics": "Diagnósticos", + "Disable": "Desactivar", + "Disabled": "Desactivado", + "Docs": "Docs", + "Done": "Listo", + "Edit": "Editar", + "Edit %@": "Editar %@", + "Edit /%@": "Editar /%@", + "Edit Agent Memory": "Editar memoria del agente", + "Edit User Profile": "Editar perfil de usuario", + "Edit config.yaml": "Editar config.yaml", + "Empty": "Vacío", + "Enable": "Activar", + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Activa 2FA en tu cuenta de correo y genera una contraseña de aplicación. Las contraseñas normales no funcionarán. Establece siempre remitentes permitidos — de lo contrario, cualquiera que conozca la dirección podrá enviar mensajes al agente.", + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Activa la plataforma de webhooks para aceptar disparadores de agente dirigidos por eventos. El secreto HMAC se usa como respaldo cuando las rutas individuales no aportan el suyo.", + "Enabled": "Activado", + "Env vars, headers, and tool filters can be edited after the server is added.": "Las variables de entorno, cabeceras y filtros de herramientas se pueden editar después de añadir el servidor.", + "Environment Variables": "Variables de entorno", + "Error": "Error", + "Errors": "Errores", + "Exclude": "Excluir", + "Execute": "Ejecutar", + "Expected at %@": "Esperado en %@", + "Export All": "Exportar todo", + "Export...": "Exportar...", + "Export…": "Exportar…", + "Expose prompts": "Exponer prompts", + "Expose resources": "Exponer recursos", + "Fetch": "Obtener", + "Files": "Archivos", + "Filter logs...": "Filtrar registros...", + "Filter servers...": "Filtrar servidores...", + "Filter skills...": "Filtrar habilidades...", + "Filter to session %@": "Filtrar a la sesión %@", + "Focus topic (optional)": "Tema de enfoque (opcional)", + "Full copy of active profile (all state)": "Copia completa del perfil activo (todo el estado)", + "Gateway": "Gateway", + "Gateway Running": "Gateway en ejecución", + "Gateway Stopped": "Gateway detenido", + "Gateway restart required": "Se requiere reiniciar el gateway", + "Header": "Cabecera", + "Headers": "Cabeceras", + "Health": "Salud", + "Hermes Not Found": "Hermes no encontrado", + "Hermes Running": "Hermes en ejecución", + "Hermes Stopped": "Hermes detenido", + "Hermes binary not found": "Binario de Hermes no encontrado", + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": "Hermes necesita un secreto y puerto globales de webhook antes de que las suscripciones reciban tráfico. Ejecuta el asistente de configuración del gateway o edita ~/.hermes/config.yaml manualmente.", + "Hide": "Ocultar", + "Hide Output": "Ocultar salida", + "Hide details": "Ocultar detalles", + "Host key changed": "Clave de host cambiada", + "ID: %@": "ID: %@", + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "Si es la primera conexión, asegúrate de que tu clave esté cargada con `ssh-add` y de que el remoto la acepte.", + "If you trust the change, remove the stale entry and reconnect:": "Si confías en el cambio, elimina la entrada obsoleta y reconéctate:", + "Import": "Importar", + "Inactive": "Inactivo", + "Include (comma-separated — if set, only these are exposed)": "Incluir (separados por comas — si se define, solo estos se exponen)", + "Insights": "Analíticas", + "Install": "Instalar", + "Install BlueBubbles Server": "Instalar BlueBubbles Server", + "Install Plugin": "Instalar plugin", + "Install a Plugin": "Instalar un plugin", + "Install signal-cli": "Instalar signal-cli", + "Installed": "Instalado", + "Interact": "Interactuar", + "Invalid URL": "URL no válida", + "Keep typing to send as a message, or press Esc.": "Sigue escribiendo para enviar como mensaje, o pulsa Esc.", + "Label (optional)": "Etiqueta (opcional)", + "Last Output": "Última salida", + "Last probe: %@": "Última comprobación: %@", + "Last run: %@": "Última ejecución: %@", + "Last updated: %@": "Última actualización: %@", + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Déjalo vacío para deducirlo del prefijo del ID del modelo (\"openai/...\" → openai).", + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Déjalo vacío salvo que Hermes esté instalado en una ruta no predeterminada (los servicios systemd suelen estar en /var/lib/hermes/.hermes; los sidecars Docker varían). Probar conexión sugiere un valor automáticamente si detecta una alternativa conocida.", + "Level": "Nivel", + "Link Device": "Vincular dispositivo", + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": "Vincula primero el dispositivo para generar y escanear un código QR. Una vez vinculado, inicia el demonio — debe seguir ejecutándose para que hermes envíe/reciba mensajes.", + "Linking…": "Vinculando…", + "Loaded": "Cargado", + "Loading session…": "Cargando sesión…", + "Local": "Local", + "Local (stdio)": "Local (stdio)", + "Log File": "Archivo de registro", + "Logs": "Registros", + "MCP Servers": "Servidores MCP", + "MCP Servers (%lld)": "Servidores MCP (%lld)", + "Manage": "Administrar", + "Manage Servers…": "Administrar servidores…", + "Manage in Credential Pools": "Administrar en grupos de credenciales", + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": "Matrix usa un token de acceso (preferido) o usuario/contraseña. Obtén un token de acceso en Element: Ajustes → Ayuda y acerca de → Access Token.", + "Memory": "Memoria", + "Memory is managed by %@. File contents shown here may be stale.": "La memoria la gestiona %@. El contenido de archivos mostrado aquí puede estar desactualizado.", + "Message Hermes...": "Mensaje a Hermes...", + "Messages will appear here as the conversation progresses.": "Los mensajes aparecerán aquí a medida que avance la conversación.", + "Migrate": "Migrar", + "Missing required config:": "Falta configuración requerida:", + "Model ID": "ID del modelo", + "Models": "Modelos", + "Monitor": "Monitor", + "Name": "Nombre", + "Name (no leading slash)": "Nombre (sin barra inicial)", + "New Session": "Nueva sesión", + "New Webhook Subscription": "Nueva suscripción de webhook", + "New name for '%@'": "Nuevo nombre para '%@'", + "Next run: %@": "Próxima ejecución: %@", + "No AI provider credentials detected": "No se detectaron credenciales de proveedor de IA", + "No Active Session": "Sin sesión activa", + "No Activity": "Sin actividad", + "No Cron Jobs": "Sin tareas cron", + "No Dashboard": "Sin panel", + "No MCP servers configured": "No hay servidores MCP configurados", + "No Models": "Sin modelos", + "No Profiles": "Sin perfiles", + "No Projects": "Sin proyectos", + "No Updates": "Sin actualizaciones", + "No active session": "Sin sesión activa", + "No additional output. Check ~/.ssh/config and ssh-agent.": "Sin salida adicional. Revisa ~/.ssh/config y ssh-agent.", + "No commands available": "No hay comandos disponibles", + "No credential pools configured": "No hay grupos de credenciales configurados", + "No data": "Sin datos", + "No env vars configured.": "Sin variables de entorno configuradas.", + "No env vars. Add one with the button below.": "Sin variables de entorno. Añade una con el botón de abajo.", + "No headers configured.": "Sin cabeceras configuradas.", + "No headers. Add one with the button below.": "Sin cabeceras. Añade una con el botón de abajo.", + "No matching commands": "Sin comandos coincidentes", + "No paired users": "Sin usuarios vinculados", + "No platforms connected": "Sin plataformas conectadas", + "No plugins installed": "Sin plugins instalados", + "No quick commands configured": "Sin comandos rápidos configurados", + "No remote servers": "Sin servidores remotos", + "No scheduled jobs configured": "Sin tareas programadas configuradas", + "No servers configured yet": "Aún no hay servidores configurados", + "No sessions found": "No se encontraron sesiones", + "No tool calls found": "No se encontraron llamadas a herramientas", + "No webhook subscriptions": "Sin suscripciones de webhook", + "None": "Ninguno", + "Notable Sessions": "Sesiones destacadas", + "OAuth login for %@": "Inicio de sesión OAuth para %@", + "Open BotFather": "Abrir BotFather", + "Open Developer Portal": "Abrir Developer Portal", + "Open Local": "Abrir local", + "Open Other Server…": "Abrir otro servidor…", + "Open Scarf": "Abrir Scarf", + "Open Server": "Abrir servidor", + "Open Slack API": "Abrir Slack API", + "Open in Browser": "Abrir en el navegador", + "Open in Editor": "Abrir en el editor", + "Open in new window": "Abrir en nueva ventana", + "Open session": "Abrir sesión", + "Optional — defaults to hostname": "Opcional — por defecto el nombre de host", + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Opcionalmente, enfoca el resumen en un tema específico. Déjalo vacío para comprimir uniformemente.", + "Other": "Otro", + "Output": "Salida", + "Overview": "Resumen", + "PID %d": "PID %d", + "PID %lld": "PID %lld", + "Pair Device": "Emparejar dispositivo", + "Paired Users": "Usuarios emparejados", + "Paste code here…": "Pega el código aquí…", + "Pause": "Pausar", + "Pending Approvals": "Aprobaciones pendientes", + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "Las suscripciones por ruta (eventos, plantilla de prompt, destino de entrega) se gestionan en la barra lateral de Webhooks — no aquí. Este panel solo controla si la plataforma de webhooks está escuchando.", + "Period": "Período", + "Personalities": "Personalidades", + "Pick an MCP server to add.": "Elige un servidor MCP para añadir.", + "Pick one from the list, or add a new server from the toolbar.": "Elige uno de la lista o añade un nuevo servidor desde la barra de herramientas.", + "Platforms": "Plataformas", + "Plugins": "Plugins", + "Plugins extend hermes with custom tools, providers, or memory backends.": "Los plugins extienden hermes con herramientas, proveedores o backends de memoria personalizados.", + "Pre-Run Script": "Script previo a la ejecución", + "Preset:": "Preajuste:", + "Probe": "Probar", + "Profile": "Perfil", + "Profiles": "Perfiles", + "Project Name": "Nombre del proyecto", + "Project Path": "Ruta del proyecto", + "Projects": "Proyectos", + "Prompt": "Prompt", + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": "Proporciona una URL de Git (https://github.com/...) o una forma corta como `owner/repo`.", + "Provider": "Proveedor", + "Push to Talk": "Pulsar para hablar", + "Push to talk (Ctrl+B)": "Pulsar para hablar (Ctrl+B)", + "Quick Commands": "Comandos rápidos", + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Los comandos rápidos son atajos de shell que hermes expone en el chat como `/command_name`. Viven bajo `quick_commands:` en config.yaml.", + "Quit Scarf": "Salir de Scarf", + "Raw Config": "Configuración en bruto", + "Raw remote output (for debugging)": "Salida remota en bruto (para depurar)", + "Re-run": "Volver a ejecutar", + "Read": "Leer", + "Reasoning": "Razonamiento", + "Recent Sessions": "Sesiones recientes", + "Reconnect": "Reconectar", + "Recording…": "Grabando…", + "Refresh": "Actualizar", + "Reload": "Recargar", + "Remote (HTTP)": "Remoto (HTTP)", + "Remote Diagnostics — %@": "Diagnósticos remotos — %@", + "Remove": "Quitar", + "Remove %@?": "¿Quitar %@?", + "Remove credential for %@?": "¿Quitar credencial de %@?", + "Remove this server from Scarf.": "Quitar este servidor de Scarf.", + "Remove this server?": "¿Quitar este servidor?", + "Remove via config.yaml…": "Quitar vía config.yaml…", + "Remove webhook %@?": "¿Quitar webhook %@?", + "Rename": "Renombrar", + "Rename Profile": "Renombrar perfil", + "Rename Session": "Renombrar sesión", + "Rename...": "Renombrar...", + "Requires: %@": "Requiere: %@", + "Reset Cooldowns": "Restablecer enfriamientos", + "Restart": "Reiniciar", + "Restart Gateway": "Reiniciar gateway", + "Restart Hermes": "Reiniciar Hermes", + "Restart Now": "Reiniciar ahora", + "Restore": "Restaurar", + "Restore from backup?": "¿Restaurar desde copia de seguridad?", + "Restore…": "Restaurar…", + "Result": "Resultado", + "Resume": "Reanudar", + "Resume Session": "Reanudar sesión", + "Retry": "Reintentar", + "Return to Active Session (%@...)": "Volver a sesión activa (%@...)", + "Reveal": "Mostrar", + "Revoke": "Revocar", + "Rich Chat": "Chat enriquecido", + "Run Diagnostics…": "Ejecutar diagnósticos…", + "Run Dump": "Ejecutar dump", + "Run Now": "Ejecutar ahora", + "Run Setup in Terminal": "Ejecutar instalación en el terminal", + "Run `hermes memory setup` in Terminal for full provider configuration.": "Ejecuta `hermes memory setup` en el terminal para la configuración completa del proveedor.", + "Run remote diagnostics — check exactly which files are readable on this server.": "Ejecutar diagnósticos remotos — comprueba exactamente qué archivos se pueden leer en este servidor.", + "Running a single shell session on %@ that exercises every path Scarf reads…": "Ejecutando una sola sesión de shell en %@ que recorre cada ruta que lee Scarf…", + "Running checks…": "Ejecutando comprobaciones…", + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": "SOUL.md describe la voz, valores y personalidad del agente en ~/.hermes/SOUL.md. Se inyecta en el contexto de cada sesión.", + "SSH works but %@. Click for diagnostics.": "SSH funciona pero %@. Haz clic para ver diagnósticos.", + "Save": "Guardar", + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": "Scarf nunca pide frases de contraseña. Añade tu clave a ssh-agent en el terminal y haz clic en Reintentar. Si tu clave no es `id_ed25519`, cambia la ruta:", + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": "Scarf ejecuta estos comandos en una única sesión SSH idéntica al shell desde el que lee tu panel, por lo que una fila en verde significa que Scarf puede leer ese archivo en tiempo de ejecución.", + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": "Scarf usa ssh-agent para autenticarse. Si tu clave tiene frase de contraseña, ejecuta `ssh-add` antes de conectarte — Scarf nunca pide ni almacena frases de contraseña.", + "Scarf — %@": "Scarf — %@", + "Search": "Buscar", + "Search Results (%lld)": "Resultados de búsqueda (%lld)", + "Search messages...": "Buscar mensajes...", + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Busca o examina habilidades publicadas en registros como skills.sh, GitHub y el hub oficial.", + "Search registries": "Buscar en registros", + "Search…": "Buscar…", + "Select": "Seleccionar", + "Select Model": "Seleccionar modelo", + "Select a Job": "Seleccionar una tarea", + "Select a Profile": "Seleccionar un perfil", + "Select a Project": "Seleccionar un proyecto", + "Select a Session": "Seleccionar una sesión", + "Select a Skill": "Seleccionar una habilidad", + "Select a Tool Call": "Seleccionar una llamada a herramienta", + "Select an MCP Server": "Seleccionar un servidor MCP", + "Send message (Enter)": "Enviar mensaje (Intro)", + "Series": "Serie", + "Server No Longer Exists": "El servidor ya no existe", + "Server name": "Nombre del servidor", + "Servers": "Servidores", + "Service": "Servicio", + "Service definition stale": "Definición de servicio obsoleta", + "Session": "Sesión", + "Session title": "Título de sesión", + "Sessions": "Sesiones", + "Settings": "Ajustes", + "Setup": "Configuración", + "Share Debug Report…": "Compartir informe de depuración…", + "Shell Command": "Comando de shell", + "Show": "Mostrar", + "Show Output": "Mostrar salida", + "Show all %lld lines": "Mostrar las %lld líneas", + "Show details": "Mostrar detalles", + "Show less": "Mostrar menos", + "Show values": "Mostrar valores", + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": "La integración con Signal requiere signal-cli (basado en Java) instalado localmente. Vincula este Mac como dispositivo Signal y mantén el demonio en ejecución para que hermes envíe/reciba mensajes.", + "Site": "Sitio", + "Skills": "Habilidades", + "Skills (%lld)": "Habilidades (%lld)", + "Source": "Origen", + "Start": "Iniciar", + "Start Daemon": "Iniciar demonio", + "Start Hermes": "Iniciar Hermes", + "Start OAuth": "Iniciar OAuth", + "Start Pairing": "Iniciar emparejamiento", + "Start a new session or resume an existing one from the Session menu above.": "Inicia una nueva sesión o reanuda una existente desde el menú Sesión de arriba.", + "Status": "Estado", + "Stop": "Detener", + "Stop Hermes": "Detener Hermes", + "Subagent": "Subagente", + "Subagent Sessions (%lld)": "Sesiones de subagente (%lld)", + "Submit": "Enviar", + "Subscribe": "Suscribir", + "Succeeded": "Exitoso", + "Switch to This Profile": "Cambiar a este perfil", + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": "Cambiar el perfil activo cambia el directorio `~/.hermes` que usa hermes. Reinicia Scarf tras cambiar para que relea los archivos del nuevo perfil.", + "TTS Off": "TTS apagado", + "TTS On": "TTS encendido", + "Terminal": "Terminal", + "Test": "Probar", + "Test All": "Probar todo", + "Test Connection": "Probar conexión", + "Test failed": "Prueba fallida", + "Test passed": "Prueba superada", + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "El agente aún no ha anunciado comandos slash. Sigue escribiendo para enviar como mensaje, o pulsa Esc.", + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "La huella SSH del remoto ya no coincide con lo que tu archivo `~/.ssh/known_hosts` esperaba. Normalmente significa que el remoto se reinstaló — o, con menos frecuencia, que alguien intercepta la conexión.", + "The server this window was opened with has been removed from your registry.": "El servidor con el que se abrió esta ventana se ha eliminado de tu registro.", + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": "La configuración SSH del servidor se elimina de Scarf. Tus archivos remotos no se tocan.", + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": "El terminal es un TTY real — pega con ⌘V, pulsa Intro y espera a que el proceso termine con «login succeeded».", + "These list fields must be edited directly in config.yaml.": "Estos campos de lista deben editarse directamente en config.yaml.", + "This provider has no catalogued models.": "Este proveedor no tiene modelos catalogados.", + "This removes the credential from hermes. The upstream provider key is not revoked.": "Esto quita la credencial de hermes. La clave del proveedor original no se revoca.", + "This removes the profile directory and all data within it. This cannot be undone.": "Esto elimina el directorio del perfil y todos sus datos. No se puede deshacer.", + "This removes the scheduled job permanently.": "Esto elimina la tarea programada de forma permanente.", + "This removes the server from config.yaml and deletes any OAuth token.": "Esto elimina el servidor de config.yaml y borra cualquier token OAuth.", + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": "Esto sube registros, configuración (con secretos redactados) e información del sistema a la infraestructura de soporte de Nous Research. Revisa la salida antes de compartir la URL devuelta.", + "This will overwrite files under ~/.hermes/ with the archive contents.": "Esto sobrescribirá archivos bajo ~/.hermes/ con el contenido del archivo.", + "This will permanently delete the session and all its messages.": "Esto eliminará permanentemente la sesión y todos sus mensajes.", + "Timeout: %llds (%@)": "Tiempo de espera: %1$lld s (%2$@)", + "Timeouts": "Tiempos de espera", + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Para evitar que pida la frase de contraseña en cada reinicio, añade `--apple-use-keychain` para almacenarla en el llavero de macOS.", + "Toggle text-to-speech (/voice tts)": "Alternar texto a voz (/voice tts)", + "Toggle voice mode (/voice)": "Alternar modo de voz (/voice)", + "Token on disk. Clear to re-authenticate next time the gateway connects.": "Token en disco. Bórralo para que se vuelva a autenticar en la próxima conexión del gateway.", + "Tool Approval Required": "Se requiere aprobación de herramienta", + "Tool Filters": "Filtros de herramientas", + "Tools": "Herramientas", + "Top Tools": "Herramientas principales", + "Uninstall": "Desinstalar", + "Unknown: %@": "Desconocido: %@", + "Update": "Actualizar", + "Update All": "Actualizar todo", + "Updated: %@": "Actualizado: %@", + "Updates": "Actualizaciones", + "Upload": "Subir", + "Upload debug report?": "¿Subir informe de depuración?", + "Usage Stats": "Estadísticas de uso", + "Use": "Usar", + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": "Usa un modelo que no esté en el catálogo. Hermes acepta cualquier cadena que reconozca el proveedor, incluidas formas con prefijo como «openrouter/anthropic/claude-opus-4.6».", + "Use this": "Usar este", + "Use {dot.notation} to reference fields in the webhook payload.": "Usa {dot.notation} para referenciar campos del payload del webhook.", + "Used as the YAML key. Lowercase, no spaces.": "Se usa como clave YAML. Minúsculas, sin espacios.", + "View": "Ver", + "View All": "Ver todo", + "Voice Off": "Voz desactivada", + "Voice On": "Voz activada", + "Waiting for authorization URL…": "Esperando URL de autorización…", + "Waiting for first probe": "Esperando primera comprobación", + "Waiting for hermes to prompt for the code…": "Esperando a que hermes pida el código…", + "Webhook platform not enabled": "Plataforma de webhooks no activada", + "Webhooks": "Webhooks", + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Los webhooks permiten que servicios externos disparen respuestas del agente. Cada suscripción obtiene su propio endpoint de URL.", + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp usa la biblioteca Baileys para emular una sesión de WhatsApp Web. Empareja este Mac como dispositivo vinculado ejecutando el asistente y escaneando el código QR con tu teléfono (Ajustes → Dispositivos vinculados → Vincular dispositivo).", + "Working": "Trabajando", + "e.g. anthropic": "p. ej. anthropic", + "e.g. deploy": "p. ej. deploy", + "e.g. experimental": "p. ej. experimental", + "e.g. github": "p. ej. github", + "e.g. openai": "p. ej. openai", + "e.g. openai/gpt-4o": "p. ej. openai/gpt-4o", + "e.g. team-prod": "p. ej. team-prod", + "exit code: %d": "código de salida: %d", + "hermes at %@": "hermes en %@", + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": "La integración de iMessage usa BlueBubbles Server. Necesitas un Mac encendido con Messages.app iniciado — instala BlueBubbles Server ahí y apunta hermes a la URL de ese servidor.", + "signal-cli is available on PATH": "signal-cli está disponible en el PATH", + "signal-cli not found on PATH — install it first": "signal-cli no está en el PATH — instálalo primero", + "ssh trace": "traza ssh", + "ssh-agent (leave blank)": "ssh-agent (dejar vacío)", + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": "No se encontró state.db en la ruta configurada. O bien Hermes no se ha ejecutado aún en este servidor, o está instalado en una ubicación no predeterminada — establece arriba el campo del directorio de datos de Hermes.", + "state.db not found at the default location, but Scarf found one at:": "No se encontró state.db en la ubicación predeterminada, pero Scarf encontró uno en:", + "state.db readable": "state.db legible", + "— or use user/password login —": "— o usa inicio de sesión con usuario/contraseña —" +} diff --git a/tools/translations/fr.json b/tools/translations/fr.json new file mode 100644 index 0000000..db48efb --- /dev/null +++ b/tools/translations/fr.json @@ -0,0 +1,520 @@ +{ + "%@ ctx": "%@ contexte", + "%@ in / %@ out": "%1$@ entrée / %2$@ sortie", + "%@ reasoning": "%@ raisonnement", + "%@ tokens": "%@ jetons", + "%@s · %lld tools": "%1$@ s · %2$lld outils", + "%lld %@": "%1$lld %2$@", + "%lld chars": "%lld caractères", + "%lld delivery failure%@": "%1$lld échec de livraison%2$@", + "%lld entries": "%lld entrées", + "%lld files": "%lld fichiers", + "%lld messages": "%lld messages", + "%lld msgs": "%lld msgs", + "%lld of %lld enabled": "%1$lld sur %2$lld activés", + "%lld reasoning": "%lld raisonnement", + "%lld req": "%lld requis", + "%lld required config": "%lld configuration(s) requise(s)", + "%lld sessions": "%lld sessions", + "%lld tokens": "%lld jetons", + "%lld tools": "%lld outils", + "30 Days": "30 jours", + "7 Days": "7 jours", + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Un QR code apparaîtra ci-dessous. Scannez-le avec WhatsApp sur votre téléphone. La session est enregistrée dans ~/.hermes/platforms/whatsapp/, vous n'aurez donc pas besoin de la rescanner après un redémarrage.", + "API Key": "Clé API", + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "Les clés API ne sont jamais affichées en entier. Scarf n'affiche que les 4 derniers caractères pour identification. Les valeurs complètes sont stockées par hermes dans ~/.hermes/auth.json.", + "Actions": "Actions", + "Active": "Actif", + "Active profile": "Profil actif", + "Activity": "Activité", + "Activity Patterns": "Schémas d'activité", + "Add": "Ajouter", + "Add Command": "Ajouter une commande", + "Add Credential": "Ajouter des identifiants", + "Add Custom": "Ajouter personnalisé", + "Add Custom MCP Server": "Ajouter un serveur MCP personnalisé", + "Add Project": "Ajouter un projet", + "Add Quick Command": "Ajouter une commande rapide", + "Add Remote Server": "Ajouter un serveur distant", + "Add Server": "Ajouter un serveur", + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": "Ajoutez un dossier de projet pour commencer. Créez un fichier .scarf/dashboard.json dans votre projet pour définir des widgets.", + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": "Ajoutez des identifiants dans **Configurer → Pools d'identifiants**, définissez `ANTHROPIC_API_KEY` (ou équivalent) dans `~/.hermes/.env`, ou exportez-la dans votre profil shell, puis redémarrez Scarf.", + "Add from Preset": "Ajouter depuis un préréglage", + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Ajoutez des identifiants de rotation pour que hermes puisse basculer entre les clés lorsqu'une atteint la limite de débit.", + "Add your first command": "Ajoutez votre première commande", + "After approving in your browser, the provider shows a code. Paste it below and submit.": "Après avoir approuvé dans votre navigateur, le fournisseur affiche un code. Collez-le ci-dessous et soumettez.", + "Agent": "Agent", + "All": "Tous", + "All Levels": "Tous les niveaux", + "All Sessions": "Toutes les sessions", + "All Time": "Tout le temps", + "All installed hub skills are up to date.": "Toutes les compétences installées depuis le hub sont à jour.", + "Approve": "Approuver", + "Archive": "Archiver", + "Args (one per line)": "Arguments (un par ligne)", + "Arguments": "Arguments", + "Assistant Message": "Message de l'assistant", + "Auth": "Auth", + "Authentication uses ssh-agent": "L'authentification utilise ssh-agent", + "Authorization Code": "Code d'autorisation", + "Authorization URL": "URL d'autorisation", + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Les tâches auxiliaires utilisent des modèles distincts, généralement moins coûteux. Laissez Fournisseur sur `auto` pour hériter du fournisseur principal.", + "Back": "Retour", + "Back to Catalog": "Retour au catalogue", + "Backup Now": "Sauvegarder maintenant", + "Becomes the key under mcp_servers: in config.yaml.": "Devient la clé sous mcp_servers : dans config.yaml.", + "Browse": "Parcourir", + "Browse Hub": "Parcourir le hub", + "Browse the Hub": "Parcourir le hub", + "Browse...": "Parcourir...", + "Browser": "Navigateur", + "By Day": "Par jour", + "By Hour": "Par heure", + "Call timeout": "Délai d'appel", + "Can't read Hermes state on %@": "Impossible de lire l'état de Hermes sur %@", + "Cancel": "Annuler", + "Changes won't take effect until Hermes reloads the config.": "Les modifications ne prendront effet qu'au rechargement de la configuration par Hermes.", + "Chat": "Chat", + "Chat Messages": "Messages de chat", + "Check": "Vérifier", + "Check Now": "Vérifier maintenant", + "Check for Updates": "Vérifier les mises à jour", + "Check for Updates…": "Vérifier les mises à jour…", + "Checking…": "Vérification…", + "Choose a cron job from the list": "Choisissez une tâche cron dans la liste", + "Choose a profile to inspect.": "Choisissez un profil à inspecter.", + "Choose a project from the sidebar to view its dashboard.": "Choisissez un projet dans la barre latérale pour voir son tableau de bord.", + "Choose a session from the list": "Choisissez une session dans la liste", + "Choose a skill from the list": "Choisissez une compétence dans la liste", + "Choose an entry from the list": "Choisissez une entrée dans la liste", + "Choose…": "Choisir…", + "Clear Token": "Effacer le jeton", + "Clear all skills on save": "Effacer toutes les compétences à l'enregistrement", + "Click Add to connect to a remote Hermes installation over SSH.": "Cliquez sur Ajouter pour vous connecter à une installation Hermes distante via SSH.", + "Click for details": "Cliquez pour les détails", + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": "Cliquer sur Démarrer OAuth ouvre la page d'autorisation du fournisseur dans votre navigateur. Après approbation, copiez le code affiché par le fournisseur et collez-le dans le terminal qui apparaît ensuite.", + "Clone config, .env, SOUL.md from active profile": "Cloner config, .env, SOUL.md depuis le profil actif", + "Close": "Fermer", + "Close Window": "Fermer la fenêtre", + "Code: %@": "Code : %@", + "Command": "Commande", + "Command looks destructive. Double-check before saving.": "La commande semble destructive. Vérifiez avant d'enregistrer.", + "Component": "Composant", + "Compress": "Compresser", + "Compress Conversation": "Compresser la conversation", + "Compress conversation (/compress)": "Compresser la conversation (/compress)", + "Configure": "Configurer", + "Connect timeout": "Délai de connexion", + "Connected": "Connecté", + "Connected — can't read Hermes state": "Connecté — impossible de lire l'état de Hermes", + "Connection": "Connexion", + "Continue Last Session": "Continuer la dernière session", + "Copied": "Copié", + "Copy": "Copier", + "Copy Full Report": "Copier le rapport complet", + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": "Copie un résumé en texte brut de chaque vérification (succès et échecs) — à coller dans les issues GitHub pour tout voir d'un coup.", + "Copy code": "Copier le code", + "Copy error details": "Copier les détails de l'erreur", + "Create": "Créer", + "Create Profile": "Créer un profil", + "Create Subscription": "Créer un abonnement", + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": "Créez une application Slack sur api.slack.com/apps, activez Socket Mode, accordez les scopes bot (chat:write, app_mentions:read, channels:history, etc.), puis copiez le Bot User OAuth Token (xoxb-) et l'App-Level Token (xapp-).", + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": "Créez un bot via @BotFather et obtenez votre ID numérique via @userinfobot. Collez le jeton et votre ID ci-dessous — le bot ne répondra qu'aux utilisateurs autorisés.", + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": "Créez un jeton d'accès à longue durée dans Home Assistant (Profil → Sécurité → Long-Lived Access Tokens). Par défaut, aucun événement n'est transféré — activez Watch All Changes ou ajoutez des filtres d'entités ci-dessous.", + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": "Créez un jeton d'accès personnel sous Profil → Sécurité → Personal Access Tokens, ou créez un compte bot. Utilisez le jeton comme valeur de MATTERMOST_TOKEN.", + "Create a profile to isolate config and skills.": "Créez un profil pour isoler configuration et compétences.", + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": "Créez une application dans le Developer Portal de Discord, activez les intents Message Content et Server Members, puis copiez le jeton du bot. Invitez le bot sur votre serveur via le générateur d'URL OAuth2.", + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": "Créez une application dans la Feishu/Lark Developer Console, activez Interactive Card si vous avez besoin de réponses par bouton, et copiez l'App ID et l'App Secret. Le mode WebSocket (recommandé) ne nécessite pas de point d'accès public.", + "Credential Pools": "Pools d'identifiants", + "Credential Type": "Type d'identifiants", + "Credentials": "Identifiants", + "Cron": "Cron", + "Cron Jobs": "Tâches cron", + "Current: %@": "Actuel : %@", + "Custom…": "Personnalisé…", + "Daemon running": "Démon en cours d'exécution", + "Dashboard": "Tableau de bord", + "Default": "Par défaut", + "Default: ~/.hermes": "Par défaut : ~/.hermes", + "Defaults to ~/.ssh/config or current user": "Par défaut : ~/.ssh/config ou utilisateur courant", + "Delete": "Supprimer", + "Delete %@?": "Supprimer %@ ?", + "Delete Session?": "Supprimer la session ?", + "Delete profile '%@'?": "Supprimer le profil « %@ » ?", + "Delete...": "Supprimer...", + "Deliver: %@": "Livrer : %@", + "Diagnostic Output": "Sortie de diagnostic", + "Diagnostics": "Diagnostics", + "Disable": "Désactiver", + "Disabled": "Désactivé", + "Docs": "Docs", + "Done": "Terminé", + "Edit": "Modifier", + "Edit %@": "Modifier %@", + "Edit /%@": "Modifier /%@", + "Edit Agent Memory": "Modifier la mémoire de l'agent", + "Edit User Profile": "Modifier le profil utilisateur", + "Edit config.yaml": "Modifier config.yaml", + "Empty": "Vide", + "Enable": "Activer", + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Activez la 2FA sur votre compte email et générez un mot de passe d'application. Les mots de passe de compte classiques ne fonctionneront pas. Définissez toujours les expéditeurs autorisés — sinon toute personne connaissant l'adresse pourra envoyer des messages à l'agent.", + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Activez la plateforme webhook pour accepter les déclencheurs d'agent pilotés par événements. Le secret HMAC est utilisé en repli quand les routes individuelles n'en fournissent pas.", + "Enabled": "Activé", + "Env vars, headers, and tool filters can be edited after the server is added.": "Les variables d'environnement, en-têtes et filtres d'outils peuvent être modifiés après l'ajout du serveur.", + "Environment Variables": "Variables d'environnement", + "Error": "Erreur", + "Errors": "Erreurs", + "Exclude": "Exclure", + "Execute": "Exécuter", + "Expected at %@": "Attendu à %@", + "Export All": "Tout exporter", + "Export...": "Exporter...", + "Export…": "Exporter…", + "Expose prompts": "Exposer les prompts", + "Expose resources": "Exposer les ressources", + "Fetch": "Récupérer", + "Files": "Fichiers", + "Filter logs...": "Filtrer les journaux...", + "Filter servers...": "Filtrer les serveurs...", + "Filter skills...": "Filtrer les compétences...", + "Filter to session %@": "Filtrer sur la session %@", + "Focus topic (optional)": "Sujet ciblé (optionnel)", + "Full copy of active profile (all state)": "Copie complète du profil actif (tout l'état)", + "Gateway": "Gateway", + "Gateway Running": "Gateway en cours", + "Gateway Stopped": "Gateway arrêté", + "Gateway restart required": "Redémarrage du gateway requis", + "Header": "En-tête", + "Headers": "En-têtes", + "Health": "Santé", + "Hermes Not Found": "Hermes introuvable", + "Hermes Running": "Hermes en cours", + "Hermes Stopped": "Hermes arrêté", + "Hermes binary not found": "Binaire Hermes introuvable", + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": "Hermes a besoin d'un secret webhook global et d'un port avant que les abonnements puissent recevoir du trafic. Lancez l'assistant de configuration du gateway ou éditez ~/.hermes/config.yaml manuellement.", + "Hide": "Masquer", + "Hide Output": "Masquer la sortie", + "Hide details": "Masquer les détails", + "Host key changed": "Clé d'hôte modifiée", + "ID: %@": "ID : %@", + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "S'il s'agit de la première connexion, assurez-vous que votre clé est chargée avec `ssh-add` et que l'hôte distant l'accepte.", + "If you trust the change, remove the stale entry and reconnect:": "Si vous faites confiance au changement, supprimez l'entrée obsolète et reconnectez-vous :", + "Import": "Importer", + "Inactive": "Inactif", + "Include (comma-separated — if set, only these are exposed)": "Inclure (séparés par des virgules — si défini, seuls ceux-ci sont exposés)", + "Insights": "Analyses", + "Install": "Installer", + "Install BlueBubbles Server": "Installer BlueBubbles Server", + "Install Plugin": "Installer le plugin", + "Install a Plugin": "Installer un plugin", + "Install signal-cli": "Installer signal-cli", + "Installed": "Installé", + "Interact": "Interagir", + "Invalid URL": "URL invalide", + "Keep typing to send as a message, or press Esc.": "Continuez à taper pour envoyer en tant que message, ou appuyez sur Échap.", + "Label (optional)": "Étiquette (optionnel)", + "Last Output": "Dernière sortie", + "Last probe: %@": "Dernière sonde : %@", + "Last run: %@": "Dernière exécution : %@", + "Last updated: %@": "Mis à jour : %@", + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Laissez vide pour déduire du préfixe de l'ID du modèle (« openai/... » → openai).", + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Laissez vide sauf si Hermes est installé à un chemin non standard (les services systemd résident souvent dans /var/lib/hermes/.hermes ; les sidecars Docker varient). Tester la connexion suggère automatiquement une valeur lorsqu'un des chemins alternatifs connus est détecté.", + "Level": "Niveau", + "Link Device": "Associer un appareil", + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": "Associez d'abord l'appareil pour générer et scanner un QR code. Une fois associé, démarrez le démon — il doit continuer à fonctionner pour que hermes puisse envoyer/recevoir des messages.", + "Linking…": "Association…", + "Loaded": "Chargé", + "Loading session…": "Chargement de la session…", + "Local": "Local", + "Local (stdio)": "Local (stdio)", + "Log File": "Fichier journal", + "Logs": "Journaux", + "MCP Servers": "Serveurs MCP", + "MCP Servers (%lld)": "Serveurs MCP (%lld)", + "Manage": "Gérer", + "Manage Servers…": "Gérer les serveurs…", + "Manage in Credential Pools": "Gérer dans les pools d'identifiants", + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": "Matrix utilise soit un jeton d'accès (préféré), soit un nom d'utilisateur/mot de passe. Obtenez un jeton d'accès dans Element : Paramètres → Aide & À propos → Access Token.", + "Memory": "Mémoire", + "Memory is managed by %@. File contents shown here may be stale.": "La mémoire est gérée par %@. Le contenu des fichiers affichés ici peut être obsolète.", + "Message Hermes...": "Envoyer un message à Hermes...", + "Messages will appear here as the conversation progresses.": "Les messages apparaîtront ici au fur et à mesure de la conversation.", + "Migrate": "Migrer", + "Missing required config:": "Configuration requise manquante :", + "Model ID": "ID du modèle", + "Models": "Modèles", + "Monitor": "Surveiller", + "Name": "Nom", + "Name (no leading slash)": "Nom (sans barre oblique initiale)", + "New Session": "Nouvelle session", + "New Webhook Subscription": "Nouvel abonnement webhook", + "New name for '%@'": "Nouveau nom pour « %@ »", + "Next run: %@": "Prochaine exécution : %@", + "No AI provider credentials detected": "Aucun identifiant de fournisseur d'IA détecté", + "No Active Session": "Aucune session active", + "No Activity": "Aucune activité", + "No Cron Jobs": "Aucune tâche cron", + "No Dashboard": "Aucun tableau de bord", + "No MCP servers configured": "Aucun serveur MCP configuré", + "No Models": "Aucun modèle", + "No Profiles": "Aucun profil", + "No Projects": "Aucun projet", + "No Updates": "Aucune mise à jour", + "No active session": "Aucune session active", + "No additional output. Check ~/.ssh/config and ssh-agent.": "Aucune sortie supplémentaire. Vérifiez ~/.ssh/config et ssh-agent.", + "No commands available": "Aucune commande disponible", + "No credential pools configured": "Aucun pool d'identifiants configuré", + "No data": "Aucune donnée", + "No env vars configured.": "Aucune variable d'environnement configurée.", + "No env vars. Add one with the button below.": "Aucune variable d'environnement. Ajoutez-en une avec le bouton ci-dessous.", + "No headers configured.": "Aucun en-tête configuré.", + "No headers. Add one with the button below.": "Aucun en-tête. Ajoutez-en un avec le bouton ci-dessous.", + "No matching commands": "Aucune commande correspondante", + "No paired users": "Aucun utilisateur appairé", + "No platforms connected": "Aucune plateforme connectée", + "No plugins installed": "Aucun plugin installé", + "No quick commands configured": "Aucune commande rapide configurée", + "No remote servers": "Aucun serveur distant", + "No scheduled jobs configured": "Aucune tâche planifiée configurée", + "No servers configured yet": "Aucun serveur configuré pour l'instant", + "No sessions found": "Aucune session trouvée", + "No tool calls found": "Aucun appel d'outil trouvé", + "No webhook subscriptions": "Aucun abonnement webhook", + "None": "Aucun", + "Notable Sessions": "Sessions notables", + "OAuth login for %@": "Connexion OAuth pour %@", + "Open BotFather": "Ouvrir BotFather", + "Open Developer Portal": "Ouvrir le Developer Portal", + "Open Local": "Ouvrir local", + "Open Other Server…": "Ouvrir un autre serveur…", + "Open Scarf": "Ouvrir Scarf", + "Open Server": "Ouvrir le serveur", + "Open Slack API": "Ouvrir l'API Slack", + "Open in Browser": "Ouvrir dans le navigateur", + "Open in Editor": "Ouvrir dans l'éditeur", + "Open in new window": "Ouvrir dans une nouvelle fenêtre", + "Open session": "Ouvrir la session", + "Optional — defaults to hostname": "Optionnel — par défaut : nom d'hôte", + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Centrez éventuellement le résumé sur un sujet précis. Laissez vide pour compresser uniformément.", + "Other": "Autre", + "Output": "Sortie", + "Overview": "Vue d'ensemble", + "PID %d": "PID %d", + "PID %lld": "PID %lld", + "Pair Device": "Appairer l'appareil", + "Paired Users": "Utilisateurs appairés", + "Paste code here…": "Collez le code ici…", + "Pause": "Pause", + "Pending Approvals": "Approbations en attente", + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "Les abonnements par route (événements, modèle de prompt, cible de livraison) sont gérés dans la barre latérale Webhooks — pas ici. Ce panneau contrôle uniquement si la plateforme webhook écoute.", + "Period": "Période", + "Personalities": "Personnalités", + "Pick an MCP server to add.": "Choisissez un serveur MCP à ajouter.", + "Pick one from the list, or add a new server from the toolbar.": "Choisissez-en un dans la liste ou ajoutez un nouveau serveur depuis la barre d'outils.", + "Platforms": "Plateformes", + "Plugins": "Plugins", + "Plugins extend hermes with custom tools, providers, or memory backends.": "Les plugins étendent hermes avec des outils, fournisseurs ou backends mémoire personnalisés.", + "Pre-Run Script": "Script de pré-exécution", + "Preset:": "Préréglage :", + "Probe": "Sonder", + "Profile": "Profil", + "Profiles": "Profils", + "Project Name": "Nom du projet", + "Project Path": "Chemin du projet", + "Projects": "Projets", + "Prompt": "Prompt", + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": "Fournissez une URL Git (https://github.com/...) ou un raccourci comme `owner/repo`.", + "Provider": "Fournisseur", + "Push to Talk": "Push-to-Talk", + "Push to talk (Ctrl+B)": "Push-to-Talk (Ctrl+B)", + "Quick Commands": "Commandes rapides", + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Les commandes rapides sont des raccourcis shell que hermes expose dans le chat sous la forme `/command_name`. Elles se trouvent sous `quick_commands:` dans config.yaml.", + "Quit Scarf": "Quitter Scarf", + "Raw Config": "Configuration brute", + "Raw remote output (for debugging)": "Sortie distante brute (pour le débogage)", + "Re-run": "Relancer", + "Read": "Lire", + "Reasoning": "Raisonnement", + "Recent Sessions": "Sessions récentes", + "Reconnect": "Reconnecter", + "Recording…": "Enregistrement…", + "Refresh": "Actualiser", + "Reload": "Recharger", + "Remote (HTTP)": "Distant (HTTP)", + "Remote Diagnostics — %@": "Diagnostics distants — %@", + "Remove": "Retirer", + "Remove %@?": "Retirer %@ ?", + "Remove credential for %@?": "Retirer les identifiants pour %@ ?", + "Remove this server from Scarf.": "Retirer ce serveur de Scarf.", + "Remove this server?": "Retirer ce serveur ?", + "Remove via config.yaml…": "Retirer via config.yaml…", + "Remove webhook %@?": "Retirer le webhook %@ ?", + "Rename": "Renommer", + "Rename Profile": "Renommer le profil", + "Rename Session": "Renommer la session", + "Rename...": "Renommer...", + "Requires: %@": "Nécessite : %@", + "Reset Cooldowns": "Réinitialiser les temps de repos", + "Restart": "Redémarrer", + "Restart Gateway": "Redémarrer le gateway", + "Restart Hermes": "Redémarrer Hermes", + "Restart Now": "Redémarrer maintenant", + "Restore": "Restaurer", + "Restore from backup?": "Restaurer depuis la sauvegarde ?", + "Restore…": "Restaurer…", + "Result": "Résultat", + "Resume": "Reprendre", + "Resume Session": "Reprendre la session", + "Retry": "Réessayer", + "Return to Active Session (%@...)": "Retour à la session active (%@...)", + "Reveal": "Afficher", + "Revoke": "Révoquer", + "Rich Chat": "Chat enrichi", + "Run Diagnostics…": "Lancer les diagnostics…", + "Run Dump": "Exécuter Dump", + "Run Now": "Exécuter maintenant", + "Run Setup in Terminal": "Lancer l'installation dans le terminal", + "Run `hermes memory setup` in Terminal for full provider configuration.": "Exécutez `hermes memory setup` dans le terminal pour la configuration complète du fournisseur.", + "Run remote diagnostics — check exactly which files are readable on this server.": "Lancer les diagnostics distants — vérifier exactement quels fichiers sont lisibles sur ce serveur.", + "Running a single shell session on %@ that exercises every path Scarf reads…": "Exécution d'une session shell unique sur %@ qui teste chaque chemin que Scarf lit…", + "Running checks…": "Exécution des vérifications…", + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": "SOUL.md décrit la voix, les valeurs et la personnalité de l'agent dans ~/.hermes/SOUL.md. Il est injecté dans le contexte de chaque session.", + "SSH works but %@. Click for diagnostics.": "SSH fonctionne mais %@. Cliquez pour les diagnostics.", + "Save": "Enregistrer", + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": "Scarf ne demande jamais de phrases secrètes. Ajoutez votre clé à ssh-agent dans le terminal, puis cliquez sur Réessayer. Si votre clé n'est pas `id_ed25519`, changez le chemin :", + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": "Scarf exécute ces commandes sur une session SSH unique identique au shell utilisé par votre tableau de bord. Une ligne verte signifie donc que Scarf peut réellement lire ce fichier à l'exécution.", + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": "Scarf utilise ssh-agent pour l'authentification. Si votre clé a une phrase secrète, exécutez `ssh-add` avant de vous connecter — Scarf ne demande ni ne stocke jamais de phrases secrètes.", + "Scarf — %@": "Scarf — %@", + "Search": "Rechercher", + "Search Results (%lld)": "Résultats de la recherche (%lld)", + "Search messages...": "Rechercher des messages...", + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Recherchez ou parcourez les compétences publiées sur des registres comme skills.sh, GitHub et le hub officiel.", + "Search registries": "Rechercher dans les registres", + "Search…": "Rechercher…", + "Select": "Sélectionner", + "Select Model": "Sélectionner le modèle", + "Select a Job": "Sélectionner une tâche", + "Select a Profile": "Sélectionner un profil", + "Select a Project": "Sélectionner un projet", + "Select a Session": "Sélectionner une session", + "Select a Skill": "Sélectionner une compétence", + "Select a Tool Call": "Sélectionner un appel d'outil", + "Select an MCP Server": "Sélectionner un serveur MCP", + "Send message (Enter)": "Envoyer le message (Entrée)", + "Series": "Série", + "Server No Longer Exists": "Le serveur n'existe plus", + "Server name": "Nom du serveur", + "Servers": "Serveurs", + "Service": "Service", + "Service definition stale": "Définition de service obsolète", + "Session": "Session", + "Session title": "Titre de session", + "Sessions": "Sessions", + "Settings": "Réglages", + "Setup": "Configuration", + "Share Debug Report…": "Partager le rapport de débogage…", + "Shell Command": "Commande shell", + "Show": "Afficher", + "Show Output": "Afficher la sortie", + "Show all %lld lines": "Afficher toutes les %lld lignes", + "Show details": "Afficher les détails", + "Show less": "Afficher moins", + "Show values": "Afficher les valeurs", + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": "L'intégration Signal nécessite signal-cli (basé sur Java) installé localement. Associez ce Mac comme appareil Signal, puis laissez le démon fonctionner pour que hermes puisse envoyer/recevoir des messages.", + "Site": "Site", + "Skills": "Compétences", + "Skills (%lld)": "Compétences (%lld)", + "Source": "Source", + "Start": "Démarrer", + "Start Daemon": "Démarrer le démon", + "Start Hermes": "Démarrer Hermes", + "Start OAuth": "Démarrer OAuth", + "Start Pairing": "Démarrer l'appairage", + "Start a new session or resume an existing one from the Session menu above.": "Démarrez une nouvelle session ou reprenez-en une existante depuis le menu Session ci-dessus.", + "Status": "Statut", + "Stop": "Arrêter", + "Stop Hermes": "Arrêter Hermes", + "Subagent": "Sous-agent", + "Subagent Sessions (%lld)": "Sessions de sous-agent (%lld)", + "Submit": "Soumettre", + "Subscribe": "S'abonner", + "Succeeded": "Réussi", + "Switch to This Profile": "Basculer sur ce profil", + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": "Changer de profil actif modifie le répertoire `~/.hermes` utilisé par hermes. Redémarrez Scarf après le changement pour qu'il relise les fichiers du nouveau profil.", + "TTS Off": "TTS désactivé", + "TTS On": "TTS activé", + "Terminal": "Terminal", + "Test": "Tester", + "Test All": "Tout tester", + "Test Connection": "Tester la connexion", + "Test failed": "Test échoué", + "Test passed": "Test réussi", + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "L'agent n'a pas encore annoncé de commandes slash. Continuez à taper pour envoyer en tant que message, ou appuyez sur Échap.", + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "L'empreinte SSH de l'hôte distant ne correspond plus à ce qu'attendait votre fichier `~/.ssh/known_hosts`. Cela signifie généralement que l'hôte distant a été réinstallé — ou, plus rarement, que quelqu'un intercepte la connexion.", + "The server this window was opened with has been removed from your registry.": "Le serveur avec lequel cette fenêtre a été ouverte a été retiré de votre registre.", + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": "La configuration SSH du serveur est supprimée de Scarf. Vos fichiers distants ne sont pas modifiés.", + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": "Le terminal est un véritable TTY — collez avec ⌘V, appuyez sur Retour et attendez que le processus se termine avec « login succeeded ».", + "These list fields must be edited directly in config.yaml.": "Ces champs liste doivent être modifiés directement dans config.yaml.", + "This provider has no catalogued models.": "Ce fournisseur n'a pas de modèles catalogués.", + "This removes the credential from hermes. The upstream provider key is not revoked.": "Cela retire les identifiants de hermes. La clé chez le fournisseur amont n'est pas révoquée.", + "This removes the profile directory and all data within it. This cannot be undone.": "Cela supprime le répertoire du profil et toutes les données qu'il contient. Action irréversible.", + "This removes the scheduled job permanently.": "Cela supprime définitivement la tâche planifiée.", + "This removes the server from config.yaml and deletes any OAuth token.": "Cela retire le serveur de config.yaml et supprime tout jeton OAuth.", + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": "Cela téléverse les journaux, la configuration (secrets masqués) et les infos système vers l'infrastructure de support Nous Research. Vérifiez la sortie ci-dessous avant de partager l'URL retournée.", + "This will overwrite files under ~/.hermes/ with the archive contents.": "Cela écrasera les fichiers sous ~/.hermes/ avec le contenu de l'archive.", + "This will permanently delete the session and all its messages.": "Cela supprimera définitivement la session et tous ses messages.", + "Timeout: %llds (%@)": "Délai : %1$lld s (%2$@)", + "Timeouts": "Délais", + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Pour éviter la demande de phrase secrète à chaque redémarrage, ajoutez `--apple-use-keychain` pour la mettre en cache dans le trousseau macOS.", + "Toggle text-to-speech (/voice tts)": "Basculer la synthèse vocale (/voice tts)", + "Toggle voice mode (/voice)": "Basculer le mode vocal (/voice)", + "Token on disk. Clear to re-authenticate next time the gateway connects.": "Jeton sur disque. Effacez-le pour forcer une nouvelle authentification à la prochaine connexion du gateway.", + "Tool Approval Required": "Approbation d'outil requise", + "Tool Filters": "Filtres d'outils", + "Tools": "Outils", + "Top Tools": "Outils principaux", + "Uninstall": "Désinstaller", + "Unknown: %@": "Inconnu : %@", + "Update": "Mettre à jour", + "Update All": "Tout mettre à jour", + "Updated: %@": "Mis à jour : %@", + "Updates": "Mises à jour", + "Upload": "Téléverser", + "Upload debug report?": "Téléverser le rapport de débogage ?", + "Usage Stats": "Statistiques d'utilisation", + "Use": "Utiliser", + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": "Utilisez un modèle absent du catalogue. Hermes accepte toute chaîne reconnue par le fournisseur, y compris des formes préfixées comme « openrouter/anthropic/claude-opus-4.6 ».", + "Use this": "Utiliser celui-ci", + "Use {dot.notation} to reference fields in the webhook payload.": "Utilisez {dot.notation} pour référencer des champs dans la charge utile du webhook.", + "Used as the YAML key. Lowercase, no spaces.": "Utilisé comme clé YAML. Minuscules, sans espaces.", + "View": "Voir", + "View All": "Tout voir", + "Voice Off": "Voix désactivée", + "Voice On": "Voix activée", + "Waiting for authorization URL…": "En attente de l'URL d'autorisation…", + "Waiting for first probe": "En attente de la première sonde", + "Waiting for hermes to prompt for the code…": "En attente que hermes demande le code…", + "Webhook platform not enabled": "Plateforme webhook non activée", + "Webhooks": "Webhooks", + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Les webhooks permettent à des services externes de déclencher des réponses d'agent. Chaque abonnement a son propre point d'accès URL.", + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp utilise la bibliothèque Baileys pour émuler une session WhatsApp Web. Appairez ce Mac comme appareil lié en lançant l'assistant d'appairage et en scannant le QR code avec votre téléphone (Paramètres → Appareils liés → Associer un appareil).", + "Working": "Travail en cours", + "e.g. anthropic": "par ex. anthropic", + "e.g. deploy": "par ex. deploy", + "e.g. experimental": "par ex. experimental", + "e.g. github": "par ex. github", + "e.g. openai": "par ex. openai", + "e.g. openai/gpt-4o": "par ex. openai/gpt-4o", + "e.g. team-prod": "par ex. team-prod", + "exit code: %d": "code de sortie : %d", + "hermes at %@": "hermes sur %@", + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": "L'intégration iMessage passe par BlueBubbles Server. Il vous faut un Mac qui reste allumé avec Messages.app connecté — installez BlueBubbles Server dessus, puis pointez hermes vers l'URL de ce serveur.", + "signal-cli is available on PATH": "signal-cli est disponible dans le PATH", + "signal-cli not found on PATH — install it first": "signal-cli introuvable dans le PATH — installez-le d'abord", + "ssh trace": "trace ssh", + "ssh-agent (leave blank)": "ssh-agent (laisser vide)", + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": "state.db introuvable au chemin configuré. Soit Hermes n'a pas encore été lancé sur ce serveur, soit il est installé à un emplacement non standard — définissez le champ répertoire de données Hermes ci-dessus.", + "state.db not found at the default location, but Scarf found one at:": "state.db introuvable à l'emplacement par défaut, mais Scarf en a trouvé une à :", + "state.db readable": "state.db lisible", + "— or use user/password login —": "— ou utilisez la connexion utilisateur/mot de passe —" +} diff --git a/tools/translations/ja.json b/tools/translations/ja.json new file mode 100644 index 0000000..95919f7 --- /dev/null +++ b/tools/translations/ja.json @@ -0,0 +1,520 @@ +{ + "%@ ctx": "%@ コンテキスト", + "%@ in / %@ out": "入力 %1$@ / 出力 %2$@", + "%@ reasoning": "%@ 推論", + "%@ tokens": "%@ トークン", + "%@s · %lld tools": "%1$@ 秒 · %2$lld ツール", + "%lld %@": "%1$lld %2$@", + "%lld chars": "%lld 文字", + "%lld delivery failure%@": "%1$lld 件の配信失敗%2$@", + "%lld entries": "%lld 件", + "%lld files": "%lld ファイル", + "%lld messages": "%lld メッセージ", + "%lld msgs": "%lld メッセージ", + "%lld of %lld enabled": "%2$lld 中 %1$lld 個が有効", + "%lld reasoning": "%lld 推論", + "%lld req": "%lld 必須", + "%lld required config": "必須設定 %lld 件", + "%lld sessions": "%lld セッション", + "%lld tokens": "%lld トークン", + "%lld tools": "%lld ツール", + "30 Days": "30 日間", + "7 Days": "7 日間", + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "下に QR コードが表示されます。スマートフォンの WhatsApp でスキャンしてください。セッションは ~/.hermes/platforms/whatsapp/ に保存されるため、再起動後に再度スキャンする必要はありません。", + "API Key": "API キー", + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "API キーは完全な形では表示されません。Scarf は識別用に末尾 4 文字のみを表示します。完全なキーの値は hermes が ~/.hermes/auth.json に保存します。", + "Actions": "アクション", + "Active": "アクティブ", + "Active profile": "アクティブなプロファイル", + "Activity": "アクティビティ", + "Activity Patterns": "アクティビティパターン", + "Add": "追加", + "Add Command": "コマンドを追加", + "Add Credential": "資格情報を追加", + "Add Custom": "カスタム追加", + "Add Custom MCP Server": "カスタム MCP サーバーを追加", + "Add Project": "プロジェクトを追加", + "Add Quick Command": "クイックコマンドを追加", + "Add Remote Server": "リモートサーバーを追加", + "Add Server": "サーバーを追加", + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": "プロジェクトフォルダを追加して始めましょう。ウィジェットを定義するには、プロジェクト内に .scarf/dashboard.json ファイルを作成してください。", + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": "**設定 → 資格情報プール** で資格情報を追加するか、`~/.hermes/.env` で `ANTHROPIC_API_KEY`(または類似の変数)を設定するか、シェルプロファイルでエクスポートしてから Scarf を再起動してください。", + "Add from Preset": "プリセットから追加", + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "ローテーション用の資格情報を追加すると、あるキーがレート制限に達した際に hermes が別のキーにフェイルオーバーできます。", + "Add your first command": "最初のコマンドを追加", + "After approving in your browser, the provider shows a code. Paste it below and submit.": "ブラウザで承認するとプロバイダーがコードを表示します。下に貼り付けて送信してください。", + "Agent": "Agent", + "All": "すべて", + "All Levels": "すべてのレベル", + "All Sessions": "すべてのセッション", + "All Time": "全期間", + "All installed hub skills are up to date.": "インストールされているハブスキルはすべて最新です。", + "Approve": "承認", + "Archive": "アーカイブ", + "Args (one per line)": "引数(1 行に 1 つ)", + "Arguments": "引数", + "Assistant Message": "アシスタントメッセージ", + "Auth": "認証", + "Authentication uses ssh-agent": "認証には ssh-agent を使用します", + "Authorization Code": "認可コード", + "Authorization URL": "認可 URL", + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "補助タスクには別の、通常はより安価なモデルを使用します。メインプロバイダーを継承するには Provider を `auto` のままにしてください。", + "Back": "戻る", + "Back to Catalog": "カタログに戻る", + "Backup Now": "今すぐバックアップ", + "Becomes the key under mcp_servers: in config.yaml.": "config.yaml の mcp_servers: 下のキーになります。", + "Browse": "参照", + "Browse Hub": "ハブを参照", + "Browse the Hub": "ハブを参照", + "Browse...": "参照...", + "Browser": "ブラウザ", + "By Day": "日別", + "By Hour": "時間別", + "Call timeout": "呼び出しタイムアウト", + "Can't read Hermes state on %@": "%@ 上の Hermes 状態を読み取れません", + "Cancel": "キャンセル", + "Changes won't take effect until Hermes reloads the config.": "Hermes が設定を再読み込みするまで変更は反映されません。", + "Chat": "チャット", + "Chat Messages": "チャットメッセージ", + "Check": "確認", + "Check Now": "今すぐ確認", + "Check for Updates": "アップデートを確認", + "Check for Updates…": "アップデートを確認…", + "Checking…": "確認中…", + "Choose a cron job from the list": "リストから cron ジョブを選択", + "Choose a profile to inspect.": "検査するプロファイルを選択してください。", + "Choose a project from the sidebar to view its dashboard.": "サイドバーからプロジェクトを選択してダッシュボードを表示します。", + "Choose a session from the list": "リストからセッションを選択", + "Choose a skill from the list": "リストからスキルを選択", + "Choose an entry from the list": "リストからエントリを選択", + "Choose…": "選択…", + "Clear Token": "トークンをクリア", + "Clear all skills on save": "保存時にすべてのスキルをクリア", + "Click Add to connect to a remote Hermes installation over SSH.": "追加をクリックして SSH 経由でリモートの Hermes インストールに接続します。", + "Click for details": "クリックして詳細", + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": "OAuth を開始をクリックすると、ブラウザでプロバイダーの認可ページが開きます。承認後、プロバイダーが表示したコードをコピーし、次に表示されるターミナルに貼り付けてください。", + "Clone config, .env, SOUL.md from active profile": "アクティブなプロファイルから config、.env、SOUL.md を複製", + "Close": "閉じる", + "Close Window": "ウィンドウを閉じる", + "Code: %@": "コード: %@", + "Command": "コマンド", + "Command looks destructive. Double-check before saving.": "コマンドが破壊的に見えます。保存前に再確認してください。", + "Component": "コンポーネント", + "Compress": "圧縮", + "Compress Conversation": "会話を圧縮", + "Compress conversation (/compress)": "会話を圧縮 (/compress)", + "Configure": "設定", + "Connect timeout": "接続タイムアウト", + "Connected": "接続済み", + "Connected — can't read Hermes state": "接続済み — Hermes 状態を読み取れません", + "Connection": "接続", + "Continue Last Session": "前回のセッションを続ける", + "Copied": "コピー済み", + "Copy": "コピー", + "Copy Full Report": "完全なレポートをコピー", + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": "各チェック(成功・失敗)の概要をプレーンテキストでコピーします — GitHub issue に貼り付けて一度に確認できるようにします。", + "Copy code": "コードをコピー", + "Copy error details": "エラー詳細をコピー", + "Create": "作成", + "Create Profile": "プロファイルを作成", + "Create Subscription": "サブスクリプションを作成", + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": "api.slack.com/apps で Slack アプリを作成し、Socket Mode を有効にし、bot スコープ(chat:write、app_mentions:read、channels:history など)を付与してから Bot User OAuth Token(xoxb-)と App-Level Token(xapp-)をコピーしてください。", + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": "@BotFather でボットを作成し、@userinfobot から数値ユーザー ID を取得してください。トークンとユーザー ID を下に貼り付けてください — ボットは許可されたユーザーにのみ応答します。", + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": "Home Assistant で長期アクセストークンを作成してください(プロファイル → セキュリティ → Long-Lived Access Tokens)。デフォルトではイベントは転送されません — Watch All Changes を有効にするか、下でエンティティフィルタを追加してください。", + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": "プロファイル → セキュリティ → Personal Access Tokens でパーソナルアクセストークンを作成するか、ボットアカウントを作成してください。そのトークンを MATTERMOST_TOKEN の値として使用します。", + "Create a profile to isolate config and skills.": "設定とスキルを分離するプロファイルを作成します。", + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": "Discord の Developer Portal でアプリを作成し、Message Content と Server Members の intents を有効にしてから、ボットトークンをコピーしてください。OAuth2 URL ジェネレーターでボットをサーバーに招待します。", + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": "Feishu/Lark Developer Console でアプリを作成し、ボタン応答が必要であれば Interactive Card を有効にして、App ID と App Secret をコピーしてください。WebSocket モード(推奨)ではパブリックエンドポイントは不要です。", + "Credential Pools": "資格情報プール", + "Credential Type": "資格情報の種類", + "Credentials": "資格情報", + "Cron": "Cron", + "Cron Jobs": "Cron ジョブ", + "Current: %@": "現在: %@", + "Custom…": "カスタム…", + "Daemon running": "デーモン実行中", + "Dashboard": "ダッシュボード", + "Default": "デフォルト", + "Default: ~/.hermes": "デフォルト: ~/.hermes", + "Defaults to ~/.ssh/config or current user": "デフォルトは ~/.ssh/config または現在のユーザー", + "Delete": "削除", + "Delete %@?": "%@ を削除しますか?", + "Delete Session?": "セッションを削除しますか?", + "Delete profile '%@'?": "プロファイル '%@' を削除しますか?", + "Delete...": "削除...", + "Deliver: %@": "配信: %@", + "Diagnostic Output": "診断出力", + "Diagnostics": "診断", + "Disable": "無効化", + "Disabled": "無効", + "Docs": "ドキュメント", + "Done": "完了", + "Edit": "編集", + "Edit %@": "%@ を編集", + "Edit /%@": "/%@ を編集", + "Edit Agent Memory": "エージェントメモリを編集", + "Edit User Profile": "ユーザープロファイルを編集", + "Edit config.yaml": "config.yaml を編集", + "Empty": "空", + "Enable": "有効化", + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "メールアカウントで 2FA を有効にし、アプリパスワードを生成してください。通常のアカウントパスワードは使用できません。許可された送信者を必ず設定してください — そうしないと、アドレスを知っている誰もがエージェントにメッセージを送れます。", + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "webhook プラットフォームを有効化してイベント駆動のエージェントトリガーを受け付けます。個別のルートが独自のものを提供しない場合、HMAC シークレットがフォールバックとして使用されます。", + "Enabled": "有効", + "Env vars, headers, and tool filters can be edited after the server is added.": "環境変数、ヘッダー、ツールフィルタはサーバー追加後に編集できます。", + "Environment Variables": "環境変数", + "Error": "エラー", + "Errors": "エラー", + "Exclude": "除外", + "Execute": "実行", + "Expected at %@": "%@ に期待", + "Export All": "すべてエクスポート", + "Export...": "エクスポート...", + "Export…": "エクスポート…", + "Expose prompts": "プロンプトを公開", + "Expose resources": "リソースを公開", + "Fetch": "取得", + "Files": "ファイル", + "Filter logs...": "ログをフィルタ...", + "Filter servers...": "サーバーをフィルタ...", + "Filter skills...": "スキルをフィルタ...", + "Filter to session %@": "セッション %@ にフィルタ", + "Focus topic (optional)": "フォーカストピック(任意)", + "Full copy of active profile (all state)": "アクティブなプロファイルの完全コピー(すべての状態)", + "Gateway": "Gateway", + "Gateway Running": "Gateway 実行中", + "Gateway Stopped": "Gateway 停止", + "Gateway restart required": "Gateway の再起動が必要です", + "Header": "ヘッダー", + "Headers": "ヘッダー", + "Health": "状態", + "Hermes Not Found": "Hermes が見つかりません", + "Hermes Running": "Hermes 実行中", + "Hermes Stopped": "Hermes 停止", + "Hermes binary not found": "Hermes バイナリが見つかりません", + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": "サブスクリプションがトラフィックを受信する前に、Hermes にはグローバルな webhook シークレットとポートが必要です。ゲートウェイセットアップウィザードを実行するか、~/.hermes/config.yaml を手動で編集してください。", + "Hide": "非表示", + "Hide Output": "出力を非表示", + "Hide details": "詳細を非表示", + "Host key changed": "ホストキーが変更されました", + "ID: %@": "ID: %@", + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "初回接続の場合は、`ssh-add` でキーがロードされていることと、リモートがそれを受け付けていることを確認してください。", + "If you trust the change, remove the stale entry and reconnect:": "変更を信頼する場合、古いエントリを削除して再接続してください:", + "Import": "インポート", + "Inactive": "非アクティブ", + "Include (comma-separated — if set, only these are exposed)": "含める(カンマ区切り — 設定した場合これらのみが公開されます)", + "Insights": "インサイト", + "Install": "インストール", + "Install BlueBubbles Server": "BlueBubbles Server をインストール", + "Install Plugin": "プラグインをインストール", + "Install a Plugin": "プラグインをインストール", + "Install signal-cli": "signal-cli をインストール", + "Installed": "インストール済み", + "Interact": "操作", + "Invalid URL": "無効な URL", + "Keep typing to send as a message, or press Esc.": "入力を続けるとメッセージとして送信されます。キャンセルするには Esc を押してください。", + "Label (optional)": "ラベル(任意)", + "Last Output": "最終出力", + "Last probe: %@": "最終確認: %@", + "Last run: %@": "最終実行: %@", + "Last updated: %@": "最終更新: %@", + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "モデル ID のプレフィックスから推定するには空のままにします(\"openai/...\" → openai)。", + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Hermes がデフォルト以外のパスにインストールされていない限り空のままにしてください(systemd サービスはしばしば /var/lib/hermes/.hermes にあり、Docker サイドカーは様々です)。テスト接続は既知の代替パスを検出すると自動的に値を提案します。", + "Level": "レベル", + "Link Device": "デバイスをリンク", + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": "まずデバイスをリンクして QR コードを生成・スキャンしてください。リンク後、デーモンを起動してください — hermes がメッセージを送受信するには動作し続ける必要があります。", + "Linking…": "リンク中…", + "Loaded": "読み込み済み", + "Loading session…": "セッションを読み込み中…", + "Local": "ローカル", + "Local (stdio)": "ローカル (stdio)", + "Log File": "ログファイル", + "Logs": "ログ", + "MCP Servers": "MCP サーバー", + "MCP Servers (%lld)": "MCP サーバー (%lld)", + "Manage": "管理", + "Manage Servers…": "サーバーを管理…", + "Manage in Credential Pools": "資格情報プールで管理", + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": "Matrix はアクセストークン(推奨)かユーザー名/パスワードを使用します。Element からアクセストークンを取得してください: 設定 → ヘルプ & 情報 → アクセストークン。", + "Memory": "メモリ", + "Memory is managed by %@. File contents shown here may be stale.": "メモリは %@ が管理します。ここに表示されるファイル内容は古い場合があります。", + "Message Hermes...": "Hermes にメッセージを送信...", + "Messages will appear here as the conversation progresses.": "会話が進むにつれてメッセージがここに表示されます。", + "Migrate": "移行", + "Missing required config:": "必須設定が不足しています:", + "Model ID": "モデル ID", + "Models": "モデル", + "Monitor": "モニター", + "Name": "名前", + "Name (no leading slash)": "名前(先頭のスラッシュなし)", + "New Session": "新しいセッション", + "New Webhook Subscription": "新しい Webhook サブスクリプション", + "New name for '%@'": "'%@' の新しい名前", + "Next run: %@": "次回実行: %@", + "No AI provider credentials detected": "AI プロバイダーの資格情報が検出されません", + "No Active Session": "アクティブなセッションなし", + "No Activity": "アクティビティなし", + "No Cron Jobs": "Cron ジョブなし", + "No Dashboard": "ダッシュボードなし", + "No MCP servers configured": "MCP サーバーが設定されていません", + "No Models": "モデルなし", + "No Profiles": "プロファイルなし", + "No Projects": "プロジェクトなし", + "No Updates": "アップデートなし", + "No active session": "アクティブなセッションなし", + "No additional output. Check ~/.ssh/config and ssh-agent.": "追加出力はありません。~/.ssh/config と ssh-agent を確認してください。", + "No commands available": "利用可能なコマンドはありません", + "No credential pools configured": "資格情報プールが設定されていません", + "No data": "データなし", + "No env vars configured.": "環境変数が設定されていません。", + "No env vars. Add one with the button below.": "環境変数がありません。下のボタンで追加してください。", + "No headers configured.": "ヘッダーが設定されていません。", + "No headers. Add one with the button below.": "ヘッダーがありません。下のボタンで追加してください。", + "No matching commands": "一致するコマンドなし", + "No paired users": "ペア済みユーザーなし", + "No platforms connected": "接続されているプラットフォームなし", + "No plugins installed": "プラグインがインストールされていません", + "No quick commands configured": "クイックコマンドが設定されていません", + "No remote servers": "リモートサーバーなし", + "No scheduled jobs configured": "スケジュールされたジョブなし", + "No servers configured yet": "まだサーバーが設定されていません", + "No sessions found": "セッションが見つかりません", + "No tool calls found": "ツール呼び出しが見つかりません", + "No webhook subscriptions": "Webhook サブスクリプションなし", + "None": "なし", + "Notable Sessions": "注目のセッション", + "OAuth login for %@": "%@ の OAuth ログイン", + "Open BotFather": "BotFather を開く", + "Open Developer Portal": "Developer Portal を開く", + "Open Local": "ローカルを開く", + "Open Other Server…": "他のサーバーを開く…", + "Open Scarf": "Scarf を開く", + "Open Server": "サーバーを開く", + "Open Slack API": "Slack API を開く", + "Open in Browser": "ブラウザで開く", + "Open in Editor": "エディタで開く", + "Open in new window": "新しいウィンドウで開く", + "Open session": "セッションを開く", + "Optional — defaults to hostname": "任意 — デフォルトはホスト名", + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "要約を特定のトピックに絞ることができます。均等に圧縮するには空のままにしてください。", + "Other": "その他", + "Output": "出力", + "Overview": "概要", + "PID %d": "PID %d", + "PID %lld": "PID %lld", + "Pair Device": "デバイスをペアリング", + "Paired Users": "ペア済みユーザー", + "Paste code here…": "ここにコードを貼り付け…", + "Pause": "一時停止", + "Pending Approvals": "承認待ち", + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "ルートごとのサブスクリプション(イベント、プロンプトテンプレート、配信先)は Webhooks サイドバーで管理します — ここではありません。このパネルは webhook プラットフォームが待ち受けるかどうかのみを制御します。", + "Period": "期間", + "Personalities": "パーソナリティ", + "Pick an MCP server to add.": "追加する MCP サーバーを選択してください。", + "Pick one from the list, or add a new server from the toolbar.": "リストから選ぶか、ツールバーから新しいサーバーを追加してください。", + "Platforms": "プラットフォーム", + "Plugins": "プラグイン", + "Plugins extend hermes with custom tools, providers, or memory backends.": "プラグインは、カスタムツール、プロバイダー、メモリバックエンドで hermes を拡張します。", + "Pre-Run Script": "事前実行スクリプト", + "Preset:": "プリセット:", + "Probe": "プローブ", + "Profile": "プロファイル", + "Profiles": "プロファイル", + "Project Name": "プロジェクト名", + "Project Path": "プロジェクトパス", + "Projects": "プロジェクト", + "Prompt": "プロンプト", + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": "Git URL(https://github.com/...)または `owner/repo` のような省略形を指定してください。", + "Provider": "プロバイダー", + "Push to Talk": "押して話す", + "Push to talk (Ctrl+B)": "押して話す (Ctrl+B)", + "Quick Commands": "クイックコマンド", + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "クイックコマンドは、hermes がチャットで `/command_name` として公開するシェルショートカットです。config.yaml の `quick_commands:` 以下に記述します。", + "Quit Scarf": "Scarf を終了", + "Raw Config": "生の設定", + "Raw remote output (for debugging)": "生のリモート出力(デバッグ用)", + "Re-run": "再実行", + "Read": "読み取り", + "Reasoning": "推論", + "Recent Sessions": "最近のセッション", + "Reconnect": "再接続", + "Recording…": "録音中…", + "Refresh": "更新", + "Reload": "再読み込み", + "Remote (HTTP)": "リモート (HTTP)", + "Remote Diagnostics — %@": "リモート診断 — %@", + "Remove": "削除", + "Remove %@?": "%@ を削除しますか?", + "Remove credential for %@?": "%@ の資格情報を削除しますか?", + "Remove this server from Scarf.": "このサーバーを Scarf から削除します。", + "Remove this server?": "このサーバーを削除しますか?", + "Remove via config.yaml…": "config.yaml 経由で削除…", + "Remove webhook %@?": "webhook %@ を削除しますか?", + "Rename": "名前を変更", + "Rename Profile": "プロファイル名を変更", + "Rename Session": "セッション名を変更", + "Rename...": "名前を変更...", + "Requires: %@": "必須: %@", + "Reset Cooldowns": "クールダウンをリセット", + "Restart": "再起動", + "Restart Gateway": "Gateway を再起動", + "Restart Hermes": "Hermes を再起動", + "Restart Now": "今すぐ再起動", + "Restore": "復元", + "Restore from backup?": "バックアップから復元しますか?", + "Restore…": "復元…", + "Result": "結果", + "Resume": "再開", + "Resume Session": "セッションを再開", + "Retry": "再試行", + "Return to Active Session (%@...)": "アクティブセッションに戻る (%@...)", + "Reveal": "表示", + "Revoke": "取り消し", + "Rich Chat": "リッチチャット", + "Run Diagnostics…": "診断を実行…", + "Run Dump": "ダンプを実行", + "Run Now": "今すぐ実行", + "Run Setup in Terminal": "ターミナルでセットアップを実行", + "Run `hermes memory setup` in Terminal for full provider configuration.": "プロバイダーの完全な設定には、ターミナルで `hermes memory setup` を実行してください。", + "Run remote diagnostics — check exactly which files are readable on this server.": "リモート診断を実行 — このサーバーで読み取れるファイルを正確に確認します。", + "Running a single shell session on %@ that exercises every path Scarf reads…": "Scarf が読み取るすべてのパスを確認する単一のシェルセッションを %@ で実行中…", + "Running checks…": "チェックを実行中…", + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": "SOUL.md は ~/.hermes/SOUL.md でエージェントの話し方、価値観、パーソナリティを記述します。これはすべてのセッションのコンテキストに挿入されます。", + "SSH works but %@. Click for diagnostics.": "SSH は動作していますが %@。診断を表示するにはクリックしてください。", + "Save": "保存", + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": "Scarf はパスフレーズを要求しません。ターミナルで ssh-agent にキーを追加してから、再試行をクリックしてください。キーが `id_ed25519` でない場合はパスを変更してください:", + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": "Scarf はダッシュボードが読み取るシェルと同じ単一の SSH セッションでこれらを実行します。ここで緑色の行は、Scarf が実行時にそのファイルを実際に読み取れることを意味します。", + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": "Scarf は認証に ssh-agent を使用します。キーにパスフレーズがある場合は、接続前に `ssh-add` を実行してください — Scarf はパスフレーズを要求することも保存することもありません。", + "Scarf — %@": "Scarf — %@", + "Search": "検索", + "Search Results (%lld)": "検索結果 (%lld)", + "Search messages...": "メッセージを検索...", + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "skills.sh、GitHub、公式ハブなどのレジストリに公開されたスキルを検索または参照します。", + "Search registries": "レジストリを検索", + "Search…": "検索…", + "Select": "選択", + "Select Model": "モデルを選択", + "Select a Job": "ジョブを選択", + "Select a Profile": "プロファイルを選択", + "Select a Project": "プロジェクトを選択", + "Select a Session": "セッションを選択", + "Select a Skill": "スキルを選択", + "Select a Tool Call": "ツール呼び出しを選択", + "Select an MCP Server": "MCP サーバーを選択", + "Send message (Enter)": "メッセージを送信 (Enter)", + "Series": "系列", + "Server No Longer Exists": "サーバーは存在しません", + "Server name": "サーバー名", + "Servers": "サーバー", + "Service": "サービス", + "Service definition stale": "サービス定義が古くなっています", + "Session": "セッション", + "Session title": "セッションタイトル", + "Sessions": "セッション", + "Settings": "設定", + "Setup": "セットアップ", + "Share Debug Report…": "デバッグレポートを共有…", + "Shell Command": "シェルコマンド", + "Show": "表示", + "Show Output": "出力を表示", + "Show all %lld lines": "すべての %lld 行を表示", + "Show details": "詳細を表示", + "Show less": "折りたたむ", + "Show values": "値を表示", + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": "Signal 連携にはローカルにインストールされた signal-cli(Java 製)が必要です。この Mac を Signal デバイスとしてリンクしてから、デーモンを動作させ続けて hermes がメッセージを送受信できるようにします。", + "Site": "サイト", + "Skills": "スキル", + "Skills (%lld)": "スキル (%lld)", + "Source": "ソース", + "Start": "開始", + "Start Daemon": "デーモンを開始", + "Start Hermes": "Hermes を開始", + "Start OAuth": "OAuth を開始", + "Start Pairing": "ペアリングを開始", + "Start a new session or resume an existing one from the Session menu above.": "上のセッションメニューから新しいセッションを開始するか、既存のセッションを再開してください。", + "Status": "ステータス", + "Stop": "停止", + "Stop Hermes": "Hermes を停止", + "Subagent": "サブエージェント", + "Subagent Sessions (%lld)": "サブエージェントセッション (%lld)", + "Submit": "送信", + "Subscribe": "購読", + "Succeeded": "成功", + "Switch to This Profile": "このプロファイルに切り替え", + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": "アクティブなプロファイルを切り替えると、hermes が使用する `~/.hermes` ディレクトリが変わります。切り替え後、Scarf を再起動して新しいプロファイルのファイルを読み込み直してください。", + "TTS Off": "TTS オフ", + "TTS On": "TTS オン", + "Terminal": "ターミナル", + "Test": "テスト", + "Test All": "すべてテスト", + "Test Connection": "接続テスト", + "Test failed": "テスト失敗", + "Test passed": "テスト成功", + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "エージェントはまだスラッシュコマンドを提示していません。入力を続けるとメッセージとして送信されます。キャンセルするには Esc を押してください。", + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "リモートの SSH フィンガープリントが `~/.ssh/known_hosts` の期待値と一致しません。通常はリモートが再インストールされたことを意味します — まれに通信が傍受されている可能性もあります。", + "The server this window was opened with has been removed from your registry.": "このウィンドウを開いたサーバーはレジストリから削除されました。", + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": "サーバーの SSH 設定は Scarf から削除されます。リモートファイルは変更されません。", + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": "このターミナルは実際の TTY です — ⌘V で貼り付け、Return を押して、プロセスが「login succeeded」で終了するのを待ってください。", + "These list fields must be edited directly in config.yaml.": "これらのリストフィールドは config.yaml で直接編集する必要があります。", + "This provider has no catalogued models.": "このプロバイダーにはカタログ化されたモデルがありません。", + "This removes the credential from hermes. The upstream provider key is not revoked.": "これにより hermes から資格情報が削除されます。上流プロバイダーのキーは取り消されません。", + "This removes the profile directory and all data within it. This cannot be undone.": "これによりプロファイルディレクトリとその中のすべてのデータが削除されます。元に戻せません。", + "This removes the scheduled job permanently.": "これによりスケジュールされたジョブが恒久的に削除されます。", + "This removes the server from config.yaml and deletes any OAuth token.": "これにより config.yaml からサーバーが削除され、OAuth トークンも削除されます。", + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": "これにより、ログ、設定(シークレットはマスク済み)、システム情報が Nous Research のサポートインフラにアップロードされます。返された URL を共有する前に下の出力を確認してください。", + "This will overwrite files under ~/.hermes/ with the archive contents.": "これにより ~/.hermes/ 以下のファイルがアーカイブの内容で上書きされます。", + "This will permanently delete the session and all its messages.": "これによりセッションとそのすべてのメッセージが恒久的に削除されます。", + "Timeout: %llds (%@)": "タイムアウト: %1$lld 秒 (%2$@)", + "Timeouts": "タイムアウト", + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "毎回の再起動時にパスフレーズのプロンプトをスキップするには、`--apple-use-keychain` を追加して macOS キーチェーンにキャッシュしてください。", + "Toggle text-to-speech (/voice tts)": "テキスト読み上げを切り替え (/voice tts)", + "Toggle voice mode (/voice)": "音声モードを切り替え (/voice)", + "Token on disk. Clear to re-authenticate next time the gateway connects.": "トークンはディスク上にあります。消去すると、次回 gateway が接続する際に再認証します。", + "Tool Approval Required": "ツールの承認が必要", + "Tool Filters": "ツールフィルタ", + "Tools": "ツール", + "Top Tools": "トップツール", + "Uninstall": "アンインストール", + "Unknown: %@": "不明: %@", + "Update": "更新", + "Update All": "すべて更新", + "Updated: %@": "更新日時: %@", + "Updates": "アップデート", + "Upload": "アップロード", + "Upload debug report?": "デバッグレポートをアップロードしますか?", + "Usage Stats": "使用統計", + "Use": "使用", + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": "カタログにないモデルを使用します。Hermes はプロバイダーが認識する任意の文字列を受け付けます(例: \"openrouter/anthropic/claude-opus-4.6\" のようなプロバイダープレフィックス形式も可)。", + "Use this": "これを使用", + "Use {dot.notation} to reference fields in the webhook payload.": "webhook ペイロードのフィールドを参照するには {dot.notation} を使用します。", + "Used as the YAML key. Lowercase, no spaces.": "YAML キーとして使用されます。小文字・空白なし。", + "View": "表示", + "View All": "すべて表示", + "Voice Off": "音声オフ", + "Voice On": "音声オン", + "Waiting for authorization URL…": "認可 URL を待機中…", + "Waiting for first probe": "最初のプローブを待機中", + "Waiting for hermes to prompt for the code…": "hermes がコードを要求するのを待機中…", + "Webhook platform not enabled": "Webhook プラットフォームが有効ではありません", + "Webhooks": "Webhook", + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhook を使うと外部サービスがエージェントの応答をトリガーできます。各サブスクリプションは独自の URL エンドポイントを持ちます。", + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp は Baileys ライブラリで WhatsApp Web セッションをエミュレートします。ペアリングウィザードを実行し、スマートフォンで QR コードをスキャンしてこの Mac をリンク済みデバイスとしてペアリングしてください(設定 → リンク済みデバイス → デバイスをリンク)。", + "Working": "処理中", + "e.g. anthropic": "例: anthropic", + "e.g. deploy": "例: deploy", + "e.g. experimental": "例: experimental", + "e.g. github": "例: github", + "e.g. openai": "例: openai", + "e.g. openai/gpt-4o": "例: openai/gpt-4o", + "e.g. team-prod": "例: team-prod", + "exit code: %d": "終了コード: %d", + "hermes at %@": "%@ 上の hermes", + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": "iMessage 連携は BlueBubbles Server を経由します。メッセージ App にサインインしたまま動作し続ける Mac が必要です — そこに BlueBubbles Server をインストールし、そのサーバーの URL を hermes に指定してください。", + "signal-cli is available on PATH": "signal-cli は PATH 上で利用可能です", + "signal-cli not found on PATH — install it first": "signal-cli が PATH にありません — 先にインストールしてください", + "ssh trace": "ssh トレース", + "ssh-agent (leave blank)": "ssh-agent(空のまま)", + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": "設定されたパスに state.db が見つかりません。Hermes がこのサーバーでまだ実行されていないか、デフォルトでない場所にインストールされている可能性があります — 上の Hermes データディレクトリフィールドを設定してください。", + "state.db not found at the default location, but Scarf found one at:": "デフォルトの場所には state.db がありませんが、Scarf が以下の場所に見つけました:", + "state.db readable": "state.db 読み取り可能", + "— or use user/password login —": "— またはユーザー名/パスワードでログイン —" +} diff --git a/tools/translations/pt-BR.json b/tools/translations/pt-BR.json new file mode 100644 index 0000000..0ddfdf1 --- /dev/null +++ b/tools/translations/pt-BR.json @@ -0,0 +1,520 @@ +{ + "%@ ctx": "%@ contexto", + "%@ in / %@ out": "%1$@ entrada / %2$@ saída", + "%@ reasoning": "%@ raciocínio", + "%@ tokens": "%@ tokens", + "%@s · %lld tools": "%1$@ s · %2$lld ferramentas", + "%lld %@": "%1$lld %2$@", + "%lld chars": "%lld caracteres", + "%lld delivery failure%@": "%1$lld falha de entrega%2$@", + "%lld entries": "%lld entradas", + "%lld files": "%lld arquivos", + "%lld messages": "%lld mensagens", + "%lld msgs": "%lld msgs", + "%lld of %lld enabled": "%1$lld de %2$lld ativadas", + "%lld reasoning": "%lld raciocínio", + "%lld req": "%lld obrig.", + "%lld required config": "%lld configurações obrigatórias", + "%lld sessions": "%lld sessões", + "%lld tokens": "%lld tokens", + "%lld tools": "%lld ferramentas", + "30 Days": "30 dias", + "7 Days": "7 dias", + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Um QR code aparecerá abaixo. Escaneie com o WhatsApp do seu celular. A sessão é salva em ~/.hermes/platforms/whatsapp/ para não precisar escanear de novo após reinícios.", + "API Key": "Chave de API", + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "Chaves de API nunca são exibidas por completo. O Scarf mostra apenas os últimos 4 caracteres para identificação. Os valores completos são armazenados pelo hermes em ~/.hermes/auth.json.", + "Actions": "Ações", + "Active": "Ativa", + "Active profile": "Perfil ativo", + "Activity": "Atividade", + "Activity Patterns": "Padrões de atividade", + "Add": "Adicionar", + "Add Command": "Adicionar comando", + "Add Credential": "Adicionar credencial", + "Add Custom": "Adicionar personalizado", + "Add Custom MCP Server": "Adicionar servidor MCP personalizado", + "Add Project": "Adicionar projeto", + "Add Quick Command": "Adicionar comando rápido", + "Add Remote Server": "Adicionar servidor remoto", + "Add Server": "Adicionar servidor", + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": "Adicione uma pasta de projeto para começar. Crie um arquivo .scarf/dashboard.json no seu projeto para definir widgets.", + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": "Adicione credenciais em **Configurar → Pools de credenciais**, defina `ANTHROPIC_API_KEY` (ou similar) em `~/.hermes/.env` ou exporte no seu perfil de shell, e reinicie o Scarf.", + "Add from Preset": "Adicionar a partir de predefinição", + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Adicione credenciais de rotação para que o hermes possa alternar entre chaves quando uma atingir o limite de taxa.", + "Add your first command": "Adicione seu primeiro comando", + "After approving in your browser, the provider shows a code. Paste it below and submit.": "Após aprovar no navegador, o provedor mostra um código. Cole abaixo e envie.", + "Agent": "Agent", + "All": "Todos", + "All Levels": "Todos os níveis", + "All Sessions": "Todas as sessões", + "All Time": "Todo o período", + "All installed hub skills are up to date.": "Todas as habilidades instaladas do hub estão atualizadas.", + "Approve": "Aprovar", + "Archive": "Arquivar", + "Args (one per line)": "Argumentos (um por linha)", + "Arguments": "Argumentos", + "Assistant Message": "Mensagem do assistente", + "Auth": "Auth", + "Authentication uses ssh-agent": "A autenticação usa ssh-agent", + "Authorization Code": "Código de autorização", + "Authorization URL": "URL de autorização", + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Tarefas auxiliares usam modelos separados, geralmente mais baratos. Deixe Provedor em `auto` para herdar o provedor principal.", + "Back": "Voltar", + "Back to Catalog": "Voltar ao catálogo", + "Backup Now": "Fazer backup agora", + "Becomes the key under mcp_servers: in config.yaml.": "Vira a chave sob mcp_servers: em config.yaml.", + "Browse": "Explorar", + "Browse Hub": "Explorar hub", + "Browse the Hub": "Explorar o hub", + "Browse...": "Explorar...", + "Browser": "Navegador", + "By Day": "Por dia", + "By Hour": "Por hora", + "Call timeout": "Tempo limite da chamada", + "Can't read Hermes state on %@": "Não é possível ler o estado do Hermes em %@", + "Cancel": "Cancelar", + "Changes won't take effect until Hermes reloads the config.": "As alterações só têm efeito quando o Hermes recarregar a configuração.", + "Chat": "Chat", + "Chat Messages": "Mensagens do chat", + "Check": "Verificar", + "Check Now": "Verificar agora", + "Check for Updates": "Verificar atualizações", + "Check for Updates…": "Verificar atualizações…", + "Checking…": "Verificando…", + "Choose a cron job from the list": "Escolha uma tarefa cron na lista", + "Choose a profile to inspect.": "Escolha um perfil para inspecionar.", + "Choose a project from the sidebar to view its dashboard.": "Escolha um projeto na barra lateral para ver o painel.", + "Choose a session from the list": "Escolha uma sessão na lista", + "Choose a skill from the list": "Escolha uma habilidade na lista", + "Choose an entry from the list": "Escolha uma entrada na lista", + "Choose…": "Escolher…", + "Clear Token": "Limpar token", + "Clear all skills on save": "Limpar todas as habilidades ao salvar", + "Click Add to connect to a remote Hermes installation over SSH.": "Clique em Adicionar para se conectar a uma instalação remota do Hermes via SSH.", + "Click for details": "Clique para ver detalhes", + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": "Clicar em Iniciar OAuth abre a página de autorização do provedor no navegador. Após aprovar, copie o código exibido pelo provedor e cole no terminal que aparecerá em seguida.", + "Clone config, .env, SOUL.md from active profile": "Clonar config, .env, SOUL.md do perfil ativo", + "Close": "Fechar", + "Close Window": "Fechar janela", + "Code: %@": "Código: %@", + "Command": "Comando", + "Command looks destructive. Double-check before saving.": "O comando parece destrutivo. Revise antes de salvar.", + "Component": "Componente", + "Compress": "Compactar", + "Compress Conversation": "Compactar conversa", + "Compress conversation (/compress)": "Compactar conversa (/compress)", + "Configure": "Configurar", + "Connect timeout": "Tempo limite de conexão", + "Connected": "Conectado", + "Connected — can't read Hermes state": "Conectado — não é possível ler o estado do Hermes", + "Connection": "Conexão", + "Continue Last Session": "Continuar última sessão", + "Copied": "Copiado", + "Copy": "Copiar", + "Copy Full Report": "Copiar relatório completo", + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": "Copia um resumo em texto simples de cada verificação (aprovadas e falhas) — cole em issues do GitHub para vermos tudo de uma vez.", + "Copy code": "Copiar código", + "Copy error details": "Copiar detalhes do erro", + "Create": "Criar", + "Create Profile": "Criar perfil", + "Create Subscription": "Criar assinatura", + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": "Crie um app Slack em api.slack.com/apps, habilite o Socket Mode, conceda os escopos de bot (chat:write, app_mentions:read, channels:history etc.) e copie o Bot User OAuth Token (xoxb-) e o App-Level Token (xapp-).", + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": "Crie um bot via @BotFather e obtenha seu ID numérico em @userinfobot. Cole o token e seu ID de usuário abaixo — o bot só responde a usuários permitidos.", + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": "Crie um token de acesso de longa duração no Home Assistant (Perfil → Segurança → Long-Lived Access Tokens). Por padrão, nenhum evento é encaminhado — ative Watch All Changes ou adicione filtros de entidades abaixo.", + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": "Crie um token de acesso pessoal em Perfil → Segurança → Personal Access Tokens ou crie uma conta de bot. Use o token como valor de MATTERMOST_TOKEN.", + "Create a profile to isolate config and skills.": "Crie um perfil para isolar configuração e habilidades.", + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": "Crie um app no Developer Portal do Discord, ative os intents Message Content e Server Members e copie o token do bot. Convide o bot para o seu servidor via gerador de URL OAuth2.", + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": "Crie um app no Feishu/Lark Developer Console, habilite Interactive Card se precisar de respostas por botão e copie o App ID e o App Secret. O modo WebSocket (recomendado) não requer endpoint público.", + "Credential Pools": "Pools de credenciais", + "Credential Type": "Tipo de credencial", + "Credentials": "Credenciais", + "Cron": "Cron", + "Cron Jobs": "Tarefas cron", + "Current: %@": "Atual: %@", + "Custom…": "Personalizado…", + "Daemon running": "Daemon em execução", + "Dashboard": "Painel", + "Default": "Padrão", + "Default: ~/.hermes": "Padrão: ~/.hermes", + "Defaults to ~/.ssh/config or current user": "Padrão é ~/.ssh/config ou usuário atual", + "Delete": "Excluir", + "Delete %@?": "Excluir %@?", + "Delete Session?": "Excluir sessão?", + "Delete profile '%@'?": "Excluir perfil '%@'?", + "Delete...": "Excluir...", + "Deliver: %@": "Entregar: %@", + "Diagnostic Output": "Saída de diagnóstico", + "Diagnostics": "Diagnóstico", + "Disable": "Desativar", + "Disabled": "Desativado", + "Docs": "Docs", + "Done": "Concluído", + "Edit": "Editar", + "Edit %@": "Editar %@", + "Edit /%@": "Editar /%@", + "Edit Agent Memory": "Editar memória do agente", + "Edit User Profile": "Editar perfil de usuário", + "Edit config.yaml": "Editar config.yaml", + "Empty": "Vazio", + "Enable": "Ativar", + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Ative o 2FA na sua conta de e-mail e gere uma senha de aplicativo. Senhas normais da conta não funcionam. Sempre defina remetentes permitidos — caso contrário, qualquer um que saiba o endereço pode enviar mensagens para o agente.", + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Ative a plataforma de webhook para aceitar gatilhos de agente orientados a eventos. O segredo HMAC é usado como fallback quando rotas individuais não fornecem o próprio.", + "Enabled": "Ativado", + "Env vars, headers, and tool filters can be edited after the server is added.": "Variáveis de ambiente, cabeçalhos e filtros de ferramentas podem ser editados após o servidor ser adicionado.", + "Environment Variables": "Variáveis de ambiente", + "Error": "Erro", + "Errors": "Erros", + "Exclude": "Excluir", + "Execute": "Executar", + "Expected at %@": "Esperado em %@", + "Export All": "Exportar tudo", + "Export...": "Exportar...", + "Export…": "Exportar…", + "Expose prompts": "Expor prompts", + "Expose resources": "Expor recursos", + "Fetch": "Buscar", + "Files": "Arquivos", + "Filter logs...": "Filtrar logs...", + "Filter servers...": "Filtrar servidores...", + "Filter skills...": "Filtrar habilidades...", + "Filter to session %@": "Filtrar para a sessão %@", + "Focus topic (optional)": "Tópico de foco (opcional)", + "Full copy of active profile (all state)": "Cópia completa do perfil ativo (todo o estado)", + "Gateway": "Gateway", + "Gateway Running": "Gateway em execução", + "Gateway Stopped": "Gateway parado", + "Gateway restart required": "Reinicialização do gateway necessária", + "Header": "Cabeçalho", + "Headers": "Cabeçalhos", + "Health": "Saúde", + "Hermes Not Found": "Hermes não encontrado", + "Hermes Running": "Hermes em execução", + "Hermes Stopped": "Hermes parado", + "Hermes binary not found": "Binário do Hermes não encontrado", + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": "O Hermes precisa de um segredo global de webhook e uma porta antes que assinaturas possam receber tráfego. Execute o assistente de configuração do gateway ou edite ~/.hermes/config.yaml manualmente.", + "Hide": "Ocultar", + "Hide Output": "Ocultar saída", + "Hide details": "Ocultar detalhes", + "Host key changed": "Chave do host alterada", + "ID: %@": "ID: %@", + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "Se esta for a primeira conexão, garanta que sua chave esteja carregada com `ssh-add` e que o remoto a aceite.", + "If you trust the change, remove the stale entry and reconnect:": "Se você confia na mudança, remova a entrada antiga e reconecte:", + "Import": "Importar", + "Inactive": "Inativo", + "Include (comma-separated — if set, only these are exposed)": "Incluir (separados por vírgula — se definido, apenas estes são expostos)", + "Insights": "Insights", + "Install": "Instalar", + "Install BlueBubbles Server": "Instalar BlueBubbles Server", + "Install Plugin": "Instalar plugin", + "Install a Plugin": "Instalar um plugin", + "Install signal-cli": "Instalar signal-cli", + "Installed": "Instalado", + "Interact": "Interagir", + "Invalid URL": "URL inválida", + "Keep typing to send as a message, or press Esc.": "Continue digitando para enviar como mensagem, ou pressione Esc.", + "Label (optional)": "Rótulo (opcional)", + "Last Output": "Última saída", + "Last probe: %@": "Última verificação: %@", + "Last run: %@": "Última execução: %@", + "Last updated: %@": "Atualizado em: %@", + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Deixe em branco para inferir pelo prefixo do ID do modelo (\"openai/...\" → openai).", + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Deixe em branco a menos que o Hermes esteja instalado em um caminho não padrão (serviços systemd geralmente ficam em /var/lib/hermes/.hermes; sidecars Docker variam). Testar conexão sugere automaticamente um valor ao detectar um dos caminhos alternativos conhecidos.", + "Level": "Nível", + "Link Device": "Vincular dispositivo", + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": "Vincule o dispositivo primeiro para gerar e escanear um QR code. Após vincular, inicie o daemon — ele precisa continuar rodando para o hermes enviar/receber mensagens.", + "Linking…": "Vinculando…", + "Loaded": "Carregado", + "Loading session…": "Carregando sessão…", + "Local": "Local", + "Local (stdio)": "Local (stdio)", + "Log File": "Arquivo de log", + "Logs": "Logs", + "MCP Servers": "Servidores MCP", + "MCP Servers (%lld)": "Servidores MCP (%lld)", + "Manage": "Gerenciar", + "Manage Servers…": "Gerenciar servidores…", + "Manage in Credential Pools": "Gerenciar nos pools de credenciais", + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": "O Matrix usa um token de acesso (preferido) ou usuário/senha. Obtenha um token de acesso no Element: Configurações → Ajuda e sobre → Access Token.", + "Memory": "Memória", + "Memory is managed by %@. File contents shown here may be stale.": "A memória é gerenciada por %@. O conteúdo dos arquivos exibido aqui pode estar desatualizado.", + "Message Hermes...": "Enviar mensagem ao Hermes...", + "Messages will appear here as the conversation progresses.": "As mensagens aparecerão aqui conforme a conversa progride.", + "Migrate": "Migrar", + "Missing required config:": "Configuração obrigatória ausente:", + "Model ID": "ID do modelo", + "Models": "Modelos", + "Monitor": "Monitor", + "Name": "Nome", + "Name (no leading slash)": "Nome (sem barra inicial)", + "New Session": "Nova sessão", + "New Webhook Subscription": "Nova assinatura de webhook", + "New name for '%@'": "Novo nome para '%@'", + "Next run: %@": "Próxima execução: %@", + "No AI provider credentials detected": "Nenhuma credencial de provedor de IA detectada", + "No Active Session": "Sem sessão ativa", + "No Activity": "Sem atividade", + "No Cron Jobs": "Sem tarefas cron", + "No Dashboard": "Sem painel", + "No MCP servers configured": "Nenhum servidor MCP configurado", + "No Models": "Sem modelos", + "No Profiles": "Sem perfis", + "No Projects": "Sem projetos", + "No Updates": "Sem atualizações", + "No active session": "Sem sessão ativa", + "No additional output. Check ~/.ssh/config and ssh-agent.": "Sem saída adicional. Verifique ~/.ssh/config e ssh-agent.", + "No commands available": "Sem comandos disponíveis", + "No credential pools configured": "Nenhum pool de credenciais configurado", + "No data": "Sem dados", + "No env vars configured.": "Nenhuma variável de ambiente configurada.", + "No env vars. Add one with the button below.": "Sem variáveis de ambiente. Adicione uma com o botão abaixo.", + "No headers configured.": "Nenhum cabeçalho configurado.", + "No headers. Add one with the button below.": "Sem cabeçalhos. Adicione um com o botão abaixo.", + "No matching commands": "Sem comandos correspondentes", + "No paired users": "Sem usuários pareados", + "No platforms connected": "Nenhuma plataforma conectada", + "No plugins installed": "Nenhum plugin instalado", + "No quick commands configured": "Nenhum comando rápido configurado", + "No remote servers": "Sem servidores remotos", + "No scheduled jobs configured": "Nenhuma tarefa agendada configurada", + "No servers configured yet": "Nenhum servidor configurado ainda", + "No sessions found": "Nenhuma sessão encontrada", + "No tool calls found": "Nenhuma chamada de ferramenta encontrada", + "No webhook subscriptions": "Sem assinaturas de webhook", + "None": "Nenhum", + "Notable Sessions": "Sessões notáveis", + "OAuth login for %@": "Login OAuth para %@", + "Open BotFather": "Abrir BotFather", + "Open Developer Portal": "Abrir Developer Portal", + "Open Local": "Abrir local", + "Open Other Server…": "Abrir outro servidor…", + "Open Scarf": "Abrir Scarf", + "Open Server": "Abrir servidor", + "Open Slack API": "Abrir API do Slack", + "Open in Browser": "Abrir no navegador", + "Open in Editor": "Abrir no editor", + "Open in new window": "Abrir em nova janela", + "Open session": "Abrir sessão", + "Optional — defaults to hostname": "Opcional — padrão é o nome do host", + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Opcionalmente, foque o resumo em um tópico específico. Deixe em branco para compactar uniformemente.", + "Other": "Outro", + "Output": "Saída", + "Overview": "Visão geral", + "PID %d": "PID %d", + "PID %lld": "PID %lld", + "Pair Device": "Parear dispositivo", + "Paired Users": "Usuários pareados", + "Paste code here…": "Cole o código aqui…", + "Pause": "Pausar", + "Pending Approvals": "Aprovações pendentes", + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "As assinaturas por rota (eventos, template de prompt, alvo de entrega) são gerenciadas na barra lateral de Webhooks — não aqui. Este painel só controla se a plataforma de webhook está escutando.", + "Period": "Período", + "Personalities": "Personalidades", + "Pick an MCP server to add.": "Escolha um servidor MCP para adicionar.", + "Pick one from the list, or add a new server from the toolbar.": "Escolha um da lista ou adicione um novo servidor pela barra de ferramentas.", + "Platforms": "Plataformas", + "Plugins": "Plugins", + "Plugins extend hermes with custom tools, providers, or memory backends.": "Plugins estendem o hermes com ferramentas, provedores ou backends de memória personalizados.", + "Pre-Run Script": "Script de pré-execução", + "Preset:": "Predefinição:", + "Probe": "Sondar", + "Profile": "Perfil", + "Profiles": "Perfis", + "Project Name": "Nome do projeto", + "Project Path": "Caminho do projeto", + "Projects": "Projetos", + "Prompt": "Prompt", + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": "Forneça uma URL do Git (https://github.com/...) ou um atalho como `owner/repo`.", + "Provider": "Provedor", + "Push to Talk": "Pressionar para falar", + "Push to talk (Ctrl+B)": "Pressionar para falar (Ctrl+B)", + "Quick Commands": "Comandos rápidos", + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Comandos rápidos são atalhos de shell que o hermes expõe no chat como `/command_name`. Ficam em `quick_commands:` no config.yaml.", + "Quit Scarf": "Sair do Scarf", + "Raw Config": "Configuração bruta", + "Raw remote output (for debugging)": "Saída remota bruta (para depuração)", + "Re-run": "Re-executar", + "Read": "Ler", + "Reasoning": "Raciocínio", + "Recent Sessions": "Sessões recentes", + "Reconnect": "Reconectar", + "Recording…": "Gravando…", + "Refresh": "Atualizar", + "Reload": "Recarregar", + "Remote (HTTP)": "Remoto (HTTP)", + "Remote Diagnostics — %@": "Diagnóstico remoto — %@", + "Remove": "Remover", + "Remove %@?": "Remover %@?", + "Remove credential for %@?": "Remover credencial de %@?", + "Remove this server from Scarf.": "Remover este servidor do Scarf.", + "Remove this server?": "Remover este servidor?", + "Remove via config.yaml…": "Remover via config.yaml…", + "Remove webhook %@?": "Remover webhook %@?", + "Rename": "Renomear", + "Rename Profile": "Renomear perfil", + "Rename Session": "Renomear sessão", + "Rename...": "Renomear...", + "Requires: %@": "Requer: %@", + "Reset Cooldowns": "Redefinir cooldowns", + "Restart": "Reiniciar", + "Restart Gateway": "Reiniciar gateway", + "Restart Hermes": "Reiniciar Hermes", + "Restart Now": "Reiniciar agora", + "Restore": "Restaurar", + "Restore from backup?": "Restaurar a partir do backup?", + "Restore…": "Restaurar…", + "Result": "Resultado", + "Resume": "Retomar", + "Resume Session": "Retomar sessão", + "Retry": "Tentar novamente", + "Return to Active Session (%@...)": "Voltar à sessão ativa (%@...)", + "Reveal": "Revelar", + "Revoke": "Revogar", + "Rich Chat": "Chat avançado", + "Run Diagnostics…": "Executar diagnóstico…", + "Run Dump": "Executar dump", + "Run Now": "Executar agora", + "Run Setup in Terminal": "Executar instalação no terminal", + "Run `hermes memory setup` in Terminal for full provider configuration.": "Execute `hermes memory setup` no terminal para a configuração completa do provedor.", + "Run remote diagnostics — check exactly which files are readable on this server.": "Executar diagnóstico remoto — verifica exatamente quais arquivos podem ser lidos neste servidor.", + "Running a single shell session on %@ that exercises every path Scarf reads…": "Executando uma única sessão de shell em %@ que percorre todos os caminhos que o Scarf lê…", + "Running checks…": "Executando verificações…", + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": "O SOUL.md descreve a voz, os valores e a personalidade do agente em ~/.hermes/SOUL.md. Ele é injetado no contexto de cada sessão.", + "SSH works but %@. Click for diagnostics.": "O SSH funciona, mas %@. Clique para ver diagnósticos.", + "Save": "Salvar", + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": "O Scarf nunca pede frases secretas. Adicione sua chave ao ssh-agent no terminal e clique em Tentar novamente. Se sua chave não for `id_ed25519`, troque o caminho:", + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": "O Scarf executa esses comandos em uma única sessão SSH idêntica ao shell usado pelo seu painel. Uma linha verde aqui significa que o Scarf consegue ler aquele arquivo em tempo de execução.", + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": "O Scarf usa ssh-agent para autenticação. Se sua chave tiver uma frase secreta, rode `ssh-add` antes de conectar — o Scarf nunca pede nem armazena frases secretas.", + "Scarf — %@": "Scarf — %@", + "Search": "Pesquisar", + "Search Results (%lld)": "Resultados da pesquisa (%lld)", + "Search messages...": "Pesquisar mensagens...", + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Pesquise ou navegue por habilidades publicadas em registros como skills.sh, GitHub e o hub oficial.", + "Search registries": "Pesquisar registros", + "Search…": "Pesquisar…", + "Select": "Selecionar", + "Select Model": "Selecionar modelo", + "Select a Job": "Selecionar uma tarefa", + "Select a Profile": "Selecionar um perfil", + "Select a Project": "Selecionar um projeto", + "Select a Session": "Selecionar uma sessão", + "Select a Skill": "Selecionar uma habilidade", + "Select a Tool Call": "Selecionar uma chamada de ferramenta", + "Select an MCP Server": "Selecionar um servidor MCP", + "Send message (Enter)": "Enviar mensagem (Enter)", + "Series": "Série", + "Server No Longer Exists": "Servidor não existe mais", + "Server name": "Nome do servidor", + "Servers": "Servidores", + "Service": "Serviço", + "Service definition stale": "Definição de serviço desatualizada", + "Session": "Sessão", + "Session title": "Título da sessão", + "Sessions": "Sessões", + "Settings": "Configurações", + "Setup": "Configuração", + "Share Debug Report…": "Compartilhar relatório de depuração…", + "Shell Command": "Comando de shell", + "Show": "Mostrar", + "Show Output": "Mostrar saída", + "Show all %lld lines": "Mostrar todas as %lld linhas", + "Show details": "Mostrar detalhes", + "Show less": "Mostrar menos", + "Show values": "Mostrar valores", + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": "A integração com Signal requer signal-cli (baseado em Java) instalado localmente. Vincule este Mac como dispositivo Signal e mantenha o daemon em execução para o hermes enviar/receber mensagens.", + "Site": "Site", + "Skills": "Habilidades", + "Skills (%lld)": "Habilidades (%lld)", + "Source": "Origem", + "Start": "Iniciar", + "Start Daemon": "Iniciar daemon", + "Start Hermes": "Iniciar Hermes", + "Start OAuth": "Iniciar OAuth", + "Start Pairing": "Iniciar pareamento", + "Start a new session or resume an existing one from the Session menu above.": "Inicie uma nova sessão ou retome uma existente no menu Sessão acima.", + "Status": "Status", + "Stop": "Parar", + "Stop Hermes": "Parar Hermes", + "Subagent": "Subagente", + "Subagent Sessions (%lld)": "Sessões de subagente (%lld)", + "Submit": "Enviar", + "Subscribe": "Assinar", + "Succeeded": "Sucesso", + "Switch to This Profile": "Mudar para este perfil", + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": "Trocar o perfil ativo muda o diretório `~/.hermes` usado pelo hermes. Reinicie o Scarf após trocar para ele reler os arquivos do novo perfil.", + "TTS Off": "TTS desligado", + "TTS On": "TTS ligado", + "Terminal": "Terminal", + "Test": "Testar", + "Test All": "Testar todos", + "Test Connection": "Testar conexão", + "Test failed": "Teste falhou", + "Test passed": "Teste aprovado", + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "O agente ainda não anunciou nenhum comando slash. Continue digitando para enviar como mensagem, ou pressione Esc.", + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "A impressão SSH do remoto não corresponde mais ao que seu arquivo `~/.ssh/known_hosts` esperava. Normalmente isso significa que o remoto foi reinstalado — ou, mais raramente, que alguém está interceptando a conexão.", + "The server this window was opened with has been removed from your registry.": "O servidor com o qual esta janela foi aberta foi removido do seu registro.", + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": "A configuração SSH do servidor é removida do Scarf. Seus arquivos remotos permanecem intocados.", + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": "O terminal é um TTY real — cole com ⌘V, pressione Return e aguarde o processo encerrar com \"login succeeded\".", + "These list fields must be edited directly in config.yaml.": "Esses campos de lista precisam ser editados diretamente em config.yaml.", + "This provider has no catalogued models.": "Este provedor não tem modelos catalogados.", + "This removes the credential from hermes. The upstream provider key is not revoked.": "Isso remove a credencial do hermes. A chave do provedor original não é revogada.", + "This removes the profile directory and all data within it. This cannot be undone.": "Isso remove o diretório do perfil e todos os dados dentro dele. Não pode ser desfeito.", + "This removes the scheduled job permanently.": "Isso remove a tarefa agendada permanentemente.", + "This removes the server from config.yaml and deletes any OAuth token.": "Isso remove o servidor do config.yaml e apaga qualquer token OAuth.", + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": "Isso envia logs, configuração (com segredos mascarados) e informações do sistema para a infraestrutura de suporte da Nous Research. Revise a saída antes de compartilhar a URL retornada.", + "This will overwrite files under ~/.hermes/ with the archive contents.": "Isso sobrescreverá arquivos em ~/.hermes/ com o conteúdo do arquivo.", + "This will permanently delete the session and all its messages.": "Isso excluirá permanentemente a sessão e todas as suas mensagens.", + "Timeout: %llds (%@)": "Tempo limite: %1$lld s (%2$@)", + "Timeouts": "Tempos limite", + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Para pular a solicitação de frase secreta a cada reinicialização, adicione `--apple-use-keychain` para armazená-la no Keychain do macOS.", + "Toggle text-to-speech (/voice tts)": "Alternar texto-para-fala (/voice tts)", + "Toggle voice mode (/voice)": "Alternar modo de voz (/voice)", + "Token on disk. Clear to re-authenticate next time the gateway connects.": "Token no disco. Limpe para reautenticar na próxima vez que o gateway conectar.", + "Tool Approval Required": "Aprovação de ferramenta necessária", + "Tool Filters": "Filtros de ferramentas", + "Tools": "Ferramentas", + "Top Tools": "Principais ferramentas", + "Uninstall": "Desinstalar", + "Unknown: %@": "Desconhecido: %@", + "Update": "Atualizar", + "Update All": "Atualizar todos", + "Updated: %@": "Atualizado: %@", + "Updates": "Atualizações", + "Upload": "Enviar", + "Upload debug report?": "Enviar relatório de depuração?", + "Usage Stats": "Estatísticas de uso", + "Use": "Usar", + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": "Use um modelo fora do catálogo. O Hermes aceita qualquer string reconhecida pelo provedor, inclusive formas com prefixo do provedor como \"openrouter/anthropic/claude-opus-4.6\".", + "Use this": "Usar este", + "Use {dot.notation} to reference fields in the webhook payload.": "Use {dot.notation} para referenciar campos no payload do webhook.", + "Used as the YAML key. Lowercase, no spaces.": "Usado como chave YAML. Minúsculas, sem espaços.", + "View": "Ver", + "View All": "Ver tudo", + "Voice Off": "Voz desligada", + "Voice On": "Voz ligada", + "Waiting for authorization URL…": "Aguardando URL de autorização…", + "Waiting for first probe": "Aguardando primeira verificação", + "Waiting for hermes to prompt for the code…": "Aguardando o hermes solicitar o código…", + "Webhook platform not enabled": "Plataforma de webhook não ativada", + "Webhooks": "Webhooks", + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhooks permitem que serviços externos disparem respostas do agente. Cada assinatura tem seu próprio endpoint de URL.", + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "O WhatsApp usa a biblioteca Baileys para emular uma sessão do WhatsApp Web. Pareie este Mac como dispositivo vinculado executando o assistente de pareamento e escaneando o QR code com seu telefone (Ajustes → Dispositivos vinculados → Vincular um dispositivo).", + "Working": "Trabalhando", + "e.g. anthropic": "ex: anthropic", + "e.g. deploy": "ex: deploy", + "e.g. experimental": "ex: experimental", + "e.g. github": "ex: github", + "e.g. openai": "ex: openai", + "e.g. openai/gpt-4o": "ex: openai/gpt-4o", + "e.g. team-prod": "ex: team-prod", + "exit code: %d": "código de saída: %d", + "hermes at %@": "hermes em %@", + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": "A integração com iMessage usa o BlueBubbles Server. Você precisa de um Mac ligado e com Messages.app conectado — instale o BlueBubbles Server nele e aponte o hermes para a URL desse servidor.", + "signal-cli is available on PATH": "signal-cli está disponível no PATH", + "signal-cli not found on PATH — install it first": "signal-cli não encontrado no PATH — instale-o primeiro", + "ssh trace": "trace do ssh", + "ssh-agent (leave blank)": "ssh-agent (deixe em branco)", + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": "state.db não encontrado no caminho configurado. Ou o Hermes ainda não rodou neste servidor, ou está instalado em um local não padrão — defina o campo de diretório de dados do Hermes acima.", + "state.db not found at the default location, but Scarf found one at:": "state.db não encontrado no local padrão, mas o Scarf encontrou um em:", + "state.db readable": "state.db legível", + "— or use user/password login —": "— ou use login com usuário/senha —" +} diff --git a/tools/translations/zh-Hans.json b/tools/translations/zh-Hans.json new file mode 100644 index 0000000..1690fbe --- /dev/null +++ b/tools/translations/zh-Hans.json @@ -0,0 +1,520 @@ +{ + "%@ ctx": "%@ 上下文", + "%@ in / %@ out": "输入 %1$@ / 输出 %2$@", + "%@ reasoning": "%@ 推理", + "%@ tokens": "%@ 个令牌", + "%@s · %lld tools": "%1$@秒 · %2$lld 个工具", + "%lld %@": "%1$lld %2$@", + "%lld chars": "%lld 个字符", + "%lld delivery failure%@": "%1$lld 次投递失败%2$@", + "%lld entries": "%lld 条记录", + "%lld files": "%lld 个文件", + "%lld messages": "%lld 条消息", + "%lld msgs": "%lld 条", + "%lld of %lld enabled": "已启用 %1$lld / %2$lld", + "%lld reasoning": "%lld 次推理", + "%lld req": "%lld 个必填", + "%lld required config": "%lld 项必需配置", + "%lld sessions": "%lld 次会话", + "%lld tokens": "%lld 个令牌", + "%lld tools": "%lld 个工具", + "30 Days": "30 天", + "7 Days": "7 天", + "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "二维码将在下方显示。用手机上的 WhatsApp 扫描。会话保存在 ~/.hermes/platforms/whatsapp/,重启后无需再次扫描。", + "API Key": "API 密钥", + "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "API 密钥永远不会完整显示。Scarf 仅显示后 4 位用于识别。完整密钥由 hermes 存储在 ~/.hermes/auth.json。", + "Actions": "操作", + "Active": "活跃", + "Active profile": "当前配置", + "Activity": "活动", + "Activity Patterns": "活动模式", + "Add": "添加", + "Add Command": "添加命令", + "Add Credential": "添加凭证", + "Add Custom": "自定义添加", + "Add Custom MCP Server": "添加自定义 MCP 服务器", + "Add Project": "添加项目", + "Add Quick Command": "添加快捷命令", + "Add Remote Server": "添加远程服务器", + "Add Server": "添加服务器", + "Add a project folder to get started. Create a .scarf/dashboard.json file in your project to define widgets.": "添加项目文件夹以开始使用。在项目中创建 .scarf/dashboard.json 文件来定义小部件。", + "Add credentials in **Configure → Credential Pools**, set `ANTHROPIC_API_KEY` (or similar) in `~/.hermes/.env`, or export it in your shell profile, then restart Scarf.": "在 **配置 → 凭证池** 中添加凭证,在 `~/.hermes/.env` 中设置 `ANTHROPIC_API_KEY`(或类似变量),或在 shell 配置中导出该变量,然后重启 Scarf。", + "Add from Preset": "从预设添加", + "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "添加轮换凭证,以便 hermes 在某个密钥达到速率限制时能切换到其他密钥。", + "Add your first command": "添加第一个命令", + "After approving in your browser, the provider shows a code. Paste it below and submit.": "在浏览器中批准后,提供方会显示一个代码。将其粘贴到下方并提交。", + "Agent": "Agent", + "All": "全部", + "All Levels": "所有级别", + "All Sessions": "所有会话", + "All Time": "全部时间", + "All installed hub skills are up to date.": "所有已安装的 Hub 技能均为最新。", + "Approve": "批准", + "Archive": "归档", + "Args (one per line)": "参数(每行一个)", + "Arguments": "参数", + "Assistant Message": "助手消息", + "Auth": "认证", + "Authentication uses ssh-agent": "使用 ssh-agent 进行认证", + "Authorization Code": "授权码", + "Authorization URL": "授权 URL", + "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "辅助任务使用独立的、通常更便宜的模型。将 Provider 保持为 `auto` 以继承主提供方。", + "Back": "返回", + "Back to Catalog": "返回目录", + "Backup Now": "立即备份", + "Becomes the key under mcp_servers: in config.yaml.": "将作为 config.yaml 中 mcp_servers: 下的键。", + "Browse": "浏览", + "Browse Hub": "浏览 Hub", + "Browse the Hub": "浏览 Hub", + "Browse...": "浏览...", + "Browser": "浏览器", + "By Day": "按天", + "By Hour": "按小时", + "Call timeout": "调用超时", + "Can't read Hermes state on %@": "无法读取 %@ 上的 Hermes 状态", + "Cancel": "取消", + "Changes won't take effect until Hermes reloads the config.": "更改在 Hermes 重新加载配置前不会生效。", + "Chat": "聊天", + "Chat Messages": "聊天消息", + "Check": "检查", + "Check Now": "立即检查", + "Check for Updates": "检查更新", + "Check for Updates…": "检查更新…", + "Checking…": "检查中…", + "Choose a cron job from the list": "从列表中选择一个定时任务", + "Choose a profile to inspect.": "选择一个配置进行查看。", + "Choose a project from the sidebar to view its dashboard.": "从侧边栏选择项目以查看其仪表盘。", + "Choose a session from the list": "从列表中选择一个会话", + "Choose a skill from the list": "从列表中选择一个技能", + "Choose an entry from the list": "从列表中选择一个条目", + "Choose…": "选择…", + "Clear Token": "清除令牌", + "Clear all skills on save": "保存时清除所有技能", + "Click Add to connect to a remote Hermes installation over SSH.": "点击添加以通过 SSH 连接到远程 Hermes 安装。", + "Click for details": "点击查看详情", + "Clicking Start OAuth opens the provider's authorization page in your browser. After you approve, copy the code the provider displays and paste it back into the terminal that appears next.": "点击开始 OAuth 会在浏览器中打开提供方的授权页面。批准后,复制提供方显示的代码并粘贴到接下来出现的终端中。", + "Clone config, .env, SOUL.md from active profile": "从当前配置克隆 config、.env、SOUL.md", + "Close": "关闭", + "Close Window": "关闭窗口", + "Code: %@": "代码:%@", + "Command": "命令", + "Command looks destructive. Double-check before saving.": "该命令看起来具有破坏性。保存前请仔细确认。", + "Component": "组件", + "Compress": "压缩", + "Compress Conversation": "压缩对话", + "Compress conversation (/compress)": "压缩对话 (/compress)", + "Configure": "配置", + "Connect timeout": "连接超时", + "Connected": "已连接", + "Connected — can't read Hermes state": "已连接 — 无法读取 Hermes 状态", + "Connection": "连接", + "Continue Last Session": "继续上次会话", + "Copied": "已复制", + "Copy": "复制", + "Copy Full Report": "复制完整报告", + "Copy a plain-text summary of every check (passes and fails) — paste into GitHub issues so we can see everything at once.": "复制每项检查(通过和失败)的纯文本摘要 — 粘贴到 GitHub issue 中以便我们一次查看所有内容。", + "Copy code": "复制代码", + "Copy error details": "复制错误详情", + "Create": "创建", + "Create Profile": "创建配置", + "Create Subscription": "创建订阅", + "Create a Slack app at api.slack.com/apps, enable Socket Mode, grant bot scopes (chat:write, app_mentions:read, channels:history, etc.), then copy the Bot User OAuth Token (xoxb-) and the App-Level Token (xapp-).": "在 api.slack.com/apps 创建 Slack 应用,启用 Socket Mode,授予 bot 权限(chat:write、app_mentions:read、channels:history 等),然后复制 Bot User OAuth Token(xoxb-)和 App-Level Token(xapp-)。", + "Create a bot via @BotFather and get your numeric user ID from @userinfobot. Paste the token and your user ID below — the bot will only respond to allowed users.": "通过 @BotFather 创建机器人,并从 @userinfobot 获取你的数字用户 ID。将令牌和用户 ID 粘贴到下方 — 机器人只会响应允许的用户。", + "Create a long-lived access token in Home Assistant (Profile → Security → Long-Lived Access Tokens). By default, no events are forwarded — enable Watch All Changes, or add entity filters below.": "在 Home Assistant 中创建长期访问令牌(配置 → 安全 → 长期访问令牌)。默认不转发任何事件 — 启用 Watch All Changes 或在下方添加实体过滤器。", + "Create a personal access token under Profile → Security → Personal Access Tokens, or create a bot account. Use the token as the MATTERMOST_TOKEN value.": "在 配置 → 安全 → 个人访问令牌 下创建个人访问令牌,或创建机器人账号。将该令牌用作 MATTERMOST_TOKEN 的值。", + "Create a profile to isolate config and skills.": "创建配置以隔离 config 和技能。", + "Create an app in Discord's Developer Portal, enable Message Content and Server Members intents, and copy the bot token. Invite the bot to your server via the OAuth2 URL generator.": "在 Discord 开发者门户创建应用,启用 Message Content 和 Server Members intents,然后复制机器人令牌。通过 OAuth2 URL 生成器将机器人邀请到你的服务器。", + "Create an app in the Feishu/Lark Developer Console, enable Interactive Card if you need button responses, and copy the App ID and App Secret. WebSocket mode (recommended) doesn't need a public endpoint.": "在飞书/Lark 开发者后台创建应用,如需按钮交互请启用 Interactive Card,然后复制 App ID 和 App Secret。推荐使用 WebSocket 模式,无需公网地址。", + "Credential Pools": "凭证池", + "Credential Type": "凭证类型", + "Credentials": "凭证", + "Cron": "定时任务", + "Cron Jobs": "定时任务", + "Current: %@": "当前:%@", + "Custom…": "自定义…", + "Daemon running": "守护进程运行中", + "Dashboard": "仪表盘", + "Default": "默认", + "Default: ~/.hermes": "默认:~/.hermes", + "Defaults to ~/.ssh/config or current user": "默认使用 ~/.ssh/config 或当前用户", + "Delete": "删除", + "Delete %@?": "删除 %@?", + "Delete Session?": "删除会话?", + "Delete profile '%@'?": "删除配置 '%@'?", + "Delete...": "删除...", + "Deliver: %@": "投递:%@", + "Diagnostic Output": "诊断输出", + "Diagnostics": "诊断", + "Disable": "禁用", + "Disabled": "已禁用", + "Docs": "文档", + "Done": "完成", + "Edit": "编辑", + "Edit %@": "编辑 %@", + "Edit /%@": "编辑 /%@", + "Edit Agent Memory": "编辑 Agent 记忆", + "Edit User Profile": "编辑用户配置", + "Edit config.yaml": "编辑 config.yaml", + "Empty": "空", + "Enable": "启用", + "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "为你的邮箱账户启用双重验证并生成应用专用密码。普通账户密码将无法使用。务必设置允许的发件人 — 否则任何知道邮件地址的人都可以向 agent 发消息。", + "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "启用 webhook 平台以接受事件驱动的 agent 触发。当单独的路由未提供自己的密钥时,使用 HMAC 密钥作为回退。", + "Enabled": "已启用", + "Env vars, headers, and tool filters can be edited after the server is added.": "添加服务器后可以编辑环境变量、请求头和工具过滤器。", + "Environment Variables": "环境变量", + "Error": "错误", + "Errors": "错误", + "Exclude": "排除", + "Execute": "执行", + "Expected at %@": "预期位于 %@", + "Export All": "全部导出", + "Export...": "导出...", + "Export…": "导出…", + "Expose prompts": "暴露提示", + "Expose resources": "暴露资源", + "Fetch": "拉取", + "Files": "文件", + "Filter logs...": "筛选日志...", + "Filter servers...": "筛选服务器...", + "Filter skills...": "筛选技能...", + "Filter to session %@": "筛选到会话 %@", + "Focus topic (optional)": "聚焦主题(可选)", + "Full copy of active profile (all state)": "当前配置的完整副本(所有状态)", + "Gateway": "Gateway", + "Gateway Running": "Gateway 运行中", + "Gateway Stopped": "Gateway 已停止", + "Gateway restart required": "需要重启 Gateway", + "Header": "请求头", + "Headers": "请求头", + "Health": "健康", + "Hermes Not Found": "未找到 Hermes", + "Hermes Running": "Hermes 运行中", + "Hermes Stopped": "Hermes 已停止", + "Hermes binary not found": "未找到 Hermes 可执行文件", + "Hermes needs a global webhook secret and port before subscriptions can receive traffic. Run the gateway setup wizard or edit ~/.hermes/config.yaml manually.": "订阅接收流量前,Hermes 需要全局 webhook 密钥和端口。运行 gateway 设置向导或手动编辑 ~/.hermes/config.yaml。", + "Hide": "隐藏", + "Hide Output": "隐藏输出", + "Hide details": "隐藏详情", + "Host key changed": "主机密钥已变更", + "ID: %@": "ID:%@", + "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "如果这是首次连接,请确保已通过 `ssh-add` 加载你的密钥,并且远端接受该密钥。", + "If you trust the change, remove the stale entry and reconnect:": "如果你信任此变更,请移除过期条目并重新连接:", + "Import": "导入", + "Inactive": "未激活", + "Include (comma-separated — if set, only these are exposed)": "包含(逗号分隔 — 若设置,仅暴露这些)", + "Insights": "洞察", + "Install": "安装", + "Install BlueBubbles Server": "安装 BlueBubbles 服务器", + "Install Plugin": "安装插件", + "Install a Plugin": "安装插件", + "Install signal-cli": "安装 signal-cli", + "Installed": "已安装", + "Interact": "交互", + "Invalid URL": "无效 URL", + "Keep typing to send as a message, or press Esc.": "继续输入作为消息发送,或按 Esc 取消。", + "Label (optional)": "标签(可选)", + "Last Output": "最后输出", + "Last probe: %@": "上次探测:%@", + "Last run: %@": "上次运行:%@", + "Last updated: %@": "最后更新:%@", + "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "留空则从模型 ID 的前缀推断(\"openai/...\" → openai)。", + "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "除非 Hermes 安装在非默认路径,否则请留空(systemd 服务通常在 /var/lib/hermes/.hermes,Docker sidecar 则各不相同)。检测到已知替代路径时,测试连接会自动建议值。", + "Level": "级别", + "Link Device": "关联设备", + "Link the device first to generate and scan a QR code. Once linked, start the daemon — it must keep running for hermes to send/receive messages.": "首先关联设备以生成并扫描二维码。关联后启动守护进程 — 必须保持运行以便 hermes 收发消息。", + "Linking…": "关联中…", + "Loaded": "已加载", + "Loading session…": "正在加载会话…", + "Local": "本地", + "Local (stdio)": "本地 (stdio)", + "Log File": "日志文件", + "Logs": "日志", + "MCP Servers": "MCP 服务器", + "MCP Servers (%lld)": "MCP 服务器 (%lld)", + "Manage": "管理", + "Manage Servers…": "管理服务器…", + "Manage in Credential Pools": "在凭证池中管理", + "Matrix uses either an access token (preferred) or username/password. Get an access token from Element: Settings → Help & About → Access Token.": "Matrix 使用访问令牌(推荐)或用户名/密码。从 Element 获取访问令牌:设置 → 帮助与关于 → 访问令牌。", + "Memory": "记忆", + "Memory is managed by %@. File contents shown here may be stale.": "记忆由 %@ 管理。此处显示的文件内容可能已过时。", + "Message Hermes...": "向 Hermes 发送消息...", + "Messages will appear here as the conversation progresses.": "消息将随对话进行显示在此处。", + "Migrate": "迁移", + "Missing required config:": "缺少必需的配置:", + "Model ID": "模型 ID", + "Models": "模型", + "Monitor": "监控", + "Name": "名称", + "Name (no leading slash)": "名称(不带前导斜杠)", + "New Session": "新建会话", + "New Webhook Subscription": "新建 Webhook 订阅", + "New name for '%@'": "'%@' 的新名称", + "Next run: %@": "下次运行:%@", + "No AI provider credentials detected": "未检测到 AI 提供方凭证", + "No Active Session": "无活跃会话", + "No Activity": "无活动", + "No Cron Jobs": "无定时任务", + "No Dashboard": "无仪表盘", + "No MCP servers configured": "未配置 MCP 服务器", + "No Models": "无模型", + "No Profiles": "无配置", + "No Projects": "无项目", + "No Updates": "无更新", + "No active session": "无活跃会话", + "No additional output. Check ~/.ssh/config and ssh-agent.": "无额外输出。请检查 ~/.ssh/config 和 ssh-agent。", + "No commands available": "无可用命令", + "No credential pools configured": "未配置凭证池", + "No data": "无数据", + "No env vars configured.": "未配置环境变量。", + "No env vars. Add one with the button below.": "无环境变量。点击下方按钮添加。", + "No headers configured.": "未配置请求头。", + "No headers. Add one with the button below.": "无请求头。点击下方按钮添加。", + "No matching commands": "无匹配命令", + "No paired users": "无配对用户", + "No platforms connected": "未连接平台", + "No plugins installed": "未安装插件", + "No quick commands configured": "未配置快捷命令", + "No remote servers": "无远程服务器", + "No scheduled jobs configured": "未配置定时任务", + "No servers configured yet": "尚未配置服务器", + "No sessions found": "未找到会话", + "No tool calls found": "未找到工具调用", + "No webhook subscriptions": "无 Webhook 订阅", + "None": "无", + "Notable Sessions": "重要会话", + "OAuth login for %@": "%@ 的 OAuth 登录", + "Open BotFather": "打开 BotFather", + "Open Developer Portal": "打开开发者门户", + "Open Local": "打开本地", + "Open Other Server…": "打开其他服务器…", + "Open Scarf": "打开 Scarf", + "Open Server": "打开服务器", + "Open Slack API": "打开 Slack API", + "Open in Browser": "在浏览器中打开", + "Open in Editor": "在编辑器中打开", + "Open in new window": "在新窗口中打开", + "Open session": "打开会话", + "Optional — defaults to hostname": "可选 — 默认为主机名", + "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "可选地将摘要聚焦到特定主题。留空则均匀压缩。", + "Other": "其他", + "Output": "输出", + "Overview": "概览", + "PID %d": "PID %d", + "PID %lld": "PID %lld", + "Pair Device": "配对设备", + "Paired Users": "已配对用户", + "Paste code here…": "在此粘贴代码…", + "Pause": "暂停", + "Pending Approvals": "待批准", + "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "按路由的订阅(事件、提示模板、投递目标)在 Webhooks 侧边栏中管理 — 不在此处。本面板仅控制 webhook 平台是否监听。", + "Period": "周期", + "Personalities": "人格", + "Pick an MCP server to add.": "选择要添加的 MCP 服务器。", + "Pick one from the list, or add a new server from the toolbar.": "从列表中选择,或从工具栏添加新服务器。", + "Platforms": "平台", + "Plugins": "插件", + "Plugins extend hermes with custom tools, providers, or memory backends.": "插件通过自定义工具、提供方或记忆后端扩展 hermes。", + "Pre-Run Script": "运行前脚本", + "Preset:": "预设:", + "Probe": "探测", + "Profile": "配置", + "Profiles": "配置", + "Project Name": "项目名称", + "Project Path": "项目路径", + "Projects": "项目", + "Prompt": "提示", + "Provide a Git URL (https://github.com/...) or a shorthand like `owner/repo`.": "提供 Git URL(https://github.com/...)或简写如 `owner/repo`。", + "Provider": "提供方", + "Push to Talk": "按住说话", + "Push to talk (Ctrl+B)": "按住说话 (Ctrl+B)", + "Quick Commands": "快捷命令", + "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "快捷命令是 hermes 在聊天中以 `/command_name` 形式暴露的 shell 快捷方式。它们位于 config.yaml 的 `quick_commands:` 下。", + "Quit Scarf": "退出 Scarf", + "Raw Config": "原始配置", + "Raw remote output (for debugging)": "远程原始输出(用于调试)", + "Re-run": "重新运行", + "Read": "读取", + "Reasoning": "推理", + "Recent Sessions": "最近会话", + "Reconnect": "重新连接", + "Recording…": "录制中…", + "Refresh": "刷新", + "Reload": "重新加载", + "Remote (HTTP)": "远程 (HTTP)", + "Remote Diagnostics — %@": "远程诊断 — %@", + "Remove": "移除", + "Remove %@?": "移除 %@?", + "Remove credential for %@?": "移除 %@ 的凭证?", + "Remove this server from Scarf.": "从 Scarf 中移除此服务器。", + "Remove this server?": "移除此服务器?", + "Remove via config.yaml…": "通过 config.yaml 移除…", + "Remove webhook %@?": "移除 webhook %@?", + "Rename": "重命名", + "Rename Profile": "重命名配置", + "Rename Session": "重命名会话", + "Rename...": "重命名...", + "Requires: %@": "需要:%@", + "Reset Cooldowns": "重置冷却", + "Restart": "重启", + "Restart Gateway": "重启 Gateway", + "Restart Hermes": "重启 Hermes", + "Restart Now": "立即重启", + "Restore": "恢复", + "Restore from backup?": "从备份恢复?", + "Restore…": "恢复…", + "Result": "结果", + "Resume": "继续", + "Resume Session": "恢复会话", + "Retry": "重试", + "Return to Active Session (%@...)": "返回活跃会话 (%@...)", + "Reveal": "显示", + "Revoke": "撤销", + "Rich Chat": "富文本聊天", + "Run Diagnostics…": "运行诊断…", + "Run Dump": "运行 Dump", + "Run Now": "立即运行", + "Run Setup in Terminal": "在终端中运行设置", + "Run `hermes memory setup` in Terminal for full provider configuration.": "在终端中运行 `hermes memory setup` 以完成完整的提供方配置。", + "Run remote diagnostics — check exactly which files are readable on this server.": "运行远程诊断 — 准确检查此服务器上哪些文件可读。", + "Running a single shell session on %@ that exercises every path Scarf reads…": "在 %@ 上运行单一 shell 会话,测试 Scarf 读取的每个路径…", + "Running checks…": "正在运行检查…", + "SOUL.md describes the agent's voice, values, and personality at ~/.hermes/SOUL.md. It is injected into every session's context.": "SOUL.md 位于 ~/.hermes/SOUL.md,描述 agent 的语气、价值观与人格。它会被注入到每个会话的上下文中。", + "SSH works but %@. Click for diagnostics.": "SSH 正常,但 %@。点击查看诊断。", + "Save": "保存", + "Scarf never prompts for passphrases. Add your key to ssh-agent in Terminal, then click Retry. If your key isn't `id_ed25519`, swap the path:": "Scarf 永远不会提示输入密码短语。请在终端中将密钥添加到 ssh-agent,然后点击重试。如果你的密钥不是 `id_ed25519`,请替换路径:", + "Scarf runs these over a single SSH session that mirrors the shell your dashboard reads from, so a green row here means Scarf can actually read that file at runtime.": "Scarf 在单一 SSH 会话中运行这些命令,该会话与仪表盘读取的 shell 一致。因此这里绿色行表示 Scarf 在运行时确实可以读取该文件。", + "Scarf uses ssh-agent for authentication. If your key has a passphrase, run `ssh-add` before connecting — Scarf never prompts for or stores passphrases.": "Scarf 使用 ssh-agent 进行认证。如果你的密钥带有密码短语,请在连接前运行 `ssh-add` — Scarf 永远不会提示或存储密码短语。", + "Scarf — %@": "Scarf — %@", + "Search": "搜索", + "Search Results (%lld)": "搜索结果 (%lld)", + "Search messages...": "搜索消息...", + "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "搜索或浏览发布到 skills.sh、GitHub 和官方 Hub 等注册表的技能。", + "Search registries": "搜索注册表", + "Search…": "搜索…", + "Select": "选择", + "Select Model": "选择模型", + "Select a Job": "选择任务", + "Select a Profile": "选择配置", + "Select a Project": "选择项目", + "Select a Session": "选择会话", + "Select a Skill": "选择技能", + "Select a Tool Call": "选择工具调用", + "Select an MCP Server": "选择 MCP 服务器", + "Send message (Enter)": "发送消息 (Enter)", + "Series": "系列", + "Server No Longer Exists": "服务器已不存在", + "Server name": "服务器名称", + "Servers": "服务器", + "Service": "服务", + "Service definition stale": "服务定义已过期", + "Session": "会话", + "Session title": "会话标题", + "Sessions": "会话", + "Settings": "设置", + "Setup": "设置", + "Share Debug Report…": "分享调试报告…", + "Shell Command": "Shell 命令", + "Show": "显示", + "Show Output": "显示输出", + "Show all %lld lines": "显示全部 %lld 行", + "Show details": "显示详情", + "Show less": "收起", + "Show values": "显示值", + "Signal integration requires signal-cli (Java-based) installed locally. Link this Mac as a Signal device, then keep the daemon running so hermes can send/receive messages.": "Signal 集成需要在本地安装 signal-cli(基于 Java)。将此 Mac 关联为 Signal 设备,然后保持守护进程运行,以便 hermes 收发消息。", + "Site": "站点", + "Skills": "技能", + "Skills (%lld)": "技能 (%lld)", + "Source": "来源", + "Start": "启动", + "Start Daemon": "启动守护进程", + "Start Hermes": "启动 Hermes", + "Start OAuth": "开始 OAuth", + "Start Pairing": "开始配对", + "Start a new session or resume an existing one from the Session menu above.": "从上方会话菜单启动新会话或恢复已有会话。", + "Status": "状态", + "Stop": "停止", + "Stop Hermes": "停止 Hermes", + "Subagent": "子 agent", + "Subagent Sessions (%lld)": "子 agent 会话 (%lld)", + "Submit": "提交", + "Subscribe": "订阅", + "Succeeded": "成功", + "Switch to This Profile": "切换到此配置", + "Switching the active profile changes the `~/.hermes` directory hermes uses. Restart Scarf after switching so it re-reads from the new profile's files.": "切换当前配置会改变 hermes 使用的 `~/.hermes` 目录。切换后请重启 Scarf,以便它从新配置的文件中重新读取。", + "TTS Off": "TTS 关", + "TTS On": "TTS 开", + "Terminal": "终端", + "Test": "测试", + "Test All": "测试全部", + "Test Connection": "测试连接", + "Test failed": "测试失败", + "Test passed": "测试通过", + "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "agent 尚未公布任何斜杠命令。继续输入作为消息发送,或按 Esc。", + "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "远端的 SSH 指纹与你 `~/.ssh/known_hosts` 文件中预期的不再匹配。这通常意味着远端已重装 — 较少见的情况是有人在拦截连接。", + "The server this window was opened with has been removed from your registry.": "打开此窗口所用的服务器已从你的注册表中移除。", + "The server's SSH configuration is removed from Scarf. Your remote files are untouched.": "服务器的 SSH 配置已从 Scarf 中移除。你的远程文件未被改动。", + "The terminal is a real TTY — paste with ⌘V, press Return, and wait for the process to exit with \"login succeeded\".": "终端是真正的 TTY — 使用 ⌘V 粘贴,按 Return,等待进程以 \"login succeeded\" 退出。", + "These list fields must be edited directly in config.yaml.": "这些列表字段必须直接在 config.yaml 中编辑。", + "This provider has no catalogued models.": "此提供方没有已登记的模型。", + "This removes the credential from hermes. The upstream provider key is not revoked.": "这将从 hermes 中移除该凭证。上游提供方的密钥不会被撤销。", + "This removes the profile directory and all data within it. This cannot be undone.": "这将移除配置目录及其中所有数据。此操作无法撤销。", + "This removes the scheduled job permanently.": "这将永久移除该定时任务。", + "This removes the server from config.yaml and deletes any OAuth token.": "这将从 config.yaml 中移除服务器并删除任何 OAuth 令牌。", + "This uploads logs, config (with secrets redacted), and system info to Nous Research support infrastructure. Review the output below before sharing the returned URL.": "这会将日志、配置(密钥已脱敏)和系统信息上传到 Nous Research 支持基础设施。分享返回的 URL 前请查看下方输出。", + "This will overwrite files under ~/.hermes/ with the archive contents.": "这将使用归档内容覆盖 ~/.hermes/ 下的文件。", + "This will permanently delete the session and all its messages.": "这将永久删除该会话及其所有消息。", + "Timeout: %llds (%@)": "超时:%1$lld 秒 (%2$@)", + "Timeouts": "超时", + "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "要跳过每次重启时的密码短语提示,添加 `--apple-use-keychain` 以将其缓存到 macOS Keychain 中。", + "Toggle text-to-speech (/voice tts)": "切换文字转语音 (/voice tts)", + "Toggle voice mode (/voice)": "切换语音模式 (/voice)", + "Token on disk. Clear to re-authenticate next time the gateway connects.": "令牌已保存到磁盘。清除后,gateway 下次连接时将重新认证。", + "Tool Approval Required": "需要工具批准", + "Tool Filters": "工具过滤器", + "Tools": "工具", + "Top Tools": "常用工具", + "Uninstall": "卸载", + "Unknown: %@": "未知:%@", + "Update": "更新", + "Update All": "全部更新", + "Updated: %@": "已更新:%@", + "Updates": "更新", + "Upload": "上传", + "Upload debug report?": "上传调试报告?", + "Usage Stats": "使用统计", + "Use": "使用", + "Use a model not in the catalog. Hermes accepts any string the provider recognizes, including provider-prefixed forms like \"openrouter/anthropic/claude-opus-4.6\".": "使用未登记在目录中的模型。Hermes 接受提供方识别的任何字符串,包括带有提供方前缀的形式,如 \"openrouter/anthropic/claude-opus-4.6\"。", + "Use this": "使用此项", + "Use {dot.notation} to reference fields in the webhook payload.": "使用 {dot.notation} 引用 webhook payload 中的字段。", + "Used as the YAML key. Lowercase, no spaces.": "用作 YAML 键。小写,不含空格。", + "View": "查看", + "View All": "查看全部", + "Voice Off": "语音关", + "Voice On": "语音开", + "Waiting for authorization URL…": "等待授权 URL…", + "Waiting for first probe": "等待首次探测", + "Waiting for hermes to prompt for the code…": "等待 hermes 提示输入代码…", + "Webhook platform not enabled": "未启用 webhook 平台", + "Webhooks": "Webhooks", + "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhooks 允许外部服务触发 agent 响应。每个订阅都有自己的 URL 端点。", + "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp 使用 Baileys 库模拟 WhatsApp Web 会话。通过运行配对向导并用手机扫描二维码,将此 Mac 配对为关联设备(设置 → 关联设备 → 关联一台设备)。", + "Working": "工作中", + "e.g. anthropic": "例如 anthropic", + "e.g. deploy": "例如 deploy", + "e.g. experimental": "例如 experimental", + "e.g. github": "例如 github", + "e.g. openai": "例如 openai", + "e.g. openai/gpt-4o": "例如 openai/gpt-4o", + "e.g. team-prod": "例如 team-prod", + "exit code: %d": "退出码:%d", + "hermes at %@": "%@ 上的 hermes", + "iMessage integration runs through BlueBubbles Server. You need a Mac that stays on with Messages.app signed in — install BlueBubbles Server on it, then point hermes at that server's URL.": "iMessage 集成通过 BlueBubbles Server 运行。你需要一台保持开机且登录 Messages.app 的 Mac — 在其上安装 BlueBubbles Server,然后将 hermes 指向该服务器的 URL。", + "signal-cli is available on PATH": "signal-cli 已在 PATH 中", + "signal-cli not found on PATH — install it first": "PATH 中未找到 signal-cli — 请先安装", + "ssh trace": "ssh 跟踪", + "ssh-agent (leave blank)": "ssh-agent(留空)", + "state.db not found at the configured path. Either Hermes hasn't run yet on this server, or it's installed at a non-default location — set the Hermes data directory field above.": "在配置的路径下未找到 state.db。要么 Hermes 尚未在此服务器上运行过,要么它安装在非默认位置 — 请在上方设置 Hermes 数据目录字段。", + "state.db not found at the default location, but Scarf found one at:": "默认位置下未找到 state.db,但 Scarf 在此处找到了一个:", + "state.db readable": "state.db 可读", + "— or use user/password login —": "— 或使用用户名/密码登录 —" +} From f47034d4ade54d7c8981bd8db7ce2fcc1ef582d2 Mon Sep 17 00:00:00 2001 From: Alan Wizemann Date: Tue, 21 Apr 2026 03:32:32 +0200 Subject: [PATCH 2/2] fix(i18n): localize sidebar, settings tabs, and settings section titles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three connected bugs where the Label/SettingsSection APIs took a `String`, which routes through the StringProtocol overloads and bypasses localization entirely. Identified by the user after testing zh-Hans / de / fr — the sidebar menu items, Settings tab bar, and Settings section headers all remained English under any App Language override. - SidebarSection now exposes displayName: LocalizedStringResource; SidebarView builds Label via the Text/Image builders so the catalog key is actually used. - SettingsTab gets the same displayName treatment; the .tabItem Label builds through the Text/Image builder too. - SettingsSection.title changes from String → LocalizedStringKey so literal call sites (all ~20 of them) now extract into the catalog. Two call sites that were passing String variables (PlatformsView, CredentialPoolsView) are wrapped via LocalizedStringKey(...) — brand/provider names fall through to English as before. AuxiliaryTab's static task list gets a LocalizedStringKey column so its section titles extract too. This change newly extracts 65 previously-invisible section-title keys into the catalog; translations added for all six locales. Catalog: 575 → 644 source keys, each locale translated for 583 of them (brand names / protocol names / format-only keys intentionally fall through). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../Views/CredentialPoolsView.swift | 2 +- .../Platforms/Views/PlatformsView.swift | 2 +- .../Views/Components/SettingsComponents.swift | 2 +- .../Settings/Views/SettingsView.swift | 22 +- .../Settings/Views/Tabs/AuxiliaryTab.swift | 2 +- scarf/scarf/Localizable.xcstrings | 2608 ++++++++++++++++- scarf/scarf/Navigation/AppCoordinator.swift | 27 + scarf/scarf/Navigation/SidebarView.swift | 40 +- tools/translations/de.json | 65 + tools/translations/es.json | 65 + tools/translations/fr.json | 65 + tools/translations/ja.json | 65 + tools/translations/pt-BR.json | 65 + tools/translations/zh-Hans.json | 65 + 14 files changed, 3078 insertions(+), 17 deletions(-) diff --git a/scarf/scarf/Features/CredentialPools/Views/CredentialPoolsView.swift b/scarf/scarf/Features/CredentialPools/Views/CredentialPoolsView.swift index 68a1568..6449fe1 100644 --- a/scarf/scarf/Features/CredentialPools/Views/CredentialPoolsView.swift +++ b/scarf/scarf/Features/CredentialPools/Views/CredentialPoolsView.swift @@ -106,7 +106,7 @@ struct CredentialPoolsView: View { @ViewBuilder private func poolSection(_ pool: HermesCredentialPool) -> some View { - SettingsSection(title: pool.provider, icon: "key.horizontal") { + SettingsSection(title: LocalizedStringKey(pool.provider), icon: "key.horizontal") { PickerRow(label: "Rotation", selection: pool.strategy, options: viewModel.strategyOptions) { strategy in viewModel.setStrategy(strategy, for: pool.provider) } diff --git a/scarf/scarf/Features/Platforms/Views/PlatformsView.swift b/scarf/scarf/Features/Platforms/Views/PlatformsView.swift index ac28df8..8fff3bb 100644 --- a/scarf/scarf/Features/Platforms/Views/PlatformsView.swift +++ b/scarf/scarf/Features/Platforms/Views/PlatformsView.swift @@ -139,7 +139,7 @@ struct PlatformsView: View { case "homeassistant": HomeAssistantSetupView(context: ctx) case "webhook": WebhookSetupView(context: ctx) default: - SettingsSection(title: viewModel.selected.displayName, icon: KnownPlatforms.icon(for: viewModel.selected.name)) { + SettingsSection(title: LocalizedStringKey(viewModel.selected.displayName), icon: KnownPlatforms.icon(for: viewModel.selected.name)) { ReadOnlyRow(label: "Setup", value: "No setup form for this platform yet.") } } diff --git a/scarf/scarf/Features/Settings/Views/Components/SettingsComponents.swift b/scarf/scarf/Features/Settings/Views/Components/SettingsComponents.swift index d766937..1a41791 100644 --- a/scarf/scarf/Features/Settings/Views/Components/SettingsComponents.swift +++ b/scarf/scarf/Features/Settings/Views/Components/SettingsComponents.swift @@ -6,7 +6,7 @@ import AppKit /// on large view bodies (per project guidance in CLAUDE.md). struct SettingsSection: View { - let title: String + let title: LocalizedStringKey let icon: String @ViewBuilder let content: Content diff --git a/scarf/scarf/Features/Settings/Views/SettingsView.swift b/scarf/scarf/Features/Settings/Views/SettingsView.swift index fc6b4f5..a397461 100644 --- a/scarf/scarf/Features/Settings/Views/SettingsView.swift +++ b/scarf/scarf/Features/Settings/Views/SettingsView.swift @@ -26,6 +26,22 @@ struct SettingsView: View { case advanced = "Advanced" var id: String { rawValue } + + var displayName: LocalizedStringResource { + switch self { + case .general: return "General" + case .display: return "Display" + case .agent: return "Agent" + case .terminal: return "Terminal" + case .browser: return "Browser" + case .voice: return "Voice" + case .memory: return "Memory" + case .auxiliary: return "Aux Models" + case .security: return "Security" + case .advanced: return "Advanced" + } + } + var icon: String { switch self { case .general: return "gear" @@ -56,7 +72,11 @@ struct SettingsView: View { .frame(maxWidth: .infinity, alignment: .topLeading) } .tabItem { - Label(tab.rawValue, systemImage: tab.icon) + Label { + Text(tab.displayName) + } icon: { + Image(systemName: tab.icon) + } } .tag(tab) } diff --git a/scarf/scarf/Features/Settings/Views/Tabs/AuxiliaryTab.swift b/scarf/scarf/Features/Settings/Views/Tabs/AuxiliaryTab.swift index 5d11d89..df3c7ee 100644 --- a/scarf/scarf/Features/Settings/Views/Tabs/AuxiliaryTab.swift +++ b/scarf/scarf/Features/Settings/Views/Tabs/AuxiliaryTab.swift @@ -6,7 +6,7 @@ struct AuxiliaryTab: View { @Bindable var viewModel: SettingsViewModel // Keyed by the config path name — matches `auxiliary..*` in config.yaml. - private let tasks: [(key: String, title: String, icon: String)] = [ + private let tasks: [(key: String, title: LocalizedStringKey, icon: String)] = [ ("vision", "Vision", "eye"), ("web_extract", "Web Extract", "doc.richtext"), ("compression", "Compression", "arrow.down.right.and.arrow.up.left.circle"), diff --git a/scarf/scarf/Localizable.xcstrings b/scarf/scarf/Localizable.xcstrings index 1701c10..d5b17d7 100644 --- a/scarf/scarf/Localizable.xcstrings +++ b/scarf/scarf/Localizable.xcstrings @@ -898,7 +898,46 @@ } } }, - "90 Days": {}, + "90 Days": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "90 Tage" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "90 días" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "90 jours" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "90 日間" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "90 dias" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "90 天" + } + } + } + }, "<%@>": {}, "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": { "localizations": { @@ -1020,6 +1059,46 @@ } } }, + "Access Control": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Zugriffskontrolle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Control de acceso" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Contrôle d'accès" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクセス制御" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Controle de acesso" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "访问控制" + } + } + } + }, "Actions": { "localizations": { "de": { @@ -1100,6 +1179,46 @@ } } }, + "Active Personality": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Aktive Persönlichkeit" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Personalidad activa" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Personnalité active" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アクティブなパーソナリティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Personalidade ativa" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "活跃人格" + } + } + } + }, "Active profile": { "localizations": { "de": { @@ -1780,6 +1899,46 @@ } } }, + "Advanced": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erweitert" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Avanzado" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Avancé" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "詳細" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Avançado" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "高级" + } + } + } + }, "After approving in your browser, the provider shows a code. Paste it below and submit.": { "localizations": { "de": { @@ -2060,6 +2219,126 @@ } } }, + "App Credentials": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "App-Anmeldedaten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Credenciales de la aplicación" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Identifiants de l'application" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "アプリ資格情報" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Credenciais do app" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "应用凭证" + } + } + } + }, + "Approval": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Genehmigung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aprobación" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Approbation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "承認" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aprovação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "审批" + } + } + } + }, + "Approvals": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Genehmigungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aprobaciones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Approbations" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "承認" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Aprovações" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "审批" + } + } + } + }, "Approve": { "localizations": { "de": { @@ -2300,6 +2579,46 @@ } } }, + "Authentication": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Authentifizierung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Autenticación" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Authentification" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "認証" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Autenticação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "认证" + } + } + } + }, "Authentication uses ssh-agent": { "localizations": { "de": { @@ -2420,6 +2739,46 @@ } } }, + "Aux Models": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Hilfsmodelle" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Modelos auxiliares" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modèles auxiliaires" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "補助モデル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Modelos auxiliares" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "辅助模型" + } + } + } + }, "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": { "localizations": { "de": { @@ -2540,6 +2899,86 @@ } } }, + "Backend": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Backend" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Backend" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Backend" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "バックエンド" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Backend" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "后端" + } + } + } + }, + "Backup & Restore": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sicherung & Wiederherstellung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Copia de seguridad y restauración" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sauvegarde et restauration" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "バックアップと復元" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Backup e restauração" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "备份与恢复" + } + } + } + }, "Backup Now": { "localizations": { "de": { @@ -2620,7 +3059,48 @@ } } }, + "Behavior": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Verhalten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comportamiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Comportement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "動作" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Comportamento" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "行为" + } + } + } + }, "BlueBubbles Docs": {}, + "BlueBubbles Server": {}, "Browse": { "localizations": { "de": { @@ -2821,6 +3301,46 @@ } } }, + "Built-in Memory": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Integrierter Speicher" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Memoria integrada" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mémoire intégrée" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ビルトインメモリ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Memória integrada" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "内置记忆" + } + } + } + }, "By Day": { "localizations": { "de": { @@ -2942,6 +3462,7 @@ } } }, + "Camofox": {}, "Can't read Hermes state on %@": { "localizations": { "de": { @@ -3342,6 +3863,46 @@ } } }, + "Checkpoints": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Checkpoints" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Puntos de control" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Points de contrôle" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "チェックポイント" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Checkpoints" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "检查点" + } + } + } + }, "Choose a cron job from the list": { "localizations": { "de": { @@ -4022,6 +4583,46 @@ } } }, + "Command Allowlist": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Befehls-Allowlist" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Lista de comandos permitidos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Liste d'autorisations de commandes" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コマンド許可リスト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Lista de comandos permitidos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "命令白名单" + } + } + } + }, "Command looks destructive. Double-check before saving.": { "localizations": { "de": { @@ -4222,6 +4823,86 @@ } } }, + "Compression": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Komprimierung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Compresión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Compression" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "圧縮" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Compactação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "压缩" + } + } + } + }, + "Config Diagnostics": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Konfigurations-Diagnose" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Diagnóstico de configuración" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Diagnostics de configuration" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "設定診断" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Diagnóstico de configuração" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "配置诊断" + } + } + } + }, "Configure": { "localizations": { "de": { @@ -4422,6 +5103,86 @@ } } }, + "Container Limits": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Container-Limits" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Límites del contenedor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Limites du conteneur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コンテナ制限" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Limites do contêiner" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "容器限制" + } + } + } + }, + "Context & Compression": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Kontext & Komprimierung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Contexto y compresión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Contexte et compression" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "コンテキストと圧縮" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Contexto e compactação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "上下文与压缩" + } + } + } + }, "Continue Last Session": { "localizations": { "de": { @@ -5382,6 +6143,46 @@ } } }, + "Daemon Endpoint": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Daemon-Endpunkt" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Endpoint del demonio" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Endpoint du démon" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "デーモンエンドポイント" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Endpoint do daemon" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "守护进程端点" + } + } + } + }, "Daemon running": { "localizations": { "de": { @@ -5462,6 +6263,7 @@ } } }, + "Daytona": {}, "Default": { "localizations": { "de": { @@ -5582,6 +6384,86 @@ } } }, + "Defined Personalities": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Definierte Persönlichkeiten" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Personalidades definidas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Personnalités définies" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "定義済みパーソナリティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Personalidades definidas" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "已定义人格" + } + } + } + }, + "Delegation": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Delegation" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Delegación" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Délégation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "委譲" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Delegação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "委派" + } + } + } + }, "Delete": { "localizations": { "de": { @@ -5822,6 +6704,46 @@ } } }, + "Details": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Details" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Detalles" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Détails" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "詳細" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Detalhes" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "详情" + } + } + } + }, "Diagnostic Output": { "localizations": { "de": { @@ -5983,6 +6905,47 @@ } }, "Discord Setup Docs": {}, + "Display": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Anzeige" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pantalla" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Affichage" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "表示" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Exibição" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "显示" + } + } + } + }, + "Docker": {}, "Docs": { "localizations": { "de": { @@ -6504,6 +7467,86 @@ } } }, + "End-to-End Encryption (experimental)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ende-zu-Ende-Verschlüsselung (experimentell)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Cifrado de extremo a extremo (experimental)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chiffrement de bout en bout (expérimental)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エンドツーエンド暗号化(実験的)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Criptografia ponta a ponta (experimental)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "端到端加密(实验性)" + } + } + } + }, + "Entity Filters (config.yaml only)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Entity-Filter (nur config.yaml)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtros de entidades (solo config.yaml)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtres d'entités (config.yaml uniquement)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "エンティティフィルタ(config.yaml のみ)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtros de entidade (somente config.yaml)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "实体过滤器(仅限 config.yaml)" + } + } + } + }, "Env vars, headers, and tool filters can be edited after the server is added.": { "localizations": { "de": { @@ -6664,6 +7707,46 @@ } } }, + "Event Filters": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Ereignisfilter" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Filtros de eventos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Filtres d'événements" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "イベントフィルタ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Filtros de eventos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "事件过滤器" + } + } + } + }, "Exclude": { "localizations": { "de": { @@ -6984,6 +8067,86 @@ } } }, + "External Provider": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Externer Anbieter" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Proveedor externo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fournisseur externe" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "外部プロバイダー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Provedor externo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "外部提供方" + } + } + } + }, + "Feedback": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Feedback" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Comentarios" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Retour" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "フィードバック" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Feedback" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "反馈" + } + } + } + }, "Feishu Setup Docs": {}, "Fetch": { "localizations": { @@ -7225,6 +8388,46 @@ } } }, + "Flush Memories": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Speicher leeren" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Vaciar memorias" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vider les mémoires" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "メモリをフラッシュ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Limpar memórias" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "清空记忆" + } + } + } + }, "Focus topic (optional)": { "localizations": { "de": { @@ -7465,6 +8668,86 @@ } } }, + "General": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Allgemein" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "General" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Général" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "一般" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Geral" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "常规" + } + } + } + }, + "Global Settings": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Globale Einstellungen" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Ajustes globales" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Paramètres globaux" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "グローバル設定" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Configurações globais" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "全局设置" + } + } + } + }, "Header": { "localizations": { "de": { @@ -7907,6 +9190,86 @@ } }, "Home Assistant Docs": {}, + "Home Channel": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Home-Kanal" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Canal principal" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Canal principal" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ホームチャンネル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Canal principal" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "主频道" + } + } + } + }, + "Homeserver": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Homeserver" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Homeserver" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Homeserver" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ホームサーバー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Homeserver" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "主服务器" + } + } + } + }, "Host key changed": { "localizations": { "de": { @@ -7947,6 +9310,46 @@ } } }, + "Human Delay": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Menschliche Verzögerung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Retraso humano" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Délai humain" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ヒューマンディレイ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Atraso humano" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "人类延迟" + } + } + } + }, "ID: %@": { "localizations": { "de": { @@ -8788,6 +10191,46 @@ } } }, + "Layout": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Layout" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Diseño" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Mise en page" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "レイアウト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Layout" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "布局" + } + } + } + }, "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": { "localizations": { "de": { @@ -9188,6 +10631,46 @@ } } }, + "Locale": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sprache & Region" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Configuración regional" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Locale" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ロケール" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Localidade" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "区域" + } + } + } + }, "Log File": { "localizations": { "de": { @@ -9228,6 +10711,46 @@ } } }, + "Logging": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Logging" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Registro" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Journalisation" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ログ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Registro" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "日志" + } + } + } + }, "Logs": { "localizations": { "de": { @@ -9268,6 +10791,7 @@ } } }, + "MCP": {}, "MCP Servers": { "localizations": { "de": { @@ -9750,6 +11274,86 @@ } } }, + "Modal": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Modal" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Modal" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modale" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モーダル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Modal" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "模态" + } + } + } + }, + "Model": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Modell" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Modelo" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Modèle" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "モデル" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Modelo" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "模型" + } + } + } + }, "Model ID": { "localizations": { "de": { @@ -9950,6 +11554,46 @@ } } }, + "Network": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Netzwerk" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Red" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Réseau" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ネットワーク" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Rede" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "网络" + } + } + } + }, "New Session": { "localizations": { "de": { @@ -11432,7 +13076,46 @@ } } }, - "OK": {}, + "OK": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "OK" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Aceptar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "OK" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "OK" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "OK" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "确定" + } + } + } + }, "Open BotFather": { "localizations": { "de": { @@ -11873,6 +13556,46 @@ } } }, + "Optional": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Optional" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Opcional" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Optionnel" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "任意" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Opcional" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "可选" + } + } + } + }, "Optional — defaults to hostname": { "localizations": { "de": { @@ -12273,6 +13996,46 @@ } } }, + "Paths": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Pfade" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Rutas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Chemins" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "パス" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Caminhos" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "路径" + } + } + } + }, "Pause": { "localizations": { "de": { @@ -12473,6 +14236,46 @@ } } }, + "Personality": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Persönlichkeit" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Personalidad" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Personnalité" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "パーソナリティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Personalidade" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "人格" + } + } + } + }, "Pick an MCP server to add.": { "localizations": { "de": { @@ -13193,6 +14996,46 @@ } } }, + "Push-to-Talk": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Push-to-Talk" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Pulsar para hablar" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Push-to-Talk" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "プッシュ・トゥ・トーク" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Pressionar para falar" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "按住说话" + } + } + } + }, "Quick Commands": { "localizations": { "de": { @@ -13633,6 +15476,46 @@ } } }, + "Redaction": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Redaktion" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Censura" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Rédaction" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "秘匿化" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Redação" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "脱敏" + } + } + } + }, "Refresh": { "localizations": { "de": { @@ -14233,6 +16116,86 @@ } } }, + "Required": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erforderlich" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Obligatorio" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Requis" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "必須" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Obrigatório" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "必需" + } + } + } + }, + "Required Tokens": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Erforderliche Tokens" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Tokens requeridos" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Jetons requis" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "必須トークン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Tokens obrigatórios" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "必需令牌" + } + } + } + }, "Requires: %@": { "localizations": { "de": { @@ -15756,6 +17719,46 @@ } } }, + "Security": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sicherheit" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seguridad" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sécurité" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セキュリティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Segurança" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "安全" + } + } + } + }, "Select": { "localizations": { "de": { @@ -16196,6 +18199,46 @@ } } }, + "Server": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Server" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Servidor" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Serveur" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "サーバー" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Servidor" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "服务器" + } + } + } + }, "Server No Longer Exists": { "localizations": { "de": { @@ -16436,6 +18479,46 @@ } } }, + "Session Search": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Sitzungssuche" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Búsqueda de sesiones" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Recherche de sessions" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "セッション検索" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Busca de sessões" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "会话搜索" + } + } + } + }, "Session title": { "localizations": { "de": { @@ -16957,6 +19040,7 @@ } } }, + "Singularity": {}, "Site": { "localizations": { "de": { @@ -17077,6 +19161,46 @@ } } }, + "Skills Hub": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Skills-Hub" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Hub de habilidades" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Skills Hub" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "スキルハブ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Hub de habilidades" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "技能 Hub" + } + } + } + }, "Slack Setup Docs": {}, "Source": { "localizations": { @@ -17118,6 +19242,46 @@ } } }, + "Speech-to-Text": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Spracherkennung" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Voz a texto" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Reconnaissance vocale" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "音声認識" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voz para texto" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "语音转文字" + } + } + } + }, "Start": { "localizations": { "de": { @@ -18079,6 +20243,46 @@ } } }, + "Text-to-Speech": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Text-to-Speech" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Texto a voz" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Synthèse vocale" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "音声合成" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Texto para voz" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "文字转语音" + } + } + } + }, "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": { "localizations": { "de": { @@ -18725,6 +20929,46 @@ } } }, + "Tirith Sandbox": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Tirith-Sandbox" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Sandbox Tirith" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Bac à sable Tirith" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Tirith サンドボックス" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Sandbox Tirith" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Tirith 沙箱" + } + } + } + }, "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": { "localizations": { "de": { @@ -18965,6 +21209,46 @@ } } }, + "Tool Progress": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Tool-Fortschritt" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Progreso de herramientas" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Progression des outils" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ツールの進捗" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Progresso da ferramenta" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "工具进度" + } + } + } + }, "Tools": { "localizations": { "de": { @@ -19045,6 +21329,46 @@ } } }, + "Turns & Reasoning": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Turns & Reasoning" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Turnos y razonamiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Tours et raisonnement" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ターンと推論" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Turnos e raciocínio" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "轮次与推理" + } + } + } + }, "URL": {}, "Uninstall": { "localizations": { @@ -19686,6 +22010,86 @@ } } }, + "Vision": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Vision" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Visión" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Vision" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ビジョン" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Visão" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "视觉" + } + } + } + }, + "Voice": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Stimme" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Voz" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Voix" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "音声" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Voz" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "语音" + } + } + } + }, "Voice Off": { "localizations": { "de": { @@ -19886,6 +22290,166 @@ } } }, + "Web Extract": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Web-Extraktion" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Extracción web" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Extraction Web" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Web 抽出" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Extração da Web" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "网页提取" + } + } + } + }, + "Webhook (advanced)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhook (erweitert)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Webhook (avanzado)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Webhook (avancé)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook(詳細)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Webhook (avançado)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Webhook(高级)" + } + } + } + }, + "Webhook (hermes side)": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhook (hermes-Seite)" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Webhook (lado hermes)" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Webhook (côté hermes)" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook(hermes 側)" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Webhook (lado hermes)" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Webhook(hermes 侧)" + } + } + } + }, + "Webhook Security": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Webhook-Sicherheit" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Seguridad de webhook" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Sécurité webhook" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "Webhook セキュリティ" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Segurança de webhook" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "Webhook 安全" + } + } + } + }, "Webhook Setup Docs": {}, "Webhook platform not enabled": { "localizations": { @@ -20007,6 +22571,46 @@ } } }, + "Website Blocklist": { + "localizations": { + "de": { + "stringUnit": { + "state": "translated", + "value": "Website-Blockliste" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Lista de bloqueo de sitios" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Liste de blocage de sites" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ウェブサイトブロックリスト" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Lista de bloqueio de sites" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "网站黑名单" + } + } + } + }, "WhatsApp Setup Docs": {}, "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": { "localizations": { diff --git a/scarf/scarf/Navigation/AppCoordinator.swift b/scarf/scarf/Navigation/AppCoordinator.swift index 29dd911..1259802 100644 --- a/scarf/scarf/Navigation/AppCoordinator.swift +++ b/scarf/scarf/Navigation/AppCoordinator.swift @@ -31,6 +31,33 @@ enum SidebarSection: String, CaseIterable, Identifiable { var id: String { rawValue } + var displayName: LocalizedStringResource { + switch self { + case .dashboard: return "Dashboard" + case .insights: return "Insights" + case .sessions: return "Sessions" + case .activity: return "Activity" + case .projects: return "Projects" + case .chat: return "Chat" + case .memory: return "Memory" + case .skills: return "Skills" + case .platforms: return "Platforms" + case .personalities: return "Personalities" + case .quickCommands: return "Quick Commands" + case .credentialPools: return "Credential Pools" + case .plugins: return "Plugins" + case .webhooks: return "Webhooks" + case .profiles: return "Profiles" + case .tools: return "Tools" + case .mcpServers: return "MCP Servers" + case .gateway: return "Gateway" + case .cron: return "Cron" + case .health: return "Health" + case .logs: return "Logs" + case .settings: return "Settings" + } + } + var icon: String { switch self { case .dashboard: return "gauge.with.dots.needle.33percent" diff --git a/scarf/scarf/Navigation/SidebarView.swift b/scarf/scarf/Navigation/SidebarView.swift index d196cf9..dc62d73 100644 --- a/scarf/scarf/Navigation/SidebarView.swift +++ b/scarf/scarf/Navigation/SidebarView.swift @@ -8,32 +8,52 @@ struct SidebarView: View { List(selection: $coordinator.selectedSection) { Section("Monitor") { ForEach([SidebarSection.dashboard, .insights, .sessions, .activity]) { section in - Label(section.rawValue, systemImage: section.icon) - .tag(section) + Label { + Text(section.displayName) + } icon: { + Image(systemName: section.icon) + } + .tag(section) } } Section("Projects") { ForEach([SidebarSection.projects]) { section in - Label(section.rawValue, systemImage: section.icon) - .tag(section) + Label { + Text(section.displayName) + } icon: { + Image(systemName: section.icon) + } + .tag(section) } } Section("Interact") { ForEach([SidebarSection.chat, .memory, .skills]) { section in - Label(section.rawValue, systemImage: section.icon) - .tag(section) + Label { + Text(section.displayName) + } icon: { + Image(systemName: section.icon) + } + .tag(section) } } Section("Configure") { ForEach([SidebarSection.platforms, .personalities, .quickCommands, .credentialPools, .plugins, .webhooks, .profiles]) { section in - Label(section.rawValue, systemImage: section.icon) - .tag(section) + Label { + Text(section.displayName) + } icon: { + Image(systemName: section.icon) + } + .tag(section) } } Section("Manage") { ForEach([SidebarSection.tools, .mcpServers, .gateway, .cron, .health, .logs, .settings]) { section in - Label(section.rawValue, systemImage: section.icon) - .tag(section) + Label { + Text(section.displayName) + } icon: { + Image(systemName: section.icon) + } + .tag(section) } } } diff --git a/tools/translations/de.json b/tools/translations/de.json index 4bb14fe..bb25d9f 100644 --- a/tools/translations/de.json +++ b/tools/translations/de.json @@ -20,11 +20,14 @@ "%lld tools": "%lld Tools", "30 Days": "30 Tage", "7 Days": "7 Tage", + "90 Days": "90 Tage", "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Unten erscheint ein QR-Code. Scanne ihn mit WhatsApp auf deinem Telefon. Die Sitzung wird unter ~/.hermes/platforms/whatsapp/ gespeichert, damit nach Neustarts kein erneuter Scan nötig ist.", "API Key": "API-Schlüssel", "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "API-Schlüssel werden nie vollständig angezeigt. Scarf zeigt nur die letzten 4 Zeichen zur Identifikation. Die vollständigen Werte speichert hermes in ~/.hermes/auth.json.", + "Access Control": "Zugriffskontrolle", "Actions": "Aktionen", "Active": "Aktiv", + "Active Personality": "Aktive Persönlichkeit", "Active profile": "Aktives Profil", "Activity": "Aktivität", "Activity Patterns": "Aktivitätsmuster", @@ -42,6 +45,7 @@ "Add from Preset": "Aus Voreinstellung hinzufügen", "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Rotations-Anmeldedaten hinzufügen, damit hermes zwischen Schlüsseln wechseln kann, wenn einer ein Rate-Limit erreicht.", "Add your first command": "Füge deinen ersten Befehl hinzu", + "Advanced": "Erweitert", "After approving in your browser, the provider shows a code. Paste it below and submit.": "Nach der Genehmigung im Browser zeigt der Anbieter einen Code. Füge ihn unten ein und sende ab.", "Agent": "Agent", "All": "Alle", @@ -49,25 +53,34 @@ "All Sessions": "Alle Sitzungen", "All Time": "Gesamter Zeitraum", "All installed hub skills are up to date.": "Alle installierten Hub-Skills sind aktuell.", + "App Credentials": "App-Anmeldedaten", + "Approval": "Genehmigung", + "Approvals": "Genehmigungen", "Approve": "Genehmigen", "Archive": "Archivieren", "Args (one per line)": "Argumente (eines pro Zeile)", "Arguments": "Argumente", "Assistant Message": "Assistentennachricht", "Auth": "Auth", + "Authentication": "Authentifizierung", "Authentication uses ssh-agent": "Authentifizierung nutzt ssh-agent", "Authorization Code": "Autorisierungscode", "Authorization URL": "Autorisierungs-URL", + "Aux Models": "Hilfsmodelle", "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Hilfsaufgaben nutzen separate, typischerweise günstigere Modelle. Provider auf `auto` lassen, um den Hauptanbieter zu übernehmen.", "Back": "Zurück", "Back to Catalog": "Zurück zum Katalog", + "Backend": "Backend", + "Backup & Restore": "Sicherung & Wiederherstellung", "Backup Now": "Jetzt sichern", "Becomes the key under mcp_servers: in config.yaml.": "Wird zum Schlüssel unter mcp_servers: in config.yaml.", + "Behavior": "Verhalten", "Browse": "Durchsuchen", "Browse Hub": "Hub durchsuchen", "Browse the Hub": "Hub durchsuchen", "Browse...": "Durchsuchen...", "Browser": "Browser", + "Built-in Memory": "Integrierter Speicher", "By Day": "Nach Tag", "By Hour": "Nach Stunde", "Call timeout": "Aufruf-Timeout", @@ -81,6 +94,7 @@ "Check for Updates": "Nach Updates suchen", "Check for Updates…": "Nach Updates suchen…", "Checking…": "Prüfe…", + "Checkpoints": "Checkpoints", "Choose a cron job from the list": "Wähle einen Cron-Job aus der Liste", "Choose a profile to inspect.": "Wähle ein Profil zur Ansicht.", "Choose a project from the sidebar to view its dashboard.": "Wähle ein Projekt aus der Seitenleiste, um sein Dashboard zu sehen.", @@ -98,16 +112,21 @@ "Close Window": "Fenster schließen", "Code: %@": "Code: %@", "Command": "Befehl", + "Command Allowlist": "Befehls-Allowlist", "Command looks destructive. Double-check before saving.": "Der Befehl wirkt destruktiv. Vor dem Speichern noch einmal prüfen.", "Component": "Komponente", "Compress": "Komprimieren", "Compress Conversation": "Unterhaltung komprimieren", "Compress conversation (/compress)": "Unterhaltung komprimieren (/compress)", + "Compression": "Komprimierung", + "Config Diagnostics": "Konfigurations-Diagnose", "Configure": "Konfigurieren", "Connect timeout": "Verbindungs-Timeout", "Connected": "Verbunden", "Connected — can't read Hermes state": "Verbunden — Hermes-Status nicht lesbar", "Connection": "Verbindung", + "Container Limits": "Container-Limits", + "Context & Compression": "Kontext & Komprimierung", "Continue Last Session": "Letzte Sitzung fortsetzen", "Copied": "Kopiert", "Copy": "Kopieren", @@ -132,21 +151,26 @@ "Cron Jobs": "Cron-Jobs", "Current: %@": "Aktuell: %@", "Custom…": "Benutzerdefiniert…", + "Daemon Endpoint": "Daemon-Endpunkt", "Daemon running": "Daemon läuft", "Dashboard": "Dashboard", "Default": "Standard", "Default: ~/.hermes": "Standard: ~/.hermes", "Defaults to ~/.ssh/config or current user": "Standard ist ~/.ssh/config oder der aktuelle Benutzer", + "Defined Personalities": "Definierte Persönlichkeiten", + "Delegation": "Delegation", "Delete": "Löschen", "Delete %@?": "%@ löschen?", "Delete Session?": "Sitzung löschen?", "Delete profile '%@'?": "Profil '%@' löschen?", "Delete...": "Löschen...", "Deliver: %@": "Zustellen: %@", + "Details": "Details", "Diagnostic Output": "Diagnose-Ausgabe", "Diagnostics": "Diagnose", "Disable": "Deaktivieren", "Disabled": "Deaktiviert", + "Display": "Anzeige", "Docs": "Dokumentation", "Done": "Fertig", "Edit": "Bearbeiten", @@ -160,10 +184,13 @@ "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Aktiviere 2FA für dein E-Mail-Konto und erzeuge ein App-Passwort. Normale Kontopasswörter funktionieren nicht. Setze immer erlaubte Absender — sonst kann jeder, der die Adresse kennt, dem Agent Nachrichten schicken.", "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Aktiviere die Webhook-Plattform, um ereignisgesteuerte Agent-Trigger zu akzeptieren. Das HMAC-Secret dient als Fallback, wenn einzelne Routen keines liefern.", "Enabled": "Aktiviert", + "End-to-End Encryption (experimental)": "Ende-zu-Ende-Verschlüsselung (experimentell)", + "Entity Filters (config.yaml only)": "Entity-Filter (nur config.yaml)", "Env vars, headers, and tool filters can be edited after the server is added.": "Umgebungsvariablen, Header und Tool-Filter können nach dem Hinzufügen des Servers bearbeitet werden.", "Environment Variables": "Umgebungsvariablen", "Error": "Fehler", "Errors": "Fehler", + "Event Filters": "Ereignisfilter", "Exclude": "Ausschließen", "Execute": "Ausführen", "Expected at %@": "Erwartet unter %@", @@ -172,18 +199,23 @@ "Export…": "Exportieren…", "Expose prompts": "Prompts verfügbar machen", "Expose resources": "Ressourcen verfügbar machen", + "External Provider": "Externer Anbieter", + "Feedback": "Feedback", "Fetch": "Abrufen", "Files": "Dateien", "Filter logs...": "Logs filtern...", "Filter servers...": "Server filtern...", "Filter skills...": "Skills filtern...", "Filter to session %@": "Auf Sitzung %@ filtern", + "Flush Memories": "Speicher leeren", "Focus topic (optional)": "Fokusthema (optional)", "Full copy of active profile (all state)": "Vollständige Kopie des aktiven Profils (gesamter Zustand)", "Gateway": "Gateway", "Gateway Running": "Gateway läuft", "Gateway Stopped": "Gateway gestoppt", "Gateway restart required": "Gateway-Neustart erforderlich", + "General": "Allgemein", + "Global Settings": "Globale Einstellungen", "Header": "Header", "Headers": "Header", "Health": "Zustand", @@ -195,7 +227,10 @@ "Hide": "Ausblenden", "Hide Output": "Ausgabe ausblenden", "Hide details": "Details ausblenden", + "Home Channel": "Home-Kanal", + "Homeserver": "Homeserver", "Host key changed": "Host-Schlüssel geändert", + "Human Delay": "Menschliche Verzögerung", "ID: %@": "ID: %@", "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "Wenn dies die erste Verbindung ist, stelle sicher, dass dein Schlüssel mit `ssh-add` geladen wurde und der Remote ihn akzeptiert.", "If you trust the change, remove the stale entry and reconnect:": "Wenn du der Änderung vertraust, entferne den veralteten Eintrag und verbinde dich erneut:", @@ -217,6 +252,7 @@ "Last probe: %@": "Letzte Prüfung: %@", "Last run: %@": "Letzter Lauf: %@", "Last updated: %@": "Zuletzt aktualisiert: %@", + "Layout": "Layout", "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Leer lassen, um aus dem Präfix der Modell-ID abzuleiten (\"openai/...\" → openai).", "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Leer lassen, außer Hermes liegt nicht am Standardpfad (systemd-Dienste oft unter /var/lib/hermes/.hermes; Docker-Sidecars variieren). Test Connection schlägt automatisch einen Wert vor, wenn es eine bekannte Alternative erkennt.", "Level": "Ebene", @@ -227,7 +263,9 @@ "Loading session…": "Lade Sitzung…", "Local": "Lokal", "Local (stdio)": "Lokal (stdio)", + "Locale": "Sprache & Region", "Log File": "Log-Datei", + "Logging": "Logging", "Logs": "Logs", "MCP Servers": "MCP-Server", "MCP Servers (%lld)": "MCP-Server (%lld)", @@ -241,11 +279,14 @@ "Messages will appear here as the conversation progresses.": "Nachrichten erscheinen hier im Laufe der Unterhaltung.", "Migrate": "Migrieren", "Missing required config:": "Fehlende erforderliche Konfiguration:", + "Modal": "Modal", + "Model": "Modell", "Model ID": "Modell-ID", "Models": "Modelle", "Monitor": "Überwachen", "Name": "Name", "Name (no leading slash)": "Name (ohne führenden Schrägstrich)", + "Network": "Netzwerk", "New Session": "Neue Sitzung", "New Webhook Subscription": "Neues Webhook-Abonnement", "New name for '%@'": "Neuer Name für '%@'", @@ -283,6 +324,7 @@ "None": "Keine", "Notable Sessions": "Bemerkenswerte Sitzungen", "OAuth login for %@": "OAuth-Anmeldung für %@", + "OK": "OK", "Open BotFather": "BotFather öffnen", "Open Developer Portal": "Developer Portal öffnen", "Open Local": "Lokal öffnen", @@ -294,6 +336,7 @@ "Open in Editor": "Im Editor öffnen", "Open in new window": "In neuem Fenster öffnen", "Open session": "Sitzung öffnen", + "Optional": "Optional", "Optional — defaults to hostname": "Optional — Standard ist der Hostname", "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Fokussiere die Zusammenfassung optional auf ein bestimmtes Thema. Leer lassen, um gleichmäßig zu komprimieren.", "Other": "Andere", @@ -304,11 +347,13 @@ "Pair Device": "Gerät koppeln", "Paired Users": "Gekoppelte Nutzer", "Paste code here…": "Code hier einfügen…", + "Paths": "Pfade", "Pause": "Pausieren", "Pending Approvals": "Ausstehende Genehmigungen", "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "Abonnements pro Route (Ereignisse, Prompt-Vorlage, Zustellziel) werden in der Webhooks-Seitenleiste verwaltet — nicht hier. Dieses Panel steuert nur, ob die Webhook-Plattform überhaupt zuhört.", "Period": "Zeitraum", "Personalities": "Persönlichkeiten", + "Personality": "Persönlichkeit", "Pick an MCP server to add.": "Wähle einen MCP-Server zum Hinzufügen.", "Pick one from the list, or add a new server from the toolbar.": "Wähle einen aus der Liste oder füge über die Symbolleiste einen neuen Server hinzu.", "Platforms": "Plattformen", @@ -327,6 +372,7 @@ "Provider": "Anbieter", "Push to Talk": "Push-to-Talk", "Push to talk (Ctrl+B)": "Push-to-Talk (Strg+B)", + "Push-to-Talk": "Push-to-Talk", "Quick Commands": "Schnellbefehle", "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Schnellbefehle sind Shell-Shortcuts, die hermes im Chat als `/command_name` verfügbar macht. Sie stehen unter `quick_commands:` in config.yaml.", "Quit Scarf": "Scarf beenden", @@ -338,6 +384,7 @@ "Recent Sessions": "Letzte Sitzungen", "Reconnect": "Erneut verbinden", "Recording…": "Nehme auf…", + "Redaction": "Redaktion", "Refresh": "Aktualisieren", "Reload": "Neu laden", "Remote (HTTP)": "Remote (HTTP)", @@ -353,6 +400,8 @@ "Rename Profile": "Profil umbenennen", "Rename Session": "Sitzung umbenennen", "Rename...": "Umbenennen...", + "Required": "Erforderlich", + "Required Tokens": "Erforderliche Tokens", "Requires: %@": "Erfordert: %@", "Reset Cooldowns": "Cooldowns zurücksetzen", "Restart": "Neu starten", @@ -391,6 +440,7 @@ "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Durchsuche oder browse Skills, die in Registries wie skills.sh, GitHub und dem offiziellen Hub veröffentlicht sind.", "Search registries": "Registries durchsuchen", "Search…": "Suchen…", + "Security": "Sicherheit", "Select": "Auswählen", "Select Model": "Modell auswählen", "Select a Job": "Job auswählen", @@ -402,12 +452,14 @@ "Select an MCP Server": "MCP-Server auswählen", "Send message (Enter)": "Nachricht senden (Enter)", "Series": "Serie", + "Server": "Server", "Server No Longer Exists": "Server existiert nicht mehr", "Server name": "Servername", "Servers": "Server", "Service": "Dienst", "Service definition stale": "Dienstdefinition veraltet", "Session": "Sitzung", + "Session Search": "Sitzungssuche", "Session title": "Sitzungstitel", "Sessions": "Sitzungen", "Settings": "Einstellungen", @@ -424,7 +476,9 @@ "Site": "Seite", "Skills": "Skills", "Skills (%lld)": "Skills (%lld)", + "Skills Hub": "Skills-Hub", "Source": "Quelle", + "Speech-to-Text": "Spracherkennung", "Start": "Starten", "Start Daemon": "Daemon starten", "Start Hermes": "Hermes starten", @@ -449,6 +503,7 @@ "Test Connection": "Verbindung testen", "Test failed": "Test fehlgeschlagen", "Test passed": "Test bestanden", + "Text-to-Speech": "Text-to-Speech", "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "Der Agent hat bisher keine Slash-Befehle angeboten. Weitertippen, um als Nachricht zu senden, oder Esc drücken.", "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "Der SSH-Fingerabdruck des Remote passt nicht mehr zu dem, was deine `~/.ssh/known_hosts`-Datei erwartet. Meist bedeutet das, dass der Remote neu installiert wurde — seltener, dass jemand die Verbindung abfängt.", "The server this window was opened with has been removed from your registry.": "Der Server, mit dem dieses Fenster geöffnet wurde, wurde aus deiner Registrierung entfernt.", @@ -465,14 +520,17 @@ "This will permanently delete the session and all its messages.": "Damit werden die Sitzung und alle ihre Nachrichten dauerhaft gelöscht.", "Timeout: %llds (%@)": "Timeout: %1$lld s (%2$@)", "Timeouts": "Timeouts", + "Tirith Sandbox": "Tirith-Sandbox", "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Um die Passphrase-Abfrage bei jedem Neustart zu überspringen, füge `--apple-use-keychain` hinzu, um sie im macOS-Schlüsselbund zu cachen.", "Toggle text-to-speech (/voice tts)": "Text-to-Speech umschalten (/voice tts)", "Toggle voice mode (/voice)": "Sprachmodus umschalten (/voice)", "Token on disk. Clear to re-authenticate next time the gateway connects.": "Token auf der Festplatte. Löschen, damit sich das Gateway beim nächsten Verbinden neu authentifiziert.", "Tool Approval Required": "Tool-Genehmigung erforderlich", "Tool Filters": "Tool-Filter", + "Tool Progress": "Tool-Fortschritt", "Tools": "Tools", "Top Tools": "Top-Tools", + "Turns & Reasoning": "Turns & Reasoning", "Uninstall": "Deinstallieren", "Unknown: %@": "Unbekannt: %@", "Update": "Aktualisieren", @@ -489,14 +547,21 @@ "Used as the YAML key. Lowercase, no spaces.": "Wird als YAML-Schlüssel verwendet. Kleinbuchstaben, keine Leerzeichen.", "View": "Anzeigen", "View All": "Alle anzeigen", + "Vision": "Vision", + "Voice": "Stimme", "Voice Off": "Stimme aus", "Voice On": "Stimme an", "Waiting for authorization URL…": "Warte auf Autorisierungs-URL…", "Waiting for first probe": "Warte auf erste Prüfung", "Waiting for hermes to prompt for the code…": "Warte, bis hermes nach dem Code fragt…", + "Web Extract": "Web-Extraktion", + "Webhook (advanced)": "Webhook (erweitert)", + "Webhook (hermes side)": "Webhook (hermes-Seite)", + "Webhook Security": "Webhook-Sicherheit", "Webhook platform not enabled": "Webhook-Plattform nicht aktiviert", "Webhooks": "Webhooks", "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhooks ermöglichen externen Diensten, Agent-Antworten auszulösen. Jedes Abonnement hat seinen eigenen URL-Endpunkt.", + "Website Blocklist": "Website-Blockliste", "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp nutzt die Baileys-Bibliothek, um eine WhatsApp-Web-Sitzung zu emulieren. Kopple diesen Mac als verknüpftes Gerät, indem du den Kopplungsassistenten ausführst und den QR-Code mit deinem Telefon scannst (Einstellungen → Verknüpfte Geräte → Gerät verknüpfen).", "Working": "In Arbeit", "e.g. anthropic": "z. B. anthropic", diff --git a/tools/translations/es.json b/tools/translations/es.json index 9da374a..c9bdc82 100644 --- a/tools/translations/es.json +++ b/tools/translations/es.json @@ -20,11 +20,14 @@ "%lld tools": "%lld herramientas", "30 Days": "30 días", "7 Days": "7 días", + "90 Days": "90 días", "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Aparecerá un código QR abajo. Escanéalo con WhatsApp en tu teléfono. La sesión se guarda en ~/.hermes/platforms/whatsapp/ para no tener que volver a escanearla tras reiniciar.", "API Key": "Clave de API", "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "Las claves de API nunca se muestran completas. Scarf solo muestra los últimos 4 caracteres para identificación. Los valores completos los guarda hermes en ~/.hermes/auth.json.", + "Access Control": "Control de acceso", "Actions": "Acciones", "Active": "Activo", + "Active Personality": "Personalidad activa", "Active profile": "Perfil activo", "Activity": "Actividad", "Activity Patterns": "Patrones de actividad", @@ -42,6 +45,7 @@ "Add from Preset": "Añadir desde preajuste", "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Añade credenciales de rotación para que hermes pueda cambiar entre claves cuando una alcance el límite de tasa.", "Add your first command": "Añade tu primer comando", + "Advanced": "Avanzado", "After approving in your browser, the provider shows a code. Paste it below and submit.": "Tras aprobar en tu navegador, el proveedor muestra un código. Pégalo abajo y envíalo.", "Agent": "Agent", "All": "Todos", @@ -49,25 +53,34 @@ "All Sessions": "Todas las sesiones", "All Time": "Todo el tiempo", "All installed hub skills are up to date.": "Todas las habilidades instaladas desde el hub están al día.", + "App Credentials": "Credenciales de la aplicación", + "Approval": "Aprobación", + "Approvals": "Aprobaciones", "Approve": "Aprobar", "Archive": "Archivar", "Args (one per line)": "Argumentos (uno por línea)", "Arguments": "Argumentos", "Assistant Message": "Mensaje del asistente", "Auth": "Auth", + "Authentication": "Autenticación", "Authentication uses ssh-agent": "La autenticación usa ssh-agent", "Authorization Code": "Código de autorización", "Authorization URL": "URL de autorización", + "Aux Models": "Modelos auxiliares", "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Las tareas auxiliares usan modelos separados, normalmente más baratos. Deja Proveedor en `auto` para heredar el proveedor principal.", "Back": "Atrás", "Back to Catalog": "Volver al catálogo", + "Backend": "Backend", + "Backup & Restore": "Copia de seguridad y restauración", "Backup Now": "Copia de seguridad ahora", "Becomes the key under mcp_servers: in config.yaml.": "Se convierte en la clave bajo mcp_servers: en config.yaml.", + "Behavior": "Comportamiento", "Browse": "Examinar", "Browse Hub": "Examinar el hub", "Browse the Hub": "Examinar el hub", "Browse...": "Examinar...", "Browser": "Navegador", + "Built-in Memory": "Memoria integrada", "By Day": "Por día", "By Hour": "Por hora", "Call timeout": "Tiempo de espera de llamada", @@ -81,6 +94,7 @@ "Check for Updates": "Buscar actualizaciones", "Check for Updates…": "Buscar actualizaciones…", "Checking…": "Comprobando…", + "Checkpoints": "Puntos de control", "Choose a cron job from the list": "Elige una tarea cron de la lista", "Choose a profile to inspect.": "Elige un perfil para inspeccionar.", "Choose a project from the sidebar to view its dashboard.": "Elige un proyecto en la barra lateral para ver su panel.", @@ -98,16 +112,21 @@ "Close Window": "Cerrar ventana", "Code: %@": "Código: %@", "Command": "Comando", + "Command Allowlist": "Lista de comandos permitidos", "Command looks destructive. Double-check before saving.": "El comando parece destructivo. Revísalo antes de guardar.", "Component": "Componente", "Compress": "Comprimir", "Compress Conversation": "Comprimir conversación", "Compress conversation (/compress)": "Comprimir conversación (/compress)", + "Compression": "Compresión", + "Config Diagnostics": "Diagnóstico de configuración", "Configure": "Configurar", "Connect timeout": "Tiempo de espera de conexión", "Connected": "Conectado", "Connected — can't read Hermes state": "Conectado — no se puede leer el estado de Hermes", "Connection": "Conexión", + "Container Limits": "Límites del contenedor", + "Context & Compression": "Contexto y compresión", "Continue Last Session": "Continuar última sesión", "Copied": "Copiado", "Copy": "Copiar", @@ -132,21 +151,26 @@ "Cron Jobs": "Tareas cron", "Current: %@": "Actual: %@", "Custom…": "Personalizado…", + "Daemon Endpoint": "Endpoint del demonio", "Daemon running": "Demonio en ejecución", "Dashboard": "Panel", "Default": "Predeterminado", "Default: ~/.hermes": "Predeterminado: ~/.hermes", "Defaults to ~/.ssh/config or current user": "Por defecto ~/.ssh/config o el usuario actual", + "Defined Personalities": "Personalidades definidas", + "Delegation": "Delegación", "Delete": "Eliminar", "Delete %@?": "¿Eliminar %@?", "Delete Session?": "¿Eliminar sesión?", "Delete profile '%@'?": "¿Eliminar perfil '%@'?", "Delete...": "Eliminar...", "Deliver: %@": "Entregar: %@", + "Details": "Detalles", "Diagnostic Output": "Salida de diagnóstico", "Diagnostics": "Diagnósticos", "Disable": "Desactivar", "Disabled": "Desactivado", + "Display": "Pantalla", "Docs": "Docs", "Done": "Listo", "Edit": "Editar", @@ -160,10 +184,13 @@ "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Activa 2FA en tu cuenta de correo y genera una contraseña de aplicación. Las contraseñas normales no funcionarán. Establece siempre remitentes permitidos — de lo contrario, cualquiera que conozca la dirección podrá enviar mensajes al agente.", "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Activa la plataforma de webhooks para aceptar disparadores de agente dirigidos por eventos. El secreto HMAC se usa como respaldo cuando las rutas individuales no aportan el suyo.", "Enabled": "Activado", + "End-to-End Encryption (experimental)": "Cifrado de extremo a extremo (experimental)", + "Entity Filters (config.yaml only)": "Filtros de entidades (solo config.yaml)", "Env vars, headers, and tool filters can be edited after the server is added.": "Las variables de entorno, cabeceras y filtros de herramientas se pueden editar después de añadir el servidor.", "Environment Variables": "Variables de entorno", "Error": "Error", "Errors": "Errores", + "Event Filters": "Filtros de eventos", "Exclude": "Excluir", "Execute": "Ejecutar", "Expected at %@": "Esperado en %@", @@ -172,18 +199,23 @@ "Export…": "Exportar…", "Expose prompts": "Exponer prompts", "Expose resources": "Exponer recursos", + "External Provider": "Proveedor externo", + "Feedback": "Comentarios", "Fetch": "Obtener", "Files": "Archivos", "Filter logs...": "Filtrar registros...", "Filter servers...": "Filtrar servidores...", "Filter skills...": "Filtrar habilidades...", "Filter to session %@": "Filtrar a la sesión %@", + "Flush Memories": "Vaciar memorias", "Focus topic (optional)": "Tema de enfoque (opcional)", "Full copy of active profile (all state)": "Copia completa del perfil activo (todo el estado)", "Gateway": "Gateway", "Gateway Running": "Gateway en ejecución", "Gateway Stopped": "Gateway detenido", "Gateway restart required": "Se requiere reiniciar el gateway", + "General": "General", + "Global Settings": "Ajustes globales", "Header": "Cabecera", "Headers": "Cabeceras", "Health": "Salud", @@ -195,7 +227,10 @@ "Hide": "Ocultar", "Hide Output": "Ocultar salida", "Hide details": "Ocultar detalles", + "Home Channel": "Canal principal", + "Homeserver": "Homeserver", "Host key changed": "Clave de host cambiada", + "Human Delay": "Retraso humano", "ID: %@": "ID: %@", "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "Si es la primera conexión, asegúrate de que tu clave esté cargada con `ssh-add` y de que el remoto la acepte.", "If you trust the change, remove the stale entry and reconnect:": "Si confías en el cambio, elimina la entrada obsoleta y reconéctate:", @@ -217,6 +252,7 @@ "Last probe: %@": "Última comprobación: %@", "Last run: %@": "Última ejecución: %@", "Last updated: %@": "Última actualización: %@", + "Layout": "Diseño", "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Déjalo vacío para deducirlo del prefijo del ID del modelo (\"openai/...\" → openai).", "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Déjalo vacío salvo que Hermes esté instalado en una ruta no predeterminada (los servicios systemd suelen estar en /var/lib/hermes/.hermes; los sidecars Docker varían). Probar conexión sugiere un valor automáticamente si detecta una alternativa conocida.", "Level": "Nivel", @@ -227,7 +263,9 @@ "Loading session…": "Cargando sesión…", "Local": "Local", "Local (stdio)": "Local (stdio)", + "Locale": "Configuración regional", "Log File": "Archivo de registro", + "Logging": "Registro", "Logs": "Registros", "MCP Servers": "Servidores MCP", "MCP Servers (%lld)": "Servidores MCP (%lld)", @@ -241,11 +279,14 @@ "Messages will appear here as the conversation progresses.": "Los mensajes aparecerán aquí a medida que avance la conversación.", "Migrate": "Migrar", "Missing required config:": "Falta configuración requerida:", + "Modal": "Modal", + "Model": "Modelo", "Model ID": "ID del modelo", "Models": "Modelos", "Monitor": "Monitor", "Name": "Nombre", "Name (no leading slash)": "Nombre (sin barra inicial)", + "Network": "Red", "New Session": "Nueva sesión", "New Webhook Subscription": "Nueva suscripción de webhook", "New name for '%@'": "Nuevo nombre para '%@'", @@ -283,6 +324,7 @@ "None": "Ninguno", "Notable Sessions": "Sesiones destacadas", "OAuth login for %@": "Inicio de sesión OAuth para %@", + "OK": "Aceptar", "Open BotFather": "Abrir BotFather", "Open Developer Portal": "Abrir Developer Portal", "Open Local": "Abrir local", @@ -294,6 +336,7 @@ "Open in Editor": "Abrir en el editor", "Open in new window": "Abrir en nueva ventana", "Open session": "Abrir sesión", + "Optional": "Opcional", "Optional — defaults to hostname": "Opcional — por defecto el nombre de host", "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Opcionalmente, enfoca el resumen en un tema específico. Déjalo vacío para comprimir uniformemente.", "Other": "Otro", @@ -304,11 +347,13 @@ "Pair Device": "Emparejar dispositivo", "Paired Users": "Usuarios emparejados", "Paste code here…": "Pega el código aquí…", + "Paths": "Rutas", "Pause": "Pausar", "Pending Approvals": "Aprobaciones pendientes", "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "Las suscripciones por ruta (eventos, plantilla de prompt, destino de entrega) se gestionan en la barra lateral de Webhooks — no aquí. Este panel solo controla si la plataforma de webhooks está escuchando.", "Period": "Período", "Personalities": "Personalidades", + "Personality": "Personalidad", "Pick an MCP server to add.": "Elige un servidor MCP para añadir.", "Pick one from the list, or add a new server from the toolbar.": "Elige uno de la lista o añade un nuevo servidor desde la barra de herramientas.", "Platforms": "Plataformas", @@ -327,6 +372,7 @@ "Provider": "Proveedor", "Push to Talk": "Pulsar para hablar", "Push to talk (Ctrl+B)": "Pulsar para hablar (Ctrl+B)", + "Push-to-Talk": "Pulsar para hablar", "Quick Commands": "Comandos rápidos", "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Los comandos rápidos son atajos de shell que hermes expone en el chat como `/command_name`. Viven bajo `quick_commands:` en config.yaml.", "Quit Scarf": "Salir de Scarf", @@ -338,6 +384,7 @@ "Recent Sessions": "Sesiones recientes", "Reconnect": "Reconectar", "Recording…": "Grabando…", + "Redaction": "Censura", "Refresh": "Actualizar", "Reload": "Recargar", "Remote (HTTP)": "Remoto (HTTP)", @@ -353,6 +400,8 @@ "Rename Profile": "Renombrar perfil", "Rename Session": "Renombrar sesión", "Rename...": "Renombrar...", + "Required": "Obligatorio", + "Required Tokens": "Tokens requeridos", "Requires: %@": "Requiere: %@", "Reset Cooldowns": "Restablecer enfriamientos", "Restart": "Reiniciar", @@ -391,6 +440,7 @@ "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Busca o examina habilidades publicadas en registros como skills.sh, GitHub y el hub oficial.", "Search registries": "Buscar en registros", "Search…": "Buscar…", + "Security": "Seguridad", "Select": "Seleccionar", "Select Model": "Seleccionar modelo", "Select a Job": "Seleccionar una tarea", @@ -402,12 +452,14 @@ "Select an MCP Server": "Seleccionar un servidor MCP", "Send message (Enter)": "Enviar mensaje (Intro)", "Series": "Serie", + "Server": "Servidor", "Server No Longer Exists": "El servidor ya no existe", "Server name": "Nombre del servidor", "Servers": "Servidores", "Service": "Servicio", "Service definition stale": "Definición de servicio obsoleta", "Session": "Sesión", + "Session Search": "Búsqueda de sesiones", "Session title": "Título de sesión", "Sessions": "Sesiones", "Settings": "Ajustes", @@ -424,7 +476,9 @@ "Site": "Sitio", "Skills": "Habilidades", "Skills (%lld)": "Habilidades (%lld)", + "Skills Hub": "Hub de habilidades", "Source": "Origen", + "Speech-to-Text": "Voz a texto", "Start": "Iniciar", "Start Daemon": "Iniciar demonio", "Start Hermes": "Iniciar Hermes", @@ -449,6 +503,7 @@ "Test Connection": "Probar conexión", "Test failed": "Prueba fallida", "Test passed": "Prueba superada", + "Text-to-Speech": "Texto a voz", "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "El agente aún no ha anunciado comandos slash. Sigue escribiendo para enviar como mensaje, o pulsa Esc.", "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "La huella SSH del remoto ya no coincide con lo que tu archivo `~/.ssh/known_hosts` esperaba. Normalmente significa que el remoto se reinstaló — o, con menos frecuencia, que alguien intercepta la conexión.", "The server this window was opened with has been removed from your registry.": "El servidor con el que se abrió esta ventana se ha eliminado de tu registro.", @@ -465,14 +520,17 @@ "This will permanently delete the session and all its messages.": "Esto eliminará permanentemente la sesión y todos sus mensajes.", "Timeout: %llds (%@)": "Tiempo de espera: %1$lld s (%2$@)", "Timeouts": "Tiempos de espera", + "Tirith Sandbox": "Sandbox Tirith", "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Para evitar que pida la frase de contraseña en cada reinicio, añade `--apple-use-keychain` para almacenarla en el llavero de macOS.", "Toggle text-to-speech (/voice tts)": "Alternar texto a voz (/voice tts)", "Toggle voice mode (/voice)": "Alternar modo de voz (/voice)", "Token on disk. Clear to re-authenticate next time the gateway connects.": "Token en disco. Bórralo para que se vuelva a autenticar en la próxima conexión del gateway.", "Tool Approval Required": "Se requiere aprobación de herramienta", "Tool Filters": "Filtros de herramientas", + "Tool Progress": "Progreso de herramientas", "Tools": "Herramientas", "Top Tools": "Herramientas principales", + "Turns & Reasoning": "Turnos y razonamiento", "Uninstall": "Desinstalar", "Unknown: %@": "Desconocido: %@", "Update": "Actualizar", @@ -489,14 +547,21 @@ "Used as the YAML key. Lowercase, no spaces.": "Se usa como clave YAML. Minúsculas, sin espacios.", "View": "Ver", "View All": "Ver todo", + "Vision": "Visión", + "Voice": "Voz", "Voice Off": "Voz desactivada", "Voice On": "Voz activada", "Waiting for authorization URL…": "Esperando URL de autorización…", "Waiting for first probe": "Esperando primera comprobación", "Waiting for hermes to prompt for the code…": "Esperando a que hermes pida el código…", + "Web Extract": "Extracción web", + "Webhook (advanced)": "Webhook (avanzado)", + "Webhook (hermes side)": "Webhook (lado hermes)", + "Webhook Security": "Seguridad de webhook", "Webhook platform not enabled": "Plataforma de webhooks no activada", "Webhooks": "Webhooks", "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Los webhooks permiten que servicios externos disparen respuestas del agente. Cada suscripción obtiene su propio endpoint de URL.", + "Website Blocklist": "Lista de bloqueo de sitios", "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp usa la biblioteca Baileys para emular una sesión de WhatsApp Web. Empareja este Mac como dispositivo vinculado ejecutando el asistente y escaneando el código QR con tu teléfono (Ajustes → Dispositivos vinculados → Vincular dispositivo).", "Working": "Trabajando", "e.g. anthropic": "p. ej. anthropic", diff --git a/tools/translations/fr.json b/tools/translations/fr.json index db48efb..7d18664 100644 --- a/tools/translations/fr.json +++ b/tools/translations/fr.json @@ -20,11 +20,14 @@ "%lld tools": "%lld outils", "30 Days": "30 jours", "7 Days": "7 jours", + "90 Days": "90 jours", "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Un QR code apparaîtra ci-dessous. Scannez-le avec WhatsApp sur votre téléphone. La session est enregistrée dans ~/.hermes/platforms/whatsapp/, vous n'aurez donc pas besoin de la rescanner après un redémarrage.", "API Key": "Clé API", "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "Les clés API ne sont jamais affichées en entier. Scarf n'affiche que les 4 derniers caractères pour identification. Les valeurs complètes sont stockées par hermes dans ~/.hermes/auth.json.", + "Access Control": "Contrôle d'accès", "Actions": "Actions", "Active": "Actif", + "Active Personality": "Personnalité active", "Active profile": "Profil actif", "Activity": "Activité", "Activity Patterns": "Schémas d'activité", @@ -42,6 +45,7 @@ "Add from Preset": "Ajouter depuis un préréglage", "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Ajoutez des identifiants de rotation pour que hermes puisse basculer entre les clés lorsqu'une atteint la limite de débit.", "Add your first command": "Ajoutez votre première commande", + "Advanced": "Avancé", "After approving in your browser, the provider shows a code. Paste it below and submit.": "Après avoir approuvé dans votre navigateur, le fournisseur affiche un code. Collez-le ci-dessous et soumettez.", "Agent": "Agent", "All": "Tous", @@ -49,25 +53,34 @@ "All Sessions": "Toutes les sessions", "All Time": "Tout le temps", "All installed hub skills are up to date.": "Toutes les compétences installées depuis le hub sont à jour.", + "App Credentials": "Identifiants de l'application", + "Approval": "Approbation", + "Approvals": "Approbations", "Approve": "Approuver", "Archive": "Archiver", "Args (one per line)": "Arguments (un par ligne)", "Arguments": "Arguments", "Assistant Message": "Message de l'assistant", "Auth": "Auth", + "Authentication": "Authentification", "Authentication uses ssh-agent": "L'authentification utilise ssh-agent", "Authorization Code": "Code d'autorisation", "Authorization URL": "URL d'autorisation", + "Aux Models": "Modèles auxiliaires", "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Les tâches auxiliaires utilisent des modèles distincts, généralement moins coûteux. Laissez Fournisseur sur `auto` pour hériter du fournisseur principal.", "Back": "Retour", "Back to Catalog": "Retour au catalogue", + "Backend": "Backend", + "Backup & Restore": "Sauvegarde et restauration", "Backup Now": "Sauvegarder maintenant", "Becomes the key under mcp_servers: in config.yaml.": "Devient la clé sous mcp_servers : dans config.yaml.", + "Behavior": "Comportement", "Browse": "Parcourir", "Browse Hub": "Parcourir le hub", "Browse the Hub": "Parcourir le hub", "Browse...": "Parcourir...", "Browser": "Navigateur", + "Built-in Memory": "Mémoire intégrée", "By Day": "Par jour", "By Hour": "Par heure", "Call timeout": "Délai d'appel", @@ -81,6 +94,7 @@ "Check for Updates": "Vérifier les mises à jour", "Check for Updates…": "Vérifier les mises à jour…", "Checking…": "Vérification…", + "Checkpoints": "Points de contrôle", "Choose a cron job from the list": "Choisissez une tâche cron dans la liste", "Choose a profile to inspect.": "Choisissez un profil à inspecter.", "Choose a project from the sidebar to view its dashboard.": "Choisissez un projet dans la barre latérale pour voir son tableau de bord.", @@ -98,16 +112,21 @@ "Close Window": "Fermer la fenêtre", "Code: %@": "Code : %@", "Command": "Commande", + "Command Allowlist": "Liste d'autorisations de commandes", "Command looks destructive. Double-check before saving.": "La commande semble destructive. Vérifiez avant d'enregistrer.", "Component": "Composant", "Compress": "Compresser", "Compress Conversation": "Compresser la conversation", "Compress conversation (/compress)": "Compresser la conversation (/compress)", + "Compression": "Compression", + "Config Diagnostics": "Diagnostics de configuration", "Configure": "Configurer", "Connect timeout": "Délai de connexion", "Connected": "Connecté", "Connected — can't read Hermes state": "Connecté — impossible de lire l'état de Hermes", "Connection": "Connexion", + "Container Limits": "Limites du conteneur", + "Context & Compression": "Contexte et compression", "Continue Last Session": "Continuer la dernière session", "Copied": "Copié", "Copy": "Copier", @@ -132,21 +151,26 @@ "Cron Jobs": "Tâches cron", "Current: %@": "Actuel : %@", "Custom…": "Personnalisé…", + "Daemon Endpoint": "Endpoint du démon", "Daemon running": "Démon en cours d'exécution", "Dashboard": "Tableau de bord", "Default": "Par défaut", "Default: ~/.hermes": "Par défaut : ~/.hermes", "Defaults to ~/.ssh/config or current user": "Par défaut : ~/.ssh/config ou utilisateur courant", + "Defined Personalities": "Personnalités définies", + "Delegation": "Délégation", "Delete": "Supprimer", "Delete %@?": "Supprimer %@ ?", "Delete Session?": "Supprimer la session ?", "Delete profile '%@'?": "Supprimer le profil « %@ » ?", "Delete...": "Supprimer...", "Deliver: %@": "Livrer : %@", + "Details": "Détails", "Diagnostic Output": "Sortie de diagnostic", "Diagnostics": "Diagnostics", "Disable": "Désactiver", "Disabled": "Désactivé", + "Display": "Affichage", "Docs": "Docs", "Done": "Terminé", "Edit": "Modifier", @@ -160,10 +184,13 @@ "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Activez la 2FA sur votre compte email et générez un mot de passe d'application. Les mots de passe de compte classiques ne fonctionneront pas. Définissez toujours les expéditeurs autorisés — sinon toute personne connaissant l'adresse pourra envoyer des messages à l'agent.", "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Activez la plateforme webhook pour accepter les déclencheurs d'agent pilotés par événements. Le secret HMAC est utilisé en repli quand les routes individuelles n'en fournissent pas.", "Enabled": "Activé", + "End-to-End Encryption (experimental)": "Chiffrement de bout en bout (expérimental)", + "Entity Filters (config.yaml only)": "Filtres d'entités (config.yaml uniquement)", "Env vars, headers, and tool filters can be edited after the server is added.": "Les variables d'environnement, en-têtes et filtres d'outils peuvent être modifiés après l'ajout du serveur.", "Environment Variables": "Variables d'environnement", "Error": "Erreur", "Errors": "Erreurs", + "Event Filters": "Filtres d'événements", "Exclude": "Exclure", "Execute": "Exécuter", "Expected at %@": "Attendu à %@", @@ -172,18 +199,23 @@ "Export…": "Exporter…", "Expose prompts": "Exposer les prompts", "Expose resources": "Exposer les ressources", + "External Provider": "Fournisseur externe", + "Feedback": "Retour", "Fetch": "Récupérer", "Files": "Fichiers", "Filter logs...": "Filtrer les journaux...", "Filter servers...": "Filtrer les serveurs...", "Filter skills...": "Filtrer les compétences...", "Filter to session %@": "Filtrer sur la session %@", + "Flush Memories": "Vider les mémoires", "Focus topic (optional)": "Sujet ciblé (optionnel)", "Full copy of active profile (all state)": "Copie complète du profil actif (tout l'état)", "Gateway": "Gateway", "Gateway Running": "Gateway en cours", "Gateway Stopped": "Gateway arrêté", "Gateway restart required": "Redémarrage du gateway requis", + "General": "Général", + "Global Settings": "Paramètres globaux", "Header": "En-tête", "Headers": "En-têtes", "Health": "Santé", @@ -195,7 +227,10 @@ "Hide": "Masquer", "Hide Output": "Masquer la sortie", "Hide details": "Masquer les détails", + "Home Channel": "Canal principal", + "Homeserver": "Homeserver", "Host key changed": "Clé d'hôte modifiée", + "Human Delay": "Délai humain", "ID: %@": "ID : %@", "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "S'il s'agit de la première connexion, assurez-vous que votre clé est chargée avec `ssh-add` et que l'hôte distant l'accepte.", "If you trust the change, remove the stale entry and reconnect:": "Si vous faites confiance au changement, supprimez l'entrée obsolète et reconnectez-vous :", @@ -217,6 +252,7 @@ "Last probe: %@": "Dernière sonde : %@", "Last run: %@": "Dernière exécution : %@", "Last updated: %@": "Mis à jour : %@", + "Layout": "Mise en page", "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Laissez vide pour déduire du préfixe de l'ID du modèle (« openai/... » → openai).", "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Laissez vide sauf si Hermes est installé à un chemin non standard (les services systemd résident souvent dans /var/lib/hermes/.hermes ; les sidecars Docker varient). Tester la connexion suggère automatiquement une valeur lorsqu'un des chemins alternatifs connus est détecté.", "Level": "Niveau", @@ -227,7 +263,9 @@ "Loading session…": "Chargement de la session…", "Local": "Local", "Local (stdio)": "Local (stdio)", + "Locale": "Locale", "Log File": "Fichier journal", + "Logging": "Journalisation", "Logs": "Journaux", "MCP Servers": "Serveurs MCP", "MCP Servers (%lld)": "Serveurs MCP (%lld)", @@ -241,11 +279,14 @@ "Messages will appear here as the conversation progresses.": "Les messages apparaîtront ici au fur et à mesure de la conversation.", "Migrate": "Migrer", "Missing required config:": "Configuration requise manquante :", + "Modal": "Modale", + "Model": "Modèle", "Model ID": "ID du modèle", "Models": "Modèles", "Monitor": "Surveiller", "Name": "Nom", "Name (no leading slash)": "Nom (sans barre oblique initiale)", + "Network": "Réseau", "New Session": "Nouvelle session", "New Webhook Subscription": "Nouvel abonnement webhook", "New name for '%@'": "Nouveau nom pour « %@ »", @@ -283,6 +324,7 @@ "None": "Aucun", "Notable Sessions": "Sessions notables", "OAuth login for %@": "Connexion OAuth pour %@", + "OK": "OK", "Open BotFather": "Ouvrir BotFather", "Open Developer Portal": "Ouvrir le Developer Portal", "Open Local": "Ouvrir local", @@ -294,6 +336,7 @@ "Open in Editor": "Ouvrir dans l'éditeur", "Open in new window": "Ouvrir dans une nouvelle fenêtre", "Open session": "Ouvrir la session", + "Optional": "Optionnel", "Optional — defaults to hostname": "Optionnel — par défaut : nom d'hôte", "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Centrez éventuellement le résumé sur un sujet précis. Laissez vide pour compresser uniformément.", "Other": "Autre", @@ -304,11 +347,13 @@ "Pair Device": "Appairer l'appareil", "Paired Users": "Utilisateurs appairés", "Paste code here…": "Collez le code ici…", + "Paths": "Chemins", "Pause": "Pause", "Pending Approvals": "Approbations en attente", "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "Les abonnements par route (événements, modèle de prompt, cible de livraison) sont gérés dans la barre latérale Webhooks — pas ici. Ce panneau contrôle uniquement si la plateforme webhook écoute.", "Period": "Période", "Personalities": "Personnalités", + "Personality": "Personnalité", "Pick an MCP server to add.": "Choisissez un serveur MCP à ajouter.", "Pick one from the list, or add a new server from the toolbar.": "Choisissez-en un dans la liste ou ajoutez un nouveau serveur depuis la barre d'outils.", "Platforms": "Plateformes", @@ -327,6 +372,7 @@ "Provider": "Fournisseur", "Push to Talk": "Push-to-Talk", "Push to talk (Ctrl+B)": "Push-to-Talk (Ctrl+B)", + "Push-to-Talk": "Push-to-Talk", "Quick Commands": "Commandes rapides", "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Les commandes rapides sont des raccourcis shell que hermes expose dans le chat sous la forme `/command_name`. Elles se trouvent sous `quick_commands:` dans config.yaml.", "Quit Scarf": "Quitter Scarf", @@ -338,6 +384,7 @@ "Recent Sessions": "Sessions récentes", "Reconnect": "Reconnecter", "Recording…": "Enregistrement…", + "Redaction": "Rédaction", "Refresh": "Actualiser", "Reload": "Recharger", "Remote (HTTP)": "Distant (HTTP)", @@ -353,6 +400,8 @@ "Rename Profile": "Renommer le profil", "Rename Session": "Renommer la session", "Rename...": "Renommer...", + "Required": "Requis", + "Required Tokens": "Jetons requis", "Requires: %@": "Nécessite : %@", "Reset Cooldowns": "Réinitialiser les temps de repos", "Restart": "Redémarrer", @@ -391,6 +440,7 @@ "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Recherchez ou parcourez les compétences publiées sur des registres comme skills.sh, GitHub et le hub officiel.", "Search registries": "Rechercher dans les registres", "Search…": "Rechercher…", + "Security": "Sécurité", "Select": "Sélectionner", "Select Model": "Sélectionner le modèle", "Select a Job": "Sélectionner une tâche", @@ -402,12 +452,14 @@ "Select an MCP Server": "Sélectionner un serveur MCP", "Send message (Enter)": "Envoyer le message (Entrée)", "Series": "Série", + "Server": "Serveur", "Server No Longer Exists": "Le serveur n'existe plus", "Server name": "Nom du serveur", "Servers": "Serveurs", "Service": "Service", "Service definition stale": "Définition de service obsolète", "Session": "Session", + "Session Search": "Recherche de sessions", "Session title": "Titre de session", "Sessions": "Sessions", "Settings": "Réglages", @@ -424,7 +476,9 @@ "Site": "Site", "Skills": "Compétences", "Skills (%lld)": "Compétences (%lld)", + "Skills Hub": "Skills Hub", "Source": "Source", + "Speech-to-Text": "Reconnaissance vocale", "Start": "Démarrer", "Start Daemon": "Démarrer le démon", "Start Hermes": "Démarrer Hermes", @@ -449,6 +503,7 @@ "Test Connection": "Tester la connexion", "Test failed": "Test échoué", "Test passed": "Test réussi", + "Text-to-Speech": "Synthèse vocale", "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "L'agent n'a pas encore annoncé de commandes slash. Continuez à taper pour envoyer en tant que message, ou appuyez sur Échap.", "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "L'empreinte SSH de l'hôte distant ne correspond plus à ce qu'attendait votre fichier `~/.ssh/known_hosts`. Cela signifie généralement que l'hôte distant a été réinstallé — ou, plus rarement, que quelqu'un intercepte la connexion.", "The server this window was opened with has been removed from your registry.": "Le serveur avec lequel cette fenêtre a été ouverte a été retiré de votre registre.", @@ -465,14 +520,17 @@ "This will permanently delete the session and all its messages.": "Cela supprimera définitivement la session et tous ses messages.", "Timeout: %llds (%@)": "Délai : %1$lld s (%2$@)", "Timeouts": "Délais", + "Tirith Sandbox": "Bac à sable Tirith", "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Pour éviter la demande de phrase secrète à chaque redémarrage, ajoutez `--apple-use-keychain` pour la mettre en cache dans le trousseau macOS.", "Toggle text-to-speech (/voice tts)": "Basculer la synthèse vocale (/voice tts)", "Toggle voice mode (/voice)": "Basculer le mode vocal (/voice)", "Token on disk. Clear to re-authenticate next time the gateway connects.": "Jeton sur disque. Effacez-le pour forcer une nouvelle authentification à la prochaine connexion du gateway.", "Tool Approval Required": "Approbation d'outil requise", "Tool Filters": "Filtres d'outils", + "Tool Progress": "Progression des outils", "Tools": "Outils", "Top Tools": "Outils principaux", + "Turns & Reasoning": "Tours et raisonnement", "Uninstall": "Désinstaller", "Unknown: %@": "Inconnu : %@", "Update": "Mettre à jour", @@ -489,14 +547,21 @@ "Used as the YAML key. Lowercase, no spaces.": "Utilisé comme clé YAML. Minuscules, sans espaces.", "View": "Voir", "View All": "Tout voir", + "Vision": "Vision", + "Voice": "Voix", "Voice Off": "Voix désactivée", "Voice On": "Voix activée", "Waiting for authorization URL…": "En attente de l'URL d'autorisation…", "Waiting for first probe": "En attente de la première sonde", "Waiting for hermes to prompt for the code…": "En attente que hermes demande le code…", + "Web Extract": "Extraction Web", + "Webhook (advanced)": "Webhook (avancé)", + "Webhook (hermes side)": "Webhook (côté hermes)", + "Webhook Security": "Sécurité webhook", "Webhook platform not enabled": "Plateforme webhook non activée", "Webhooks": "Webhooks", "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Les webhooks permettent à des services externes de déclencher des réponses d'agent. Chaque abonnement a son propre point d'accès URL.", + "Website Blocklist": "Liste de blocage de sites", "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp utilise la bibliothèque Baileys pour émuler une session WhatsApp Web. Appairez ce Mac comme appareil lié en lançant l'assistant d'appairage et en scannant le QR code avec votre téléphone (Paramètres → Appareils liés → Associer un appareil).", "Working": "Travail en cours", "e.g. anthropic": "par ex. anthropic", diff --git a/tools/translations/ja.json b/tools/translations/ja.json index 95919f7..79acff9 100644 --- a/tools/translations/ja.json +++ b/tools/translations/ja.json @@ -20,11 +20,14 @@ "%lld tools": "%lld ツール", "30 Days": "30 日間", "7 Days": "7 日間", + "90 Days": "90 日間", "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "下に QR コードが表示されます。スマートフォンの WhatsApp でスキャンしてください。セッションは ~/.hermes/platforms/whatsapp/ に保存されるため、再起動後に再度スキャンする必要はありません。", "API Key": "API キー", "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "API キーは完全な形では表示されません。Scarf は識別用に末尾 4 文字のみを表示します。完全なキーの値は hermes が ~/.hermes/auth.json に保存します。", + "Access Control": "アクセス制御", "Actions": "アクション", "Active": "アクティブ", + "Active Personality": "アクティブなパーソナリティ", "Active profile": "アクティブなプロファイル", "Activity": "アクティビティ", "Activity Patterns": "アクティビティパターン", @@ -42,6 +45,7 @@ "Add from Preset": "プリセットから追加", "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "ローテーション用の資格情報を追加すると、あるキーがレート制限に達した際に hermes が別のキーにフェイルオーバーできます。", "Add your first command": "最初のコマンドを追加", + "Advanced": "詳細", "After approving in your browser, the provider shows a code. Paste it below and submit.": "ブラウザで承認するとプロバイダーがコードを表示します。下に貼り付けて送信してください。", "Agent": "Agent", "All": "すべて", @@ -49,25 +53,34 @@ "All Sessions": "すべてのセッション", "All Time": "全期間", "All installed hub skills are up to date.": "インストールされているハブスキルはすべて最新です。", + "App Credentials": "アプリ資格情報", + "Approval": "承認", + "Approvals": "承認", "Approve": "承認", "Archive": "アーカイブ", "Args (one per line)": "引数(1 行に 1 つ)", "Arguments": "引数", "Assistant Message": "アシスタントメッセージ", "Auth": "認証", + "Authentication": "認証", "Authentication uses ssh-agent": "認証には ssh-agent を使用します", "Authorization Code": "認可コード", "Authorization URL": "認可 URL", + "Aux Models": "補助モデル", "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "補助タスクには別の、通常はより安価なモデルを使用します。メインプロバイダーを継承するには Provider を `auto` のままにしてください。", "Back": "戻る", "Back to Catalog": "カタログに戻る", + "Backend": "バックエンド", + "Backup & Restore": "バックアップと復元", "Backup Now": "今すぐバックアップ", "Becomes the key under mcp_servers: in config.yaml.": "config.yaml の mcp_servers: 下のキーになります。", + "Behavior": "動作", "Browse": "参照", "Browse Hub": "ハブを参照", "Browse the Hub": "ハブを参照", "Browse...": "参照...", "Browser": "ブラウザ", + "Built-in Memory": "ビルトインメモリ", "By Day": "日別", "By Hour": "時間別", "Call timeout": "呼び出しタイムアウト", @@ -81,6 +94,7 @@ "Check for Updates": "アップデートを確認", "Check for Updates…": "アップデートを確認…", "Checking…": "確認中…", + "Checkpoints": "チェックポイント", "Choose a cron job from the list": "リストから cron ジョブを選択", "Choose a profile to inspect.": "検査するプロファイルを選択してください。", "Choose a project from the sidebar to view its dashboard.": "サイドバーからプロジェクトを選択してダッシュボードを表示します。", @@ -98,16 +112,21 @@ "Close Window": "ウィンドウを閉じる", "Code: %@": "コード: %@", "Command": "コマンド", + "Command Allowlist": "コマンド許可リスト", "Command looks destructive. Double-check before saving.": "コマンドが破壊的に見えます。保存前に再確認してください。", "Component": "コンポーネント", "Compress": "圧縮", "Compress Conversation": "会話を圧縮", "Compress conversation (/compress)": "会話を圧縮 (/compress)", + "Compression": "圧縮", + "Config Diagnostics": "設定診断", "Configure": "設定", "Connect timeout": "接続タイムアウト", "Connected": "接続済み", "Connected — can't read Hermes state": "接続済み — Hermes 状態を読み取れません", "Connection": "接続", + "Container Limits": "コンテナ制限", + "Context & Compression": "コンテキストと圧縮", "Continue Last Session": "前回のセッションを続ける", "Copied": "コピー済み", "Copy": "コピー", @@ -132,21 +151,26 @@ "Cron Jobs": "Cron ジョブ", "Current: %@": "現在: %@", "Custom…": "カスタム…", + "Daemon Endpoint": "デーモンエンドポイント", "Daemon running": "デーモン実行中", "Dashboard": "ダッシュボード", "Default": "デフォルト", "Default: ~/.hermes": "デフォルト: ~/.hermes", "Defaults to ~/.ssh/config or current user": "デフォルトは ~/.ssh/config または現在のユーザー", + "Defined Personalities": "定義済みパーソナリティ", + "Delegation": "委譲", "Delete": "削除", "Delete %@?": "%@ を削除しますか?", "Delete Session?": "セッションを削除しますか?", "Delete profile '%@'?": "プロファイル '%@' を削除しますか?", "Delete...": "削除...", "Deliver: %@": "配信: %@", + "Details": "詳細", "Diagnostic Output": "診断出力", "Diagnostics": "診断", "Disable": "無効化", "Disabled": "無効", + "Display": "表示", "Docs": "ドキュメント", "Done": "完了", "Edit": "編集", @@ -160,10 +184,13 @@ "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "メールアカウントで 2FA を有効にし、アプリパスワードを生成してください。通常のアカウントパスワードは使用できません。許可された送信者を必ず設定してください — そうしないと、アドレスを知っている誰もがエージェントにメッセージを送れます。", "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "webhook プラットフォームを有効化してイベント駆動のエージェントトリガーを受け付けます。個別のルートが独自のものを提供しない場合、HMAC シークレットがフォールバックとして使用されます。", "Enabled": "有効", + "End-to-End Encryption (experimental)": "エンドツーエンド暗号化(実験的)", + "Entity Filters (config.yaml only)": "エンティティフィルタ(config.yaml のみ)", "Env vars, headers, and tool filters can be edited after the server is added.": "環境変数、ヘッダー、ツールフィルタはサーバー追加後に編集できます。", "Environment Variables": "環境変数", "Error": "エラー", "Errors": "エラー", + "Event Filters": "イベントフィルタ", "Exclude": "除外", "Execute": "実行", "Expected at %@": "%@ に期待", @@ -172,18 +199,23 @@ "Export…": "エクスポート…", "Expose prompts": "プロンプトを公開", "Expose resources": "リソースを公開", + "External Provider": "外部プロバイダー", + "Feedback": "フィードバック", "Fetch": "取得", "Files": "ファイル", "Filter logs...": "ログをフィルタ...", "Filter servers...": "サーバーをフィルタ...", "Filter skills...": "スキルをフィルタ...", "Filter to session %@": "セッション %@ にフィルタ", + "Flush Memories": "メモリをフラッシュ", "Focus topic (optional)": "フォーカストピック(任意)", "Full copy of active profile (all state)": "アクティブなプロファイルの完全コピー(すべての状態)", "Gateway": "Gateway", "Gateway Running": "Gateway 実行中", "Gateway Stopped": "Gateway 停止", "Gateway restart required": "Gateway の再起動が必要です", + "General": "一般", + "Global Settings": "グローバル設定", "Header": "ヘッダー", "Headers": "ヘッダー", "Health": "状態", @@ -195,7 +227,10 @@ "Hide": "非表示", "Hide Output": "出力を非表示", "Hide details": "詳細を非表示", + "Home Channel": "ホームチャンネル", + "Homeserver": "ホームサーバー", "Host key changed": "ホストキーが変更されました", + "Human Delay": "ヒューマンディレイ", "ID: %@": "ID: %@", "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "初回接続の場合は、`ssh-add` でキーがロードされていることと、リモートがそれを受け付けていることを確認してください。", "If you trust the change, remove the stale entry and reconnect:": "変更を信頼する場合、古いエントリを削除して再接続してください:", @@ -217,6 +252,7 @@ "Last probe: %@": "最終確認: %@", "Last run: %@": "最終実行: %@", "Last updated: %@": "最終更新: %@", + "Layout": "レイアウト", "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "モデル ID のプレフィックスから推定するには空のままにします(\"openai/...\" → openai)。", "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Hermes がデフォルト以外のパスにインストールされていない限り空のままにしてください(systemd サービスはしばしば /var/lib/hermes/.hermes にあり、Docker サイドカーは様々です)。テスト接続は既知の代替パスを検出すると自動的に値を提案します。", "Level": "レベル", @@ -227,7 +263,9 @@ "Loading session…": "セッションを読み込み中…", "Local": "ローカル", "Local (stdio)": "ローカル (stdio)", + "Locale": "ロケール", "Log File": "ログファイル", + "Logging": "ログ", "Logs": "ログ", "MCP Servers": "MCP サーバー", "MCP Servers (%lld)": "MCP サーバー (%lld)", @@ -241,11 +279,14 @@ "Messages will appear here as the conversation progresses.": "会話が進むにつれてメッセージがここに表示されます。", "Migrate": "移行", "Missing required config:": "必須設定が不足しています:", + "Modal": "モーダル", + "Model": "モデル", "Model ID": "モデル ID", "Models": "モデル", "Monitor": "モニター", "Name": "名前", "Name (no leading slash)": "名前(先頭のスラッシュなし)", + "Network": "ネットワーク", "New Session": "新しいセッション", "New Webhook Subscription": "新しい Webhook サブスクリプション", "New name for '%@'": "'%@' の新しい名前", @@ -283,6 +324,7 @@ "None": "なし", "Notable Sessions": "注目のセッション", "OAuth login for %@": "%@ の OAuth ログイン", + "OK": "OK", "Open BotFather": "BotFather を開く", "Open Developer Portal": "Developer Portal を開く", "Open Local": "ローカルを開く", @@ -294,6 +336,7 @@ "Open in Editor": "エディタで開く", "Open in new window": "新しいウィンドウで開く", "Open session": "セッションを開く", + "Optional": "任意", "Optional — defaults to hostname": "任意 — デフォルトはホスト名", "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "要約を特定のトピックに絞ることができます。均等に圧縮するには空のままにしてください。", "Other": "その他", @@ -304,11 +347,13 @@ "Pair Device": "デバイスをペアリング", "Paired Users": "ペア済みユーザー", "Paste code here…": "ここにコードを貼り付け…", + "Paths": "パス", "Pause": "一時停止", "Pending Approvals": "承認待ち", "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "ルートごとのサブスクリプション(イベント、プロンプトテンプレート、配信先)は Webhooks サイドバーで管理します — ここではありません。このパネルは webhook プラットフォームが待ち受けるかどうかのみを制御します。", "Period": "期間", "Personalities": "パーソナリティ", + "Personality": "パーソナリティ", "Pick an MCP server to add.": "追加する MCP サーバーを選択してください。", "Pick one from the list, or add a new server from the toolbar.": "リストから選ぶか、ツールバーから新しいサーバーを追加してください。", "Platforms": "プラットフォーム", @@ -327,6 +372,7 @@ "Provider": "プロバイダー", "Push to Talk": "押して話す", "Push to talk (Ctrl+B)": "押して話す (Ctrl+B)", + "Push-to-Talk": "プッシュ・トゥ・トーク", "Quick Commands": "クイックコマンド", "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "クイックコマンドは、hermes がチャットで `/command_name` として公開するシェルショートカットです。config.yaml の `quick_commands:` 以下に記述します。", "Quit Scarf": "Scarf を終了", @@ -338,6 +384,7 @@ "Recent Sessions": "最近のセッション", "Reconnect": "再接続", "Recording…": "録音中…", + "Redaction": "秘匿化", "Refresh": "更新", "Reload": "再読み込み", "Remote (HTTP)": "リモート (HTTP)", @@ -353,6 +400,8 @@ "Rename Profile": "プロファイル名を変更", "Rename Session": "セッション名を変更", "Rename...": "名前を変更...", + "Required": "必須", + "Required Tokens": "必須トークン", "Requires: %@": "必須: %@", "Reset Cooldowns": "クールダウンをリセット", "Restart": "再起動", @@ -391,6 +440,7 @@ "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "skills.sh、GitHub、公式ハブなどのレジストリに公開されたスキルを検索または参照します。", "Search registries": "レジストリを検索", "Search…": "検索…", + "Security": "セキュリティ", "Select": "選択", "Select Model": "モデルを選択", "Select a Job": "ジョブを選択", @@ -402,12 +452,14 @@ "Select an MCP Server": "MCP サーバーを選択", "Send message (Enter)": "メッセージを送信 (Enter)", "Series": "系列", + "Server": "サーバー", "Server No Longer Exists": "サーバーは存在しません", "Server name": "サーバー名", "Servers": "サーバー", "Service": "サービス", "Service definition stale": "サービス定義が古くなっています", "Session": "セッション", + "Session Search": "セッション検索", "Session title": "セッションタイトル", "Sessions": "セッション", "Settings": "設定", @@ -424,7 +476,9 @@ "Site": "サイト", "Skills": "スキル", "Skills (%lld)": "スキル (%lld)", + "Skills Hub": "スキルハブ", "Source": "ソース", + "Speech-to-Text": "音声認識", "Start": "開始", "Start Daemon": "デーモンを開始", "Start Hermes": "Hermes を開始", @@ -449,6 +503,7 @@ "Test Connection": "接続テスト", "Test failed": "テスト失敗", "Test passed": "テスト成功", + "Text-to-Speech": "音声合成", "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "エージェントはまだスラッシュコマンドを提示していません。入力を続けるとメッセージとして送信されます。キャンセルするには Esc を押してください。", "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "リモートの SSH フィンガープリントが `~/.ssh/known_hosts` の期待値と一致しません。通常はリモートが再インストールされたことを意味します — まれに通信が傍受されている可能性もあります。", "The server this window was opened with has been removed from your registry.": "このウィンドウを開いたサーバーはレジストリから削除されました。", @@ -465,14 +520,17 @@ "This will permanently delete the session and all its messages.": "これによりセッションとそのすべてのメッセージが恒久的に削除されます。", "Timeout: %llds (%@)": "タイムアウト: %1$lld 秒 (%2$@)", "Timeouts": "タイムアウト", + "Tirith Sandbox": "Tirith サンドボックス", "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "毎回の再起動時にパスフレーズのプロンプトをスキップするには、`--apple-use-keychain` を追加して macOS キーチェーンにキャッシュしてください。", "Toggle text-to-speech (/voice tts)": "テキスト読み上げを切り替え (/voice tts)", "Toggle voice mode (/voice)": "音声モードを切り替え (/voice)", "Token on disk. Clear to re-authenticate next time the gateway connects.": "トークンはディスク上にあります。消去すると、次回 gateway が接続する際に再認証します。", "Tool Approval Required": "ツールの承認が必要", "Tool Filters": "ツールフィルタ", + "Tool Progress": "ツールの進捗", "Tools": "ツール", "Top Tools": "トップツール", + "Turns & Reasoning": "ターンと推論", "Uninstall": "アンインストール", "Unknown: %@": "不明: %@", "Update": "更新", @@ -489,14 +547,21 @@ "Used as the YAML key. Lowercase, no spaces.": "YAML キーとして使用されます。小文字・空白なし。", "View": "表示", "View All": "すべて表示", + "Vision": "ビジョン", + "Voice": "音声", "Voice Off": "音声オフ", "Voice On": "音声オン", "Waiting for authorization URL…": "認可 URL を待機中…", "Waiting for first probe": "最初のプローブを待機中", "Waiting for hermes to prompt for the code…": "hermes がコードを要求するのを待機中…", + "Web Extract": "Web 抽出", + "Webhook (advanced)": "Webhook(詳細)", + "Webhook (hermes side)": "Webhook(hermes 側)", + "Webhook Security": "Webhook セキュリティ", "Webhook platform not enabled": "Webhook プラットフォームが有効ではありません", "Webhooks": "Webhook", "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhook を使うと外部サービスがエージェントの応答をトリガーできます。各サブスクリプションは独自の URL エンドポイントを持ちます。", + "Website Blocklist": "ウェブサイトブロックリスト", "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp は Baileys ライブラリで WhatsApp Web セッションをエミュレートします。ペアリングウィザードを実行し、スマートフォンで QR コードをスキャンしてこの Mac をリンク済みデバイスとしてペアリングしてください(設定 → リンク済みデバイス → デバイスをリンク)。", "Working": "処理中", "e.g. anthropic": "例: anthropic", diff --git a/tools/translations/pt-BR.json b/tools/translations/pt-BR.json index 0ddfdf1..190b050 100644 --- a/tools/translations/pt-BR.json +++ b/tools/translations/pt-BR.json @@ -20,11 +20,14 @@ "%lld tools": "%lld ferramentas", "30 Days": "30 dias", "7 Days": "7 dias", + "90 Days": "90 dias", "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "Um QR code aparecerá abaixo. Escaneie com o WhatsApp do seu celular. A sessão é salva em ~/.hermes/platforms/whatsapp/ para não precisar escanear de novo após reinícios.", "API Key": "Chave de API", "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "Chaves de API nunca são exibidas por completo. O Scarf mostra apenas os últimos 4 caracteres para identificação. Os valores completos são armazenados pelo hermes em ~/.hermes/auth.json.", + "Access Control": "Controle de acesso", "Actions": "Ações", "Active": "Ativa", + "Active Personality": "Personalidade ativa", "Active profile": "Perfil ativo", "Activity": "Atividade", "Activity Patterns": "Padrões de atividade", @@ -42,6 +45,7 @@ "Add from Preset": "Adicionar a partir de predefinição", "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "Adicione credenciais de rotação para que o hermes possa alternar entre chaves quando uma atingir o limite de taxa.", "Add your first command": "Adicione seu primeiro comando", + "Advanced": "Avançado", "After approving in your browser, the provider shows a code. Paste it below and submit.": "Após aprovar no navegador, o provedor mostra um código. Cole abaixo e envie.", "Agent": "Agent", "All": "Todos", @@ -49,25 +53,34 @@ "All Sessions": "Todas as sessões", "All Time": "Todo o período", "All installed hub skills are up to date.": "Todas as habilidades instaladas do hub estão atualizadas.", + "App Credentials": "Credenciais do app", + "Approval": "Aprovação", + "Approvals": "Aprovações", "Approve": "Aprovar", "Archive": "Arquivar", "Args (one per line)": "Argumentos (um por linha)", "Arguments": "Argumentos", "Assistant Message": "Mensagem do assistente", "Auth": "Auth", + "Authentication": "Autenticação", "Authentication uses ssh-agent": "A autenticação usa ssh-agent", "Authorization Code": "Código de autorização", "Authorization URL": "URL de autorização", + "Aux Models": "Modelos auxiliares", "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "Tarefas auxiliares usam modelos separados, geralmente mais baratos. Deixe Provedor em `auto` para herdar o provedor principal.", "Back": "Voltar", "Back to Catalog": "Voltar ao catálogo", + "Backend": "Backend", + "Backup & Restore": "Backup e restauração", "Backup Now": "Fazer backup agora", "Becomes the key under mcp_servers: in config.yaml.": "Vira a chave sob mcp_servers: em config.yaml.", + "Behavior": "Comportamento", "Browse": "Explorar", "Browse Hub": "Explorar hub", "Browse the Hub": "Explorar o hub", "Browse...": "Explorar...", "Browser": "Navegador", + "Built-in Memory": "Memória integrada", "By Day": "Por dia", "By Hour": "Por hora", "Call timeout": "Tempo limite da chamada", @@ -81,6 +94,7 @@ "Check for Updates": "Verificar atualizações", "Check for Updates…": "Verificar atualizações…", "Checking…": "Verificando…", + "Checkpoints": "Checkpoints", "Choose a cron job from the list": "Escolha uma tarefa cron na lista", "Choose a profile to inspect.": "Escolha um perfil para inspecionar.", "Choose a project from the sidebar to view its dashboard.": "Escolha um projeto na barra lateral para ver o painel.", @@ -98,16 +112,21 @@ "Close Window": "Fechar janela", "Code: %@": "Código: %@", "Command": "Comando", + "Command Allowlist": "Lista de comandos permitidos", "Command looks destructive. Double-check before saving.": "O comando parece destrutivo. Revise antes de salvar.", "Component": "Componente", "Compress": "Compactar", "Compress Conversation": "Compactar conversa", "Compress conversation (/compress)": "Compactar conversa (/compress)", + "Compression": "Compactação", + "Config Diagnostics": "Diagnóstico de configuração", "Configure": "Configurar", "Connect timeout": "Tempo limite de conexão", "Connected": "Conectado", "Connected — can't read Hermes state": "Conectado — não é possível ler o estado do Hermes", "Connection": "Conexão", + "Container Limits": "Limites do contêiner", + "Context & Compression": "Contexto e compactação", "Continue Last Session": "Continuar última sessão", "Copied": "Copiado", "Copy": "Copiar", @@ -132,21 +151,26 @@ "Cron Jobs": "Tarefas cron", "Current: %@": "Atual: %@", "Custom…": "Personalizado…", + "Daemon Endpoint": "Endpoint do daemon", "Daemon running": "Daemon em execução", "Dashboard": "Painel", "Default": "Padrão", "Default: ~/.hermes": "Padrão: ~/.hermes", "Defaults to ~/.ssh/config or current user": "Padrão é ~/.ssh/config ou usuário atual", + "Defined Personalities": "Personalidades definidas", + "Delegation": "Delegação", "Delete": "Excluir", "Delete %@?": "Excluir %@?", "Delete Session?": "Excluir sessão?", "Delete profile '%@'?": "Excluir perfil '%@'?", "Delete...": "Excluir...", "Deliver: %@": "Entregar: %@", + "Details": "Detalhes", "Diagnostic Output": "Saída de diagnóstico", "Diagnostics": "Diagnóstico", "Disable": "Desativar", "Disabled": "Desativado", + "Display": "Exibição", "Docs": "Docs", "Done": "Concluído", "Edit": "Editar", @@ -160,10 +184,13 @@ "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "Ative o 2FA na sua conta de e-mail e gere uma senha de aplicativo. Senhas normais da conta não funcionam. Sempre defina remetentes permitidos — caso contrário, qualquer um que saiba o endereço pode enviar mensagens para o agente.", "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "Ative a plataforma de webhook para aceitar gatilhos de agente orientados a eventos. O segredo HMAC é usado como fallback quando rotas individuais não fornecem o próprio.", "Enabled": "Ativado", + "End-to-End Encryption (experimental)": "Criptografia ponta a ponta (experimental)", + "Entity Filters (config.yaml only)": "Filtros de entidade (somente config.yaml)", "Env vars, headers, and tool filters can be edited after the server is added.": "Variáveis de ambiente, cabeçalhos e filtros de ferramentas podem ser editados após o servidor ser adicionado.", "Environment Variables": "Variáveis de ambiente", "Error": "Erro", "Errors": "Erros", + "Event Filters": "Filtros de eventos", "Exclude": "Excluir", "Execute": "Executar", "Expected at %@": "Esperado em %@", @@ -172,18 +199,23 @@ "Export…": "Exportar…", "Expose prompts": "Expor prompts", "Expose resources": "Expor recursos", + "External Provider": "Provedor externo", + "Feedback": "Feedback", "Fetch": "Buscar", "Files": "Arquivos", "Filter logs...": "Filtrar logs...", "Filter servers...": "Filtrar servidores...", "Filter skills...": "Filtrar habilidades...", "Filter to session %@": "Filtrar para a sessão %@", + "Flush Memories": "Limpar memórias", "Focus topic (optional)": "Tópico de foco (opcional)", "Full copy of active profile (all state)": "Cópia completa do perfil ativo (todo o estado)", "Gateway": "Gateway", "Gateway Running": "Gateway em execução", "Gateway Stopped": "Gateway parado", "Gateway restart required": "Reinicialização do gateway necessária", + "General": "Geral", + "Global Settings": "Configurações globais", "Header": "Cabeçalho", "Headers": "Cabeçalhos", "Health": "Saúde", @@ -195,7 +227,10 @@ "Hide": "Ocultar", "Hide Output": "Ocultar saída", "Hide details": "Ocultar detalhes", + "Home Channel": "Canal principal", + "Homeserver": "Homeserver", "Host key changed": "Chave do host alterada", + "Human Delay": "Atraso humano", "ID: %@": "ID: %@", "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "Se esta for a primeira conexão, garanta que sua chave esteja carregada com `ssh-add` e que o remoto a aceite.", "If you trust the change, remove the stale entry and reconnect:": "Se você confia na mudança, remova a entrada antiga e reconecte:", @@ -217,6 +252,7 @@ "Last probe: %@": "Última verificação: %@", "Last run: %@": "Última execução: %@", "Last updated: %@": "Atualizado em: %@", + "Layout": "Layout", "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "Deixe em branco para inferir pelo prefixo do ID do modelo (\"openai/...\" → openai).", "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "Deixe em branco a menos que o Hermes esteja instalado em um caminho não padrão (serviços systemd geralmente ficam em /var/lib/hermes/.hermes; sidecars Docker variam). Testar conexão sugere automaticamente um valor ao detectar um dos caminhos alternativos conhecidos.", "Level": "Nível", @@ -227,7 +263,9 @@ "Loading session…": "Carregando sessão…", "Local": "Local", "Local (stdio)": "Local (stdio)", + "Locale": "Localidade", "Log File": "Arquivo de log", + "Logging": "Registro", "Logs": "Logs", "MCP Servers": "Servidores MCP", "MCP Servers (%lld)": "Servidores MCP (%lld)", @@ -241,11 +279,14 @@ "Messages will appear here as the conversation progresses.": "As mensagens aparecerão aqui conforme a conversa progride.", "Migrate": "Migrar", "Missing required config:": "Configuração obrigatória ausente:", + "Modal": "Modal", + "Model": "Modelo", "Model ID": "ID do modelo", "Models": "Modelos", "Monitor": "Monitor", "Name": "Nome", "Name (no leading slash)": "Nome (sem barra inicial)", + "Network": "Rede", "New Session": "Nova sessão", "New Webhook Subscription": "Nova assinatura de webhook", "New name for '%@'": "Novo nome para '%@'", @@ -283,6 +324,7 @@ "None": "Nenhum", "Notable Sessions": "Sessões notáveis", "OAuth login for %@": "Login OAuth para %@", + "OK": "OK", "Open BotFather": "Abrir BotFather", "Open Developer Portal": "Abrir Developer Portal", "Open Local": "Abrir local", @@ -294,6 +336,7 @@ "Open in Editor": "Abrir no editor", "Open in new window": "Abrir em nova janela", "Open session": "Abrir sessão", + "Optional": "Opcional", "Optional — defaults to hostname": "Opcional — padrão é o nome do host", "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "Opcionalmente, foque o resumo em um tópico específico. Deixe em branco para compactar uniformemente.", "Other": "Outro", @@ -304,11 +347,13 @@ "Pair Device": "Parear dispositivo", "Paired Users": "Usuários pareados", "Paste code here…": "Cole o código aqui…", + "Paths": "Caminhos", "Pause": "Pausar", "Pending Approvals": "Aprovações pendentes", "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "As assinaturas por rota (eventos, template de prompt, alvo de entrega) são gerenciadas na barra lateral de Webhooks — não aqui. Este painel só controla se a plataforma de webhook está escutando.", "Period": "Período", "Personalities": "Personalidades", + "Personality": "Personalidade", "Pick an MCP server to add.": "Escolha um servidor MCP para adicionar.", "Pick one from the list, or add a new server from the toolbar.": "Escolha um da lista ou adicione um novo servidor pela barra de ferramentas.", "Platforms": "Plataformas", @@ -327,6 +372,7 @@ "Provider": "Provedor", "Push to Talk": "Pressionar para falar", "Push to talk (Ctrl+B)": "Pressionar para falar (Ctrl+B)", + "Push-to-Talk": "Pressionar para falar", "Quick Commands": "Comandos rápidos", "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "Comandos rápidos são atalhos de shell que o hermes expõe no chat como `/command_name`. Ficam em `quick_commands:` no config.yaml.", "Quit Scarf": "Sair do Scarf", @@ -338,6 +384,7 @@ "Recent Sessions": "Sessões recentes", "Reconnect": "Reconectar", "Recording…": "Gravando…", + "Redaction": "Redação", "Refresh": "Atualizar", "Reload": "Recarregar", "Remote (HTTP)": "Remoto (HTTP)", @@ -353,6 +400,8 @@ "Rename Profile": "Renomear perfil", "Rename Session": "Renomear sessão", "Rename...": "Renomear...", + "Required": "Obrigatório", + "Required Tokens": "Tokens obrigatórios", "Requires: %@": "Requer: %@", "Reset Cooldowns": "Redefinir cooldowns", "Restart": "Reiniciar", @@ -391,6 +440,7 @@ "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "Pesquise ou navegue por habilidades publicadas em registros como skills.sh, GitHub e o hub oficial.", "Search registries": "Pesquisar registros", "Search…": "Pesquisar…", + "Security": "Segurança", "Select": "Selecionar", "Select Model": "Selecionar modelo", "Select a Job": "Selecionar uma tarefa", @@ -402,12 +452,14 @@ "Select an MCP Server": "Selecionar um servidor MCP", "Send message (Enter)": "Enviar mensagem (Enter)", "Series": "Série", + "Server": "Servidor", "Server No Longer Exists": "Servidor não existe mais", "Server name": "Nome do servidor", "Servers": "Servidores", "Service": "Serviço", "Service definition stale": "Definição de serviço desatualizada", "Session": "Sessão", + "Session Search": "Busca de sessões", "Session title": "Título da sessão", "Sessions": "Sessões", "Settings": "Configurações", @@ -424,7 +476,9 @@ "Site": "Site", "Skills": "Habilidades", "Skills (%lld)": "Habilidades (%lld)", + "Skills Hub": "Hub de habilidades", "Source": "Origem", + "Speech-to-Text": "Voz para texto", "Start": "Iniciar", "Start Daemon": "Iniciar daemon", "Start Hermes": "Iniciar Hermes", @@ -449,6 +503,7 @@ "Test Connection": "Testar conexão", "Test failed": "Teste falhou", "Test passed": "Teste aprovado", + "Text-to-Speech": "Texto para voz", "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "O agente ainda não anunciou nenhum comando slash. Continue digitando para enviar como mensagem, ou pressione Esc.", "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "A impressão SSH do remoto não corresponde mais ao que seu arquivo `~/.ssh/known_hosts` esperava. Normalmente isso significa que o remoto foi reinstalado — ou, mais raramente, que alguém está interceptando a conexão.", "The server this window was opened with has been removed from your registry.": "O servidor com o qual esta janela foi aberta foi removido do seu registro.", @@ -465,14 +520,17 @@ "This will permanently delete the session and all its messages.": "Isso excluirá permanentemente a sessão e todas as suas mensagens.", "Timeout: %llds (%@)": "Tempo limite: %1$lld s (%2$@)", "Timeouts": "Tempos limite", + "Tirith Sandbox": "Sandbox Tirith", "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "Para pular a solicitação de frase secreta a cada reinicialização, adicione `--apple-use-keychain` para armazená-la no Keychain do macOS.", "Toggle text-to-speech (/voice tts)": "Alternar texto-para-fala (/voice tts)", "Toggle voice mode (/voice)": "Alternar modo de voz (/voice)", "Token on disk. Clear to re-authenticate next time the gateway connects.": "Token no disco. Limpe para reautenticar na próxima vez que o gateway conectar.", "Tool Approval Required": "Aprovação de ferramenta necessária", "Tool Filters": "Filtros de ferramentas", + "Tool Progress": "Progresso da ferramenta", "Tools": "Ferramentas", "Top Tools": "Principais ferramentas", + "Turns & Reasoning": "Turnos e raciocínio", "Uninstall": "Desinstalar", "Unknown: %@": "Desconhecido: %@", "Update": "Atualizar", @@ -489,14 +547,21 @@ "Used as the YAML key. Lowercase, no spaces.": "Usado como chave YAML. Minúsculas, sem espaços.", "View": "Ver", "View All": "Ver tudo", + "Vision": "Visão", + "Voice": "Voz", "Voice Off": "Voz desligada", "Voice On": "Voz ligada", "Waiting for authorization URL…": "Aguardando URL de autorização…", "Waiting for first probe": "Aguardando primeira verificação", "Waiting for hermes to prompt for the code…": "Aguardando o hermes solicitar o código…", + "Web Extract": "Extração da Web", + "Webhook (advanced)": "Webhook (avançado)", + "Webhook (hermes side)": "Webhook (lado hermes)", + "Webhook Security": "Segurança de webhook", "Webhook platform not enabled": "Plataforma de webhook não ativada", "Webhooks": "Webhooks", "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhooks permitem que serviços externos disparem respostas do agente. Cada assinatura tem seu próprio endpoint de URL.", + "Website Blocklist": "Lista de bloqueio de sites", "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "O WhatsApp usa a biblioteca Baileys para emular uma sessão do WhatsApp Web. Pareie este Mac como dispositivo vinculado executando o assistente de pareamento e escaneando o QR code com seu telefone (Ajustes → Dispositivos vinculados → Vincular um dispositivo).", "Working": "Trabalhando", "e.g. anthropic": "ex: anthropic", diff --git a/tools/translations/zh-Hans.json b/tools/translations/zh-Hans.json index 1690fbe..f90c66a 100644 --- a/tools/translations/zh-Hans.json +++ b/tools/translations/zh-Hans.json @@ -20,11 +20,14 @@ "%lld tools": "%lld 个工具", "30 Days": "30 天", "7 Days": "7 天", + "90 Days": "90 天", "A QR code will appear below. Scan it with WhatsApp on your phone. The session is saved to ~/.hermes/platforms/whatsapp/ so you won't need to scan again after restarts.": "二维码将在下方显示。用手机上的 WhatsApp 扫描。会话保存在 ~/.hermes/platforms/whatsapp/,重启后无需再次扫描。", "API Key": "API 密钥", "API keys are never displayed in full. Scarf only shows the last 4 characters for identification. Full key values are stored by hermes in ~/.hermes/auth.json.": "API 密钥永远不会完整显示。Scarf 仅显示后 4 位用于识别。完整密钥由 hermes 存储在 ~/.hermes/auth.json。", + "Access Control": "访问控制", "Actions": "操作", "Active": "活跃", + "Active Personality": "活跃人格", "Active profile": "当前配置", "Activity": "活动", "Activity Patterns": "活动模式", @@ -42,6 +45,7 @@ "Add from Preset": "从预设添加", "Add rotation credentials so hermes can failover between keys when one hits rate limits.": "添加轮换凭证,以便 hermes 在某个密钥达到速率限制时能切换到其他密钥。", "Add your first command": "添加第一个命令", + "Advanced": "高级", "After approving in your browser, the provider shows a code. Paste it below and submit.": "在浏览器中批准后,提供方会显示一个代码。将其粘贴到下方并提交。", "Agent": "Agent", "All": "全部", @@ -49,25 +53,34 @@ "All Sessions": "所有会话", "All Time": "全部时间", "All installed hub skills are up to date.": "所有已安装的 Hub 技能均为最新。", + "App Credentials": "应用凭证", + "Approval": "审批", + "Approvals": "审批", "Approve": "批准", "Archive": "归档", "Args (one per line)": "参数(每行一个)", "Arguments": "参数", "Assistant Message": "助手消息", "Auth": "认证", + "Authentication": "认证", "Authentication uses ssh-agent": "使用 ssh-agent 进行认证", "Authorization Code": "授权码", "Authorization URL": "授权 URL", + "Aux Models": "辅助模型", "Auxiliary tasks use separate, typically cheaper models. Leave Provider as `auto` to inherit the main provider.": "辅助任务使用独立的、通常更便宜的模型。将 Provider 保持为 `auto` 以继承主提供方。", "Back": "返回", "Back to Catalog": "返回目录", + "Backend": "后端", + "Backup & Restore": "备份与恢复", "Backup Now": "立即备份", "Becomes the key under mcp_servers: in config.yaml.": "将作为 config.yaml 中 mcp_servers: 下的键。", + "Behavior": "行为", "Browse": "浏览", "Browse Hub": "浏览 Hub", "Browse the Hub": "浏览 Hub", "Browse...": "浏览...", "Browser": "浏览器", + "Built-in Memory": "内置记忆", "By Day": "按天", "By Hour": "按小时", "Call timeout": "调用超时", @@ -81,6 +94,7 @@ "Check for Updates": "检查更新", "Check for Updates…": "检查更新…", "Checking…": "检查中…", + "Checkpoints": "检查点", "Choose a cron job from the list": "从列表中选择一个定时任务", "Choose a profile to inspect.": "选择一个配置进行查看。", "Choose a project from the sidebar to view its dashboard.": "从侧边栏选择项目以查看其仪表盘。", @@ -98,16 +112,21 @@ "Close Window": "关闭窗口", "Code: %@": "代码:%@", "Command": "命令", + "Command Allowlist": "命令白名单", "Command looks destructive. Double-check before saving.": "该命令看起来具有破坏性。保存前请仔细确认。", "Component": "组件", "Compress": "压缩", "Compress Conversation": "压缩对话", "Compress conversation (/compress)": "压缩对话 (/compress)", + "Compression": "压缩", + "Config Diagnostics": "配置诊断", "Configure": "配置", "Connect timeout": "连接超时", "Connected": "已连接", "Connected — can't read Hermes state": "已连接 — 无法读取 Hermes 状态", "Connection": "连接", + "Container Limits": "容器限制", + "Context & Compression": "上下文与压缩", "Continue Last Session": "继续上次会话", "Copied": "已复制", "Copy": "复制", @@ -132,21 +151,26 @@ "Cron Jobs": "定时任务", "Current: %@": "当前:%@", "Custom…": "自定义…", + "Daemon Endpoint": "守护进程端点", "Daemon running": "守护进程运行中", "Dashboard": "仪表盘", "Default": "默认", "Default: ~/.hermes": "默认:~/.hermes", "Defaults to ~/.ssh/config or current user": "默认使用 ~/.ssh/config 或当前用户", + "Defined Personalities": "已定义人格", + "Delegation": "委派", "Delete": "删除", "Delete %@?": "删除 %@?", "Delete Session?": "删除会话?", "Delete profile '%@'?": "删除配置 '%@'?", "Delete...": "删除...", "Deliver: %@": "投递:%@", + "Details": "详情", "Diagnostic Output": "诊断输出", "Diagnostics": "诊断", "Disable": "禁用", "Disabled": "已禁用", + "Display": "显示", "Docs": "文档", "Done": "完成", "Edit": "编辑", @@ -160,10 +184,13 @@ "Enable 2FA on your email account and generate an app password. Regular account passwords will fail. Always set allowed senders — otherwise anyone knowing the address can message the agent.": "为你的邮箱账户启用双重验证并生成应用专用密码。普通账户密码将无法使用。务必设置允许的发件人 — 否则任何知道邮件地址的人都可以向 agent 发消息。", "Enable the webhook platform to accept event-driven agent triggers. The HMAC secret is used as a fallback when individual routes don't provide their own.": "启用 webhook 平台以接受事件驱动的 agent 触发。当单独的路由未提供自己的密钥时,使用 HMAC 密钥作为回退。", "Enabled": "已启用", + "End-to-End Encryption (experimental)": "端到端加密(实验性)", + "Entity Filters (config.yaml only)": "实体过滤器(仅限 config.yaml)", "Env vars, headers, and tool filters can be edited after the server is added.": "添加服务器后可以编辑环境变量、请求头和工具过滤器。", "Environment Variables": "环境变量", "Error": "错误", "Errors": "错误", + "Event Filters": "事件过滤器", "Exclude": "排除", "Execute": "执行", "Expected at %@": "预期位于 %@", @@ -172,18 +199,23 @@ "Export…": "导出…", "Expose prompts": "暴露提示", "Expose resources": "暴露资源", + "External Provider": "外部提供方", + "Feedback": "反馈", "Fetch": "拉取", "Files": "文件", "Filter logs...": "筛选日志...", "Filter servers...": "筛选服务器...", "Filter skills...": "筛选技能...", "Filter to session %@": "筛选到会话 %@", + "Flush Memories": "清空记忆", "Focus topic (optional)": "聚焦主题(可选)", "Full copy of active profile (all state)": "当前配置的完整副本(所有状态)", "Gateway": "Gateway", "Gateway Running": "Gateway 运行中", "Gateway Stopped": "Gateway 已停止", "Gateway restart required": "需要重启 Gateway", + "General": "常规", + "Global Settings": "全局设置", "Header": "请求头", "Headers": "请求头", "Health": "健康", @@ -195,7 +227,10 @@ "Hide": "隐藏", "Hide Output": "隐藏输出", "Hide details": "隐藏详情", + "Home Channel": "主频道", + "Homeserver": "主服务器", "Host key changed": "主机密钥已变更", + "Human Delay": "人类延迟", "ID: %@": "ID:%@", "If this is the first connection, ensure your key is loaded with `ssh-add` and that the remote accepts it.": "如果这是首次连接,请确保已通过 `ssh-add` 加载你的密钥,并且远端接受该密钥。", "If you trust the change, remove the stale entry and reconnect:": "如果你信任此变更,请移除过期条目并重新连接:", @@ -217,6 +252,7 @@ "Last probe: %@": "上次探测:%@", "Last run: %@": "上次运行:%@", "Last updated: %@": "最后更新:%@", + "Layout": "布局", "Leave blank to infer from the model ID's prefix (\"openai/...\" → openai).": "留空则从模型 ID 的前缀推断(\"openai/...\" → openai)。", "Leave blank unless Hermes is installed at a non-default path (systemd services often live at /var/lib/hermes/.hermes; Docker sidecars vary). Test Connection auto-suggests a value when it detects one of the known alternates.": "除非 Hermes 安装在非默认路径,否则请留空(systemd 服务通常在 /var/lib/hermes/.hermes,Docker sidecar 则各不相同)。检测到已知替代路径时,测试连接会自动建议值。", "Level": "级别", @@ -227,7 +263,9 @@ "Loading session…": "正在加载会话…", "Local": "本地", "Local (stdio)": "本地 (stdio)", + "Locale": "区域", "Log File": "日志文件", + "Logging": "日志", "Logs": "日志", "MCP Servers": "MCP 服务器", "MCP Servers (%lld)": "MCP 服务器 (%lld)", @@ -241,11 +279,14 @@ "Messages will appear here as the conversation progresses.": "消息将随对话进行显示在此处。", "Migrate": "迁移", "Missing required config:": "缺少必需的配置:", + "Modal": "模态", + "Model": "模型", "Model ID": "模型 ID", "Models": "模型", "Monitor": "监控", "Name": "名称", "Name (no leading slash)": "名称(不带前导斜杠)", + "Network": "网络", "New Session": "新建会话", "New Webhook Subscription": "新建 Webhook 订阅", "New name for '%@'": "'%@' 的新名称", @@ -283,6 +324,7 @@ "None": "无", "Notable Sessions": "重要会话", "OAuth login for %@": "%@ 的 OAuth 登录", + "OK": "确定", "Open BotFather": "打开 BotFather", "Open Developer Portal": "打开开发者门户", "Open Local": "打开本地", @@ -294,6 +336,7 @@ "Open in Editor": "在编辑器中打开", "Open in new window": "在新窗口中打开", "Open session": "打开会话", + "Optional": "可选", "Optional — defaults to hostname": "可选 — 默认为主机名", "Optionally focus the summary on a specific topic. Leave blank to compress evenly.": "可选地将摘要聚焦到特定主题。留空则均匀压缩。", "Other": "其他", @@ -304,11 +347,13 @@ "Pair Device": "配对设备", "Paired Users": "已配对用户", "Paste code here…": "在此粘贴代码…", + "Paths": "路径", "Pause": "暂停", "Pending Approvals": "待批准", "Per-route subscriptions (events, prompt template, delivery target) are managed in the Webhooks sidebar — not here. This panel only controls whether the webhook platform is listening at all.": "按路由的订阅(事件、提示模板、投递目标)在 Webhooks 侧边栏中管理 — 不在此处。本面板仅控制 webhook 平台是否监听。", "Period": "周期", "Personalities": "人格", + "Personality": "人格", "Pick an MCP server to add.": "选择要添加的 MCP 服务器。", "Pick one from the list, or add a new server from the toolbar.": "从列表中选择,或从工具栏添加新服务器。", "Platforms": "平台", @@ -327,6 +372,7 @@ "Provider": "提供方", "Push to Talk": "按住说话", "Push to talk (Ctrl+B)": "按住说话 (Ctrl+B)", + "Push-to-Talk": "按住说话", "Quick Commands": "快捷命令", "Quick commands are shell shortcuts hermes exposes in chat as `/command_name`. They live under `quick_commands:` in config.yaml.": "快捷命令是 hermes 在聊天中以 `/command_name` 形式暴露的 shell 快捷方式。它们位于 config.yaml 的 `quick_commands:` 下。", "Quit Scarf": "退出 Scarf", @@ -338,6 +384,7 @@ "Recent Sessions": "最近会话", "Reconnect": "重新连接", "Recording…": "录制中…", + "Redaction": "脱敏", "Refresh": "刷新", "Reload": "重新加载", "Remote (HTTP)": "远程 (HTTP)", @@ -353,6 +400,8 @@ "Rename Profile": "重命名配置", "Rename Session": "重命名会话", "Rename...": "重命名...", + "Required": "必需", + "Required Tokens": "必需令牌", "Requires: %@": "需要:%@", "Reset Cooldowns": "重置冷却", "Restart": "重启", @@ -391,6 +440,7 @@ "Search or browse skills published to registries like skills.sh, GitHub, and the official hub.": "搜索或浏览发布到 skills.sh、GitHub 和官方 Hub 等注册表的技能。", "Search registries": "搜索注册表", "Search…": "搜索…", + "Security": "安全", "Select": "选择", "Select Model": "选择模型", "Select a Job": "选择任务", @@ -402,12 +452,14 @@ "Select an MCP Server": "选择 MCP 服务器", "Send message (Enter)": "发送消息 (Enter)", "Series": "系列", + "Server": "服务器", "Server No Longer Exists": "服务器已不存在", "Server name": "服务器名称", "Servers": "服务器", "Service": "服务", "Service definition stale": "服务定义已过期", "Session": "会话", + "Session Search": "会话搜索", "Session title": "会话标题", "Sessions": "会话", "Settings": "设置", @@ -424,7 +476,9 @@ "Site": "站点", "Skills": "技能", "Skills (%lld)": "技能 (%lld)", + "Skills Hub": "技能 Hub", "Source": "来源", + "Speech-to-Text": "语音转文字", "Start": "启动", "Start Daemon": "启动守护进程", "Start Hermes": "启动 Hermes", @@ -449,6 +503,7 @@ "Test Connection": "测试连接", "Test failed": "测试失败", "Test passed": "测试通过", + "Text-to-Speech": "文字转语音", "The agent hasn't advertised any slash commands yet. Keep typing to send as a message, or press Esc.": "agent 尚未公布任何斜杠命令。继续输入作为消息发送,或按 Esc。", "The remote's SSH fingerprint no longer matches what your `~/.ssh/known_hosts` file expected. This usually means the remote was reinstalled — or, less commonly, that someone is intercepting the connection.": "远端的 SSH 指纹与你 `~/.ssh/known_hosts` 文件中预期的不再匹配。这通常意味着远端已重装 — 较少见的情况是有人在拦截连接。", "The server this window was opened with has been removed from your registry.": "打开此窗口所用的服务器已从你的注册表中移除。", @@ -465,14 +520,17 @@ "This will permanently delete the session and all its messages.": "这将永久删除该会话及其所有消息。", "Timeout: %llds (%@)": "超时:%1$lld 秒 (%2$@)", "Timeouts": "超时", + "Tirith Sandbox": "Tirith 沙箱", "To skip the passphrase prompt at every reboot, add `--apple-use-keychain` to cache it in macOS Keychain.": "要跳过每次重启时的密码短语提示,添加 `--apple-use-keychain` 以将其缓存到 macOS Keychain 中。", "Toggle text-to-speech (/voice tts)": "切换文字转语音 (/voice tts)", "Toggle voice mode (/voice)": "切换语音模式 (/voice)", "Token on disk. Clear to re-authenticate next time the gateway connects.": "令牌已保存到磁盘。清除后,gateway 下次连接时将重新认证。", "Tool Approval Required": "需要工具批准", "Tool Filters": "工具过滤器", + "Tool Progress": "工具进度", "Tools": "工具", "Top Tools": "常用工具", + "Turns & Reasoning": "轮次与推理", "Uninstall": "卸载", "Unknown: %@": "未知:%@", "Update": "更新", @@ -489,14 +547,21 @@ "Used as the YAML key. Lowercase, no spaces.": "用作 YAML 键。小写,不含空格。", "View": "查看", "View All": "查看全部", + "Vision": "视觉", + "Voice": "语音", "Voice Off": "语音关", "Voice On": "语音开", "Waiting for authorization URL…": "等待授权 URL…", "Waiting for first probe": "等待首次探测", "Waiting for hermes to prompt for the code…": "等待 hermes 提示输入代码…", + "Web Extract": "网页提取", + "Webhook (advanced)": "Webhook(高级)", + "Webhook (hermes side)": "Webhook(hermes 侧)", + "Webhook Security": "Webhook 安全", "Webhook platform not enabled": "未启用 webhook 平台", "Webhooks": "Webhooks", "Webhooks let external services trigger agent responses. Each subscription gets its own URL endpoint.": "Webhooks 允许外部服务触发 agent 响应。每个订阅都有自己的 URL 端点。", + "Website Blocklist": "网站黑名单", "WhatsApp uses the Baileys library to emulate a WhatsApp Web session. Pair this Mac as a linked device by running the pairing wizard and scanning the QR code with your phone (Settings → Linked Devices → Link a Device).": "WhatsApp 使用 Baileys 库模拟 WhatsApp Web 会话。通过运行配对向导并用手机扫描二维码,将此 Mac 配对为关联设备(设置 → 关联设备 → 关联一台设备)。", "Working": "工作中", "e.g. anthropic": "例如 anthropic",