* Add i18n framework with next-intl for 19 languages
Set up complete internationalization infrastructure:
- Install next-intl v4 with App Router support
- Create i18n config (routing, request, navigation)
- Add middleware for automatic locale detection from Accept-Language
- Restructure all routes under app/[locale]/
- Extract UI strings to messages/en.json
- Update all components to use useTranslations()
- Add language switcher dropdown in footer
- Support RTL for Arabic and Khmer
- Update sitemap with locale alternates
- Add generateStaticParams for all 19 locales
Languages: en, ja, zh-CN, zh-TW, ko, de, es, fr, it, da, pl, ru, bs, ar, no, pt-BR, th, tr, km
Locale detection: auto-detect from browser Accept-Language header,
with cookie persistence and locale prefix only for non-default (en).
* Add translations for de, fr, it, ja, zh-CN, zh-TW
* Add translations for ar, bs, da, es, km, no, pl, pt-BR, ru, th, tr
* Convert docs and legal pages to use useTranslations()
* Add i18n to keyboard shortcuts component
* Add i18n to wall-of-love, add missing blog posts to sitemap
* Add keyboard shortcuts and wallOfLove translations to all locales
* Update bun lockfile for next-intl dependency
* Fix t.rich() configPath: pass ReactNode not function for {var} interpolation
* Fix configPath: use rich text tag instead of plain interpolation for ReactNode
* Fix t.rich() interpolation: use rich text tags for all ReactNode placeholders
Changed {legacy}, {openShortcut}, {jumpShortcut} from plain variable
interpolation to <tag>content</tag> format so t.rich() gets proper
functions instead of values.
* Escape ICU curly braces in socketCallout rich text across all locales
* Fix i18n issues: Khmer RTL, zh-CN quality, locale-aware testimonials, hardcoded strings
- Fix Khmer (km) incorrectly marked as RTL (it's LTR, only Arabic is RTL)
- Fix zh-CN/zh-TW taglinePrefix to mention terminals and open source
- Add locale-aware testimonial translations: show original text, translate
for non-matching locales, skip translation when locale matches original
- Translate hardcoded English table content in notifications page
- Add testimonial translations to all 19 locale files
- Remove unused setRequestLocale import and params from home page
* Address PR review comments: metadata localization, blog fixes, legal pages, accessibility
- Convert hardcoded metadata to generateMetadata with getTranslations on all docs, blog, community, and wall-of-love pages
- Fix blog canonical/OG URLs to be locale-aware
- Fix introducing-cmux .split(": ") by using separate label/desc translation keys
- Revert legal page titles to English (legal content stays English-only)
- Add focus-visible ring to language switcher for keyboard accessibility
- Preserve query string and hash when switching locale
- Convert site-footer to server component (remove unnecessary "use client")
- Remove .toLowerCase() on translated text in community page
- Add /docs/browser-automation and /wall-of-love to sitemap
- Fix keyboard-shortcuts jump link visibility with trimmed query
- Deduplicate blogSlugs by importing from blog-posts.ts
- Add typingCodingAgents/typingMultitasking translation keys to all locales
- Fix Spanish accent/tilde issues in es.json testimonials
- Fix nested <a> tag in homepage keyboard shortcuts feature
- Remove unused setRequestLocale import from homepage
* Convert remaining layout/index metadata to generateMetadata
- Root layout: locale-aware title, description, OG, and Twitter card metadata
- Docs layout: translated title template
- Blog layout: translated title template
- Blog index: locale-aware metadata
* Add translated metadata keys to all locales, fix docs redirect
- Add meta.title/description/ogDescription to all 18 non-English locales
- Add docs.layoutTitle, blog.layoutTitle/metaTitle/metaDescription to all locales
- Add blog post metadata (zenOfCmux, cmdShiftU, showHnLaunch, introducingCmux) to all locales
- Add community.metaTitle/metaDescription to all locales
- Fix docs index redirect to preserve locale prefix
* Add translated docs page metaTitle keys to all locales
587 lines
42 KiB
JSON
587 lines
42 KiB
JSON
{
|
||
"meta": {
|
||
"title": "cmux — Das Terminal für Multitasking",
|
||
"description": "Nativer macOS-Terminal auf Basis von Ghostty. Funktioniert mit Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider und jedem CLI-Tool. Vertikale Tabs, Benachrichtigungsringe, geteilte Fenster und eine Socket-API.",
|
||
"ogDescription": "Nativer macOS-Terminal für KI-Coding-Agenten. Funktioniert mit Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider und jedem CLI-Tool."
|
||
},
|
||
"common": {
|
||
"downloadForMac": "Für Mac herunterladen",
|
||
"viewOnGitHub": "Auf GitHub ansehen",
|
||
"closeMenu": "Menü schließen",
|
||
"openMenu": "Menü öffnen",
|
||
"toggleTheme": "Design wechseln",
|
||
"backToBlog": "Zurück zum Blog",
|
||
"readTheDocs": "Dokumentation lesen",
|
||
"viewChangelog": "Changelog ansehen"
|
||
},
|
||
"nav": {
|
||
"docs": "Dokumentation",
|
||
"blog": "Blog",
|
||
"changelog": "Changelog",
|
||
"community": "Community",
|
||
"github": "GitHub"
|
||
},
|
||
"footer": {
|
||
"product": "Produkt",
|
||
"resources": "Ressourcen",
|
||
"legal": "Rechtliches",
|
||
"social": "Soziale Medien",
|
||
"blog": "Blog",
|
||
"community": "Community",
|
||
"docs": "Dokumentation",
|
||
"changelog": "Changelog",
|
||
"privacy": "Datenschutz",
|
||
"terms": "Nutzungsbedingungen",
|
||
"eula": "EULA",
|
||
"github": "GitHub",
|
||
"twitter": "X / Twitter",
|
||
"discord": "Discord",
|
||
"contact": "Kontakt",
|
||
"copyright": "© {year} Manaflow",
|
||
"language": "Sprache"
|
||
},
|
||
"home": {
|
||
"taglinePrefix": "Das Terminal für ",
|
||
"typingCodingAgents": "Coding-Agenten",
|
||
"typingMultitasking": "Multitasking",
|
||
"subtitle": "Native macOS-App auf Basis von Ghostty. Vertikale Tabs, Benachrichtigungsringe wenn Agenten Aufmerksamkeit benötigen, geteilte Bereiche und eine Socket-API für Automatisierung.",
|
||
"features": "Funktionen",
|
||
"faq": "FAQ",
|
||
"communitySection": "Community",
|
||
"feature": {
|
||
"verticalTabs": "Vertikale Tabs",
|
||
"verticalTabsDesc": ": Die Seitenleiste zeigt Git-Branch, Arbeitsverzeichnis, Ports und Benachrichtigungstext",
|
||
"notificationRings": "Benachrichtigungsringe",
|
||
"notificationRingsDesc": ": Bereiche leuchten auf, wenn Agenten Aufmerksamkeit benötigen",
|
||
"inAppBrowser": "Integrierter Browser",
|
||
"inAppBrowserDesc": ": Teilen Sie einen Browser neben Ihrem Terminal mit einer skriptfähigen API",
|
||
"splitPanes": "Geteilte Bereiche",
|
||
"splitPanesDesc": ": Horizontale und vertikale Teilungen innerhalb jedes Tabs",
|
||
"scriptable": "Skriptfähig",
|
||
"scriptableDesc": ": CLI und Socket-API für Automatisierung und Scripting",
|
||
"gpuAccelerated": "GPU-beschleunigt",
|
||
"gpuAcceleratedDesc": ": Angetrieben von libghostty für flüssiges Rendering",
|
||
"lightweight": "Leichtgewichtig",
|
||
"lightweightDesc": ": Natives Swift + AppKit, kein Electron",
|
||
"keyboardShortcuts": "Tastaturkürzel",
|
||
"keyboardShortcutsDesc": ": <link>Umfangreiche Tastaturkürzel</link> für Workspaces, Splits, Browser und mehr"
|
||
},
|
||
"faqGhosttyQ": "Wie steht cmux in Beziehung zu Ghostty?",
|
||
"faqGhosttyA": "cmux ist kein Fork von Ghostty. Es verwendet <link>libghostty</link> als Bibliothek für Terminal-Rendering, ähnlich wie Apps WebKit für Webansichten verwenden. Ghostty ist ein eigenständiges Terminal; cmux ist eine andere App, die auf dessen Rendering-Engine aufbaut.",
|
||
"faqPlatformQ": "Welche Plattformen werden unterstützt?",
|
||
"faqPlatformA": "Derzeit nur macOS. cmux ist eine native Swift + AppKit App.",
|
||
"faqAgentsQ": "Mit welchen Coding-Agenten funktioniert cmux?",
|
||
"faqAgentsA": "Mit allen. cmux ist ein Terminal, daher funktioniert jeder Agent, der in einem Terminal läuft, sofort: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent und alles andere, was Sie über die Kommandozeile starten können.",
|
||
"faqNotificationsQ": "Wie funktionieren Benachrichtigungen?",
|
||
"faqNotificationsA": "Wenn ein Prozess Aufmerksamkeit benötigt, zeigt cmux Benachrichtigungsringe um Bereiche, Ungelesen-Badges in der Seitenleiste, ein Benachrichtigungs-Popover und eine macOS-Desktopbenachrichtigung. Diese werden automatisch über Standard-Terminal-Escape-Sequenzen (OSC 9/99/777) ausgelöst, oder Sie können sie mit der <cliLink>cmux CLI</cliLink> und <hooksLink>Claude Code Hooks</hooksLink> auslösen.",
|
||
"faqShortcutsQ": "Kann ich Tastaturkürzel anpassen?",
|
||
"faqShortcutsA": "Terminal-Tastenbelegungen werden aus Ihrer Ghostty-Konfigurationsdatei (<configPath>~/.config/ghostty/config</configPath>) gelesen. cmux-spezifische Kürzel (Workspaces, Splits, Browser, Benachrichtigungen) können in den Einstellungen angepasst werden. Siehe die <link>Standard-Tastaturkürzel</link> für eine vollständige Liste.",
|
||
"faqTmuxQ": "Wie vergleicht es sich mit tmux?",
|
||
"faqTmuxA": "tmux ist ein Terminal-Multiplexer, der in jedem Terminal läuft. cmux ist eine native macOS-App mit einer grafischen Oberfläche: Vertikale Tabs, geteilte Bereiche, ein eingebetteter Browser und eine Socket-API sind bereits integriert. Keine Konfigurationsdateien oder Präfix-Tasten nötig.",
|
||
"faqFreeQ": "Ist cmux kostenlos?",
|
||
"faqFreeA": "Ja, cmux ist kostenlos nutzbar. Der Quellcode ist auf <link>GitHub</link> verfügbar."
|
||
},
|
||
"community": {
|
||
"title": "Community",
|
||
"description": "Verbinden Sie sich mit anderen cmux-Nutzern und dem Team dahinter.",
|
||
"discord": "Discord",
|
||
"discordAction": "Unserem Discord beitreten",
|
||
"discordDesc": "Chatten Sie mit der Community, erhalten Sie Hilfe und teilen Sie Feedback",
|
||
"githubAction": "Auf GitHub ansehen",
|
||
"githubDesc": "Repo mit Stern markieren, Probleme melden und beitragen",
|
||
"twitter": "Twitter",
|
||
"twitterAction": "Auf X folgen",
|
||
"twitterDesc": "Updates, Ankündigungen und Tipps",
|
||
"youtube": "YouTube",
|
||
"youtubeAction": "Abonnieren",
|
||
"youtubeDesc": "Demos, Tutorials und Anleitungen",
|
||
"linkedin": "LinkedIn",
|
||
"linkedinAction": "Folgen Sie uns",
|
||
"linkedinDesc": "Unternehmensnachrichten und Engineering-Updates",
|
||
"metaTitle": "Community — cmux",
|
||
"metaDescription": "Werde Teil der cmux-Community auf Discord, Twitter, GitHub und mehr"
|
||
},
|
||
"blog": {
|
||
"title": "Blog",
|
||
"layoutTitle": "cmux blog",
|
||
"metaTitle": "Blog",
|
||
"metaDescription": "Neuigkeiten und Updates vom cmux-Team",
|
||
"description": "Neuigkeiten und Updates vom cmux-Team",
|
||
"posts": {
|
||
"cmdShiftU": {
|
||
"title": "Cmd+Shift+U",
|
||
"summary": "Wie Cmd+Shift+U zwischen fertigen Agenten über Workspaces hinweg in cmux navigiert.",
|
||
"date": "4. März 2026",
|
||
"p1": "Meine Lieblingsfunktion in cmux ist Cmd+Shift+U. Ich habe gerade 17 Workspaces offen, in denen jeweils ein Agent läuft. Früher habe ich mich durch Tabs und das Benachrichtigungspanel geklickt, um herauszufinden, was fertig ist. Tippen ist schneller.",
|
||
"p2": "Cmd+Shift+U springt zur neuesten ungelesenen <link>Benachrichtigung</link>. In der Praxis bedeutet das der letzte Agent, der fertig wurde. Es wechselt zum richtigen Workspace, fokussiert den genauen Bereich, lässt ihn aufblitzen, damit Sie sehen, wo Sie hinschauen müssen, und markiert ihn als gelesen. Wenn die Benachrichtigung aus einem anderen Fenster kam, kommt dieses Fenster nach vorne."
|
||
},
|
||
"zenOfCmux": {
|
||
"title": "The Zen of cmux",
|
||
"summary": "cmux ist ein Grundbaustein, keine Lösung. Es gibt Ihnen zusammensetzbare Teile, und Ihr Workflow liegt bei Ihnen.",
|
||
"date": "27. Februar 2026",
|
||
"p1": "cmux schreibt Entwicklern nicht vor, wie sie ihre Werkzeuge nutzen sollen. Es ist ein Terminal und Browser mit einer CLI, und der Rest liegt bei Ihnen.",
|
||
"p2": "cmux ist ein Grundbaustein, keine Lösung. Es bietet Ihnen ein Terminal, einen Browser, Benachrichtigungen, Workspaces, Splits, Tabs und eine CLI, um alles zu steuern. cmux zwingt Sie nicht in eine vorgegebene Art, Coding-Agenten zu nutzen. Was Sie mit den Grundbausteinen erstellen, ist Ihnen überlassen.",
|
||
"p3": "Die besten Entwickler haben schon immer ihre eigenen Werkzeuge gebaut. Niemand hat bisher den besten Weg gefunden, mit Agenten zu arbeiten, und die Teams hinter geschlossenen Produkten schon gar nicht. Die Entwickler, die ihren eigenen Codebasen am nächsten sind, werden es zuerst herausfinden.",
|
||
"p4": "Geben Sie einer Million Entwickler zusammensetzbare Grundbausteine, und sie werden gemeinsam die effizientesten Workflows schneller finden, als jedes Produktteam sie von oben herab entwerfen könnte."
|
||
},
|
||
"showHnLaunch": {
|
||
"title": "cmux-Launch auf Show HN",
|
||
"summary": "cmux erreichte Platz #2 auf Hacker News, wurde von Mitchell Hashimoto geteilt und ging in Japan viral.",
|
||
"date": "21. Februar 2026",
|
||
"intro": "Wir haben cmux am 19. Februar auf <link>Show HN</link> gepostet:",
|
||
"blockquote1": "Ich führe viele Claude Code und Codex Sessions parallel aus. Ich habe Ghostty mit einer Menge geteilter Bereiche verwendet und mich auf native macOS-Benachrichtigungen verlassen, um zu wissen, wann ein Agent mich braucht. Aber der Benachrichtigungstext von Claude Code lautet immer nur \"Claude is waiting for your input\" ohne Kontext, und bei genügend offenen Tabs konnte ich nicht einmal mehr die Titel lesen.",
|
||
"blockquote2": "Ich habe einige Coding-Orchestratoren ausprobiert, aber die meisten waren Electron/Tauri-Apps und die Performance hat mich gestört. Ich bevorzuge auch einfach das Terminal, da GUI-Orchestratoren einen in ihren Workflow einschließen. Also habe ich cmux als native macOS-App in Swift/AppKit gebaut. Es verwendet libghostty für Terminal-Rendering und liest Ihre bestehende Ghostty-Konfiguration für Themes, Schriftarten, Farben und mehr.",
|
||
"blockquote3": "Die wichtigsten Ergänzungen sind die Seitenleiste und das Benachrichtigungssystem. Die Seitenleiste hat vertikale Tabs, die Git-Branch, Arbeitsverzeichnis, lauschende Ports und den letzten Benachrichtigungstext für jeden Workspace anzeigen. Das Benachrichtigungssystem erfasst Terminal-Sequenzen (OSC 9/99/777) und hat eine CLI (cmux notify), die Sie in Agent-Hooks für Claude Code, OpenCode usw. einbinden können. Wenn ein Agent wartet, bekommt sein Bereich einen blauen Ring und der Tab leuchtet in der Seitenleiste auf, damit ich über Splits und Tabs hinweg sehen kann, welcher mich braucht. Cmd+Shift+U springt zum neuesten Ungelesenen.",
|
||
"blockquote4": "Der integrierte Browser hat eine skriptfähige API. Agenten können den Accessibility-Tree aufnehmen, Element-Referenzen erhalten, klicken, Formulare ausfüllen, JS ausführen und Konsolenprotokolle lesen. Sie können einen Browser-Bereich neben Ihrem Terminal aufteilen und Claude Code direkt mit Ihrem Dev-Server interagieren lassen.",
|
||
"blockquote5": "Alles ist skriptfähig über die CLI und Socket-API: Workspaces/Tabs erstellen, Bereiche teilen, Tastatureingaben senden, URLs im Browser öffnen.",
|
||
"hitNumber2": "In der Spitze erreichte es Platz #2 auf Hacker News. Mitchell Hashimoto hat es geteilt:",
|
||
"favoriteComment": "Mein Lieblingskommentar aus dem <link>HN-Thread</link>:",
|
||
"viralJapan": "Überraschenderweise ging cmux in Japan viral:",
|
||
"translation": "Übersetzung: \"Das sieht gut aus. Eine Ghostty-basierte Terminal-App, die dafür entwickelt wurde, dass man den Überblick nicht verliert, wenn man mehrere CLIs wie Claude Code parallel betreibt. Der Bereich, der auf Eingabe wartet, bekommt einen blauen Rahmen, und es hat sein eigenes Benachrichtigungssystem.\"",
|
||
"viralChina": "Und semi-viral in China:",
|
||
"extensions": "Eine weitere aufregende Sache war zu sehen, wie Leute auf der cmux CLI aufbauen. sasha hat eine pi-cmux-Erweiterung gebaut, die Modellinformationen, Token-Verbrauch und Agenten-Status in der Seitenleiste anzeigt:",
|
||
"scriptable": "Alles in cmux ist über die CLI skriptfähig: Workspaces erstellen, Tastatureingaben senden, den Browser steuern, Benachrichtigungen lesen. Ein Teil der cmux-Philosophie ist, programmierbar und zusammensetzbar zu sein, damit Menschen die Art anpassen können, wie sie mit Coding-Agenten arbeiten. Der Stand der Technik bei Coding-Agenten ändert sich schnell, und Sie möchten nicht in einem unflexiblen GUI-Orchestrator gefangen sein, der nicht mithalten kann.",
|
||
"cta": "Wenn Sie mehrere Coding-Agenten betreiben, <link>probieren Sie cmux aus</link>."
|
||
},
|
||
"introducingCmux": {
|
||
"title": "Einführung von cmux",
|
||
"summary": "Ein natives macOS-Terminal auf Basis von Ghostty, entwickelt für den gleichzeitigen Betrieb mehrerer KI-Coding-Agenten.",
|
||
"date": "12. Februar 2026",
|
||
"p1": "cmux ist eine native macOS-Terminalanwendung, die auf Ghostty aufbaut und von Grund auf für Entwickler konzipiert wurde, die mehrere KI-Coding-Agenten gleichzeitig betreiben.",
|
||
"whyTitle": "Warum cmux?",
|
||
"whyP": "Moderne Entwicklungsworkflows beinhalten oft das gleichzeitige Ausführen mehrerer Agenten. Claude Code, Codex und andere Werkzeuge, jeweils in ihrem eigenen Terminal. Den Überblick zu behalten, welche Aufmerksamkeit benötigen, und schnell zwischen ihnen zu wechseln, ist das Problem, das cmux löst.",
|
||
"featuresTitle": "Hauptfunktionen",
|
||
"getStartedTitle": "Erste Schritte",
|
||
"getStartedP": "Installieren Sie cmux über Homebrew oder laden Sie die DMG aus der <link>Erste-Schritte-Anleitung</link> herunter.",
|
||
"featureVerticalTabsLabel": "Vertikale Tabs",
|
||
"featureVerticalTabsDesc": "Sehen Sie alle Ihre Terminals auf einen Blick in einer Seitenleiste",
|
||
"featureNotificationsLabel": "Benachrichtigungsringe",
|
||
"featureNotificationsDesc": "Tabs blinken, wenn ein Agent Ihre Eingabe benötigt",
|
||
"featureSplitPanesLabel": "Geteilte Bereiche",
|
||
"featureSplitPanesDesc": "Horizontale und vertikale Teilungen innerhalb jedes Workspace",
|
||
"featureSocketApiLabel": "Socket-API",
|
||
"featureSocketApiDesc": "Programmatische Steuerung zum Erstellen von Tabs und Senden von Eingaben",
|
||
"featureGpuLabel": "GPU-beschleunigt",
|
||
"featureGpuDesc": "Angetrieben von libghostty für flüssiges Rendering"
|
||
}
|
||
},
|
||
"zenOfCmux": {
|
||
"metaTitle": "Das Zen von cmux",
|
||
"metaDescription": "cmux ist ein Baustein, keine Lösung. Es gibt dir zusammensetzbare Teile und dein Workflow liegt bei dir."
|
||
},
|
||
"cmdShiftU": {
|
||
"metaTitle": "Cmd+Shift+U",
|
||
"metaDescription": "Das neue Tastenkürzel, das deine Interaktion mit cmux verändert."
|
||
},
|
||
"showHnLaunch": {
|
||
"metaTitle": "cmux auf Show HN starten",
|
||
"metaDescription": "Die Geschichte hinter dem Launch von cmux auf Hacker News."
|
||
},
|
||
"introducingCmux": {
|
||
"metaTitle": "Wir stellen cmux vor",
|
||
"metaDescription": "Warum wir cmux gebaut haben, ein neues Terminal für macOS."
|
||
}
|
||
},
|
||
"docs": {
|
||
"layoutTitle": "cmux docs",
|
||
"gettingStarted": {
|
||
"title": "Erste Schritte",
|
||
"metaDescription": "Installieren Sie cmux, das native macOS-Terminal für KI-Coding-Agenten. Homebrew, DMG-Download, CLI-Einrichtung und automatische Updates über Sparkle.",
|
||
"intro": "cmux ist ein leichtgewichtiges, natives macOS-Terminal auf Basis von Ghostty zur Verwaltung mehrerer KI-Coding-Agenten. Es bietet vertikale Tabs, ein Benachrichtigungspanel und eine socket-basierte Steuerungs-API.",
|
||
"install": "Installation",
|
||
"dmgRecommended": "DMG (empfohlen)",
|
||
"dmgDesc": "Öffnen Sie die .dmg und ziehen Sie cmux in Ihren Programme-Ordner. cmux aktualisiert sich automatisch über Sparkle, Sie müssen es also nur einmal herunterladen.",
|
||
"homebrew": "Homebrew",
|
||
"updateLater": "Später aktualisieren:",
|
||
"firstLaunchCallout": "Beim ersten Start fragt macOS möglicherweise, ob Sie eine App eines identifizierten Entwicklers öffnen möchten. Klicken Sie auf <strong>Öffnen</strong>, um fortzufahren.",
|
||
"verifyTitle": "Installation überprüfen",
|
||
"verifyDesc": "Öffnen Sie cmux und Sie sollten Folgendes sehen:",
|
||
"verifyItem1": "Ein Terminalfenster mit einer vertikalen Tab-Seitenleiste auf der linken Seite",
|
||
"verifyItem2": "Einen bereits geöffneten ersten Workspace",
|
||
"verifyItem3": "Das Ghostty-basierte Terminal bereit für Eingaben",
|
||
"cliSetup": "CLI-Einrichtung",
|
||
"cliDesc": "cmux enthält ein Kommandozeilen-Werkzeug für Automatisierung. Innerhalb von cmux-Terminals funktioniert es automatisch. Um die CLI außerhalb von cmux zu verwenden, erstellen Sie einen Symlink:",
|
||
"cliThen": "Dann können Sie Befehle wie folgt ausführen:",
|
||
"autoUpdates": "Automatische Updates",
|
||
"autoUpdatesDesc": "cmux prüft automatisch über Sparkle auf Updates. Wenn ein Update verfügbar ist, sehen Sie eine Update-Anzeige in der Titelleiste. Sie können auch manuell über cmux > Nach Updates suchen in der Menüleiste prüfen.",
|
||
"sessionRestore": "Sitzungswiederherstellung (aktuelles Verhalten)",
|
||
"sessionRestoreDesc": "Nach dem Neustart stellt cmux nur Layout und Metadaten wieder her:",
|
||
"sessionItem1": "Fenster-, Workspace- und Bereichs-Layout",
|
||
"sessionItem2": "Arbeitsverzeichnisse",
|
||
"sessionItem3": "Terminal-Scrollback (bestmöglich)",
|
||
"sessionItem4": "Browser-URL und Navigationsverlauf",
|
||
"sessionCallout": "cmux stellt noch keine laufenden Prozesse wieder her. Aktive Terminal-App-Sitzungen wie Claude Code, tmux und vim werden nach einem App-Neustart nicht fortgesetzt.",
|
||
"requirements": "Voraussetzungen",
|
||
"reqItem1": "macOS 14.0 oder neuer",
|
||
"reqItem2": "Apple Silicon oder Intel Mac",
|
||
"metaTitle": "Erste Schritte"
|
||
},
|
||
"concepts": {
|
||
"title": "Konzepte",
|
||
"metaDescription": "Wie cmux Terminals organisiert: Fenster, Workspaces, Bereiche und Oberflächen. Die Hierarchie hinter Seitenleiste, Splits und Socket-API.",
|
||
"intro": "cmux organisiert Ihre Terminals in einer vierstufigen Hierarchie. Das Verständnis dieser Ebenen hilft bei der Verwendung der Socket-API, CLI und Tastaturkürzel.",
|
||
"hierarchy": "Hierarchie",
|
||
"windowTitle": "Fenster",
|
||
"windowDesc": "Ein macOS-Fenster. Öffnen Sie mehrere Fenster mit {shortcut}. Jedes Fenster hat seine eigene Seitenleiste mit unabhängigen Workspaces.",
|
||
"workspaceTitle": "Workspace",
|
||
"workspaceDesc": "Ein Eintrag in der Seitenleiste. Jeder Workspace enthält einen oder mehrere geteilte Bereiche. Workspaces sind das, was Sie in der linken Seitenleiste aufgelistet sehen.",
|
||
"workspaceNote": "In der Benutzeroberfläche und bei Tastaturkürzeln werden Workspaces oft als \"Tabs\" bezeichnet, da sie sich wie Tabs in der Seitenleiste verhalten. Die Socket-API und Umgebungsvariablen verwenden den Begriff \"Workspace\".",
|
||
"contextHeader": "Kontext",
|
||
"termUsedHeader": "Verwendeter Begriff",
|
||
"sidebarUI": "Seitenleisten-UI",
|
||
"tab": "Tab",
|
||
"keyboardShortcuts": "Tastaturkürzel",
|
||
"workspaceOrTab": "Workspace oder Tab",
|
||
"socketAPI": "Socket-API",
|
||
"environmentVariable": "Umgebungsvariable",
|
||
"workspaceShortcuts": "Kürzel: {new} (Neu), {jump} (Springen), {close} (Schließen), {prevNext} (Vor/Zurück)",
|
||
"paneTitle": "Bereich",
|
||
"paneDesc": "Ein geteilter Bereich innerhalb eines Workspace. Erstellt durch Teilen mit {right} (rechts) oder {down} (unten). Navigieren Sie zwischen Bereichen mit {nav} + Pfeiltasten.",
|
||
"paneNote": "Jeder Bereich kann mehrere Oberflächen (Tabs innerhalb des Bereichs) enthalten.",
|
||
"surfaceTitle": "Oberfläche",
|
||
"surfaceDesc": "Ein Tab innerhalb eines Bereichs. Jeder Bereich hat seine eigene Tab-Leiste und kann mehrere Oberflächen enthalten. Erstellt mit {new}, navigiert mit {prev} / {next} oder {jump}.",
|
||
"surfaceNote": "Oberflächen sind die einzelnen Terminal- oder Browser-Sitzungen, mit denen Sie interagieren. Jede Oberfläche hat ihre eigene CMUX_SURFACE_ID Umgebungsvariable.",
|
||
"panelTitle": "Panel",
|
||
"panelDesc": "Der Inhalt innerhalb einer Oberfläche. Derzeit zwei Typen:",
|
||
"panelTerminal": "Terminal: Eine Ghostty-Terminal-Sitzung",
|
||
"panelBrowser": "Browser: Eine eingebettete Webansicht",
|
||
"panelNote": "Panel ist hauptsächlich ein internes Konzept. In der Socket-API und CLI interagieren Sie mit Oberflächen statt direkt mit Panels.",
|
||
"visualExample": "Visuelles Beispiel",
|
||
"visualExampleDesc": "In diesem Beispiel:",
|
||
"visualItem1": "Das Fenster enthält eine Seitenleiste mit drei Workspaces (dev, server, logs)",
|
||
"visualItem2": "Workspace \"dev\" ist ausgewählt und zeigt zwei Bereiche nebeneinander",
|
||
"visualItem3": "Bereich 1 hat zwei Oberflächen ([S1] und [S2] in der Tab-Leiste), wobei S1 aktiv ist",
|
||
"visualItem4": "Bereich 2 hat eine Oberfläche",
|
||
"visualItem5": "Jede Oberfläche enthält ein Panel (in diesem Fall ein Terminal)",
|
||
"summary": "Zusammenfassung",
|
||
"levelHeader": "Ebene",
|
||
"whatItIsHeader": "Was es ist",
|
||
"createdByHeader": "Erstellt durch",
|
||
"identifiedByHeader": "Identifiziert durch",
|
||
"macosWindow": "macOS-Fenster",
|
||
"sidebarEntry": "Eintrag in der Seitenleiste",
|
||
"splitRegion": "Geteilter Bereich",
|
||
"tabWithinPane": "Tab innerhalb eines Bereichs",
|
||
"terminalOrBrowser": "Terminal oder Browser",
|
||
"automatic": "Automatisch",
|
||
"paneIdSocket": "Bereichs-ID (Socket-API)",
|
||
"panelIdInternal": "Panel-ID (intern)",
|
||
"metaTitle": "Konzepte"
|
||
},
|
||
"configuration": {
|
||
"title": "Konfiguration",
|
||
"metaDescription": "Konfigurieren Sie cmux über Ghostty-Konfigurationsdateien. Schriftart, Design, Farben, Split-Bereich-Styling, Scrollback und App-Einstellungen für den Automatisierungsmodus.",
|
||
"intro": "cmux liest die Konfiguration aus Ghostty-Konfigurationsdateien, was Ihnen vertraute Optionen bietet, wenn Sie von Ghostty kommen.",
|
||
"configLocations": "Speicherorte der Konfigurationsdatei",
|
||
"configLocationsDesc": "cmux sucht an diesen Speicherorten nach Konfiguration (in dieser Reihenfolge):",
|
||
"createConfig": "Erstellen Sie die Konfigurationsdatei, falls sie nicht existiert:",
|
||
"appearance": "Erscheinungsbild",
|
||
"font": "Schriftart",
|
||
"colors": "Farben",
|
||
"splitPanes": "Geteilte Bereiche",
|
||
"behavior": "Verhalten",
|
||
"scrollback": "Scrollback",
|
||
"workingDirectory": "Arbeitsverzeichnis",
|
||
"appSettings": "App-Einstellungen",
|
||
"appSettingsDesc": "In-App-Einstellungen sind über cmux > Einstellungen ({shortcut}) verfügbar:",
|
||
"themeMode": "Design-Modus",
|
||
"themeSystem": "System: macOS-Erscheinungsbild folgen",
|
||
"themeLight": "Hell: Immer heller Modus",
|
||
"themeDark": "Dunkel: Immer dunkler Modus",
|
||
"automationMode": "Automatisierungsmodus",
|
||
"automationModeDesc": "Zugriffsebene der Steuerungs-Socket:",
|
||
"automationOff": "Aus: Kein Socket-Zugriff (am sichersten)",
|
||
"automationCmux": "Nur cmux-Prozesse: Nur Prozesse, die in cmux-Terminals gestartet wurden, können sich verbinden",
|
||
"automationAll": "allowAll: Jeden lokalen Prozess verbinden lassen (CMUX_SOCKET_MODE=allowAll, nur per Umgebungsvariable)",
|
||
"automationCallout": "Auf gemeinsam genutzten Rechnern sollten Sie den Modus \"Aus\" oder \"Nur cmux-Prozesse\" verwenden.",
|
||
"browserLinkBehavior": "Browser-Link-Verhalten",
|
||
"browserLinkDesc": "Unter Einstellungen > Browser stellt cmux zwei Host-Listen mit unterschiedlichen Zwecken bereit:",
|
||
"browserHostsEmbed": "Hosts im eingebetteten Browser öffnen: Gilt für Links, die aus der Terminal-Ausgabe geklickt werden. Hosts in dieser Liste öffnen sich in cmux; andere Hosts öffnen sich in Ihrem Standardbrowser. Unterstützt einen Host oder Wildcard pro Zeile (zum Beispiel: example.com, *.internal.example).",
|
||
"browserHostsHttp": "Im eingebetteten Browser erlaubte HTTP-Hosts: Gilt nur für HTTP-URLs (nicht HTTPS). Hosts in dieser Liste können in cmux ohne Warnhinweis geöffnet werden. Standardmäßig enthalten sind localhost, 127.0.0.1, ::1, 0.0.0.0 und *.localtest.me.",
|
||
"exampleConfig": "Beispielkonfiguration",
|
||
"metaTitle": "Konfiguration"
|
||
},
|
||
"keyboardShortcuts": {
|
||
"title": "Tastaturkürzel",
|
||
"description": "Alle in cmux verfügbaren Tastaturkürzel, nach Kategorie gruppiert.",
|
||
"metaDescription": "Alle cmux-Tastaturkürzel für Workspaces, Oberflächen, geteilte Bereiche, Browser, Benachrichtigungen, Suche und Fensterverwaltung unter macOS.",
|
||
"searchPlaceholder": "Kürzel suchen...",
|
||
"searchLabel": "Tastaturkürzel durchsuchen",
|
||
"noResults": "Keine Kürzel gefunden",
|
||
"noResultsHint": "Versuchen Sie einen anderen Suchbegriff",
|
||
"cat": {
|
||
"workspaces": "Workspaces",
|
||
"workspacesBlurb": "Workspaces befinden sich in der Seitenleiste. Jeder Workspace hat seine eigenen Bereiche und Oberflächen.",
|
||
"surfaces": "Oberflächen",
|
||
"surfacesBlurb": "Oberflächen sind Tabs innerhalb eines Bereichs.",
|
||
"splitPanes": "Geteilte Bereiche",
|
||
"browser": "Browser",
|
||
"notifications": "Benachrichtigungen",
|
||
"find": "Suche",
|
||
"terminal": "Terminal",
|
||
"window": "Fenster"
|
||
},
|
||
"sc": {
|
||
"ws-new": "Neuer Workspace",
|
||
"ws-jump-1-8": "Zu Workspace 1–8 springen",
|
||
"ws-jump-last": "Zum letzten Workspace springen",
|
||
"ws-close": "Workspace schließen",
|
||
"ws-rename": "Workspace umbenennen",
|
||
"sf-new": "Neue Oberfläche",
|
||
"sf-prev-1": "Vorherige Oberfläche",
|
||
"sf-prev-2": "Vorherige Oberfläche",
|
||
"sf-jump-1-8": "Zu Oberfläche 1–8 springen",
|
||
"sf-jump-last": "Zur letzten Oberfläche springen",
|
||
"sf-close": "Oberfläche schließen",
|
||
"sp-right": "Rechts teilen",
|
||
"sp-down": "Unten teilen",
|
||
"sp-focus": "Bereich richtungsabhängig fokussieren",
|
||
"sp-browser-right": "Browser rechts teilen",
|
||
"sp-browser-down": "Browser unten teilen",
|
||
"br-open": "Browser-Oberfläche öffnen",
|
||
"br-addr": "Adressleiste fokussieren",
|
||
"br-forward": "Vorwärts",
|
||
"br-reload": "Seite neu laden",
|
||
"br-devtools": "Entwicklerwerkzeuge öffnen",
|
||
"nt-panel": "Benachrichtigungspanel anzeigen",
|
||
"nt-latest": "Zur neuesten ungelesenen springen",
|
||
"nt-flash": "Blitz auslösen",
|
||
"fd-find": "Suchen",
|
||
"fd-next-prev": "Nächstes / Vorheriges Ergebnis",
|
||
"fd-hide": "Suchleiste ausblenden",
|
||
"fd-selection": "Auswahl für Suche verwenden",
|
||
"tm-clear": "Scrollback löschen",
|
||
"tm-copy": "Kopieren (mit Auswahl)",
|
||
"tm-paste": "Einfügen",
|
||
"tm-font": "Schriftgröße vergrößern / verkleinern",
|
||
"tm-reset": "Schriftgröße zurücksetzen",
|
||
"wn-new": "Neues Fenster",
|
||
"wn-settings": "Einstellungen",
|
||
"wn-reload": "Konfiguration neu laden",
|
||
"wn-quit": "Beenden"
|
||
},
|
||
"metaTitle": "Tastenkürzel"
|
||
},
|
||
"api": {
|
||
"title": "API-Referenz",
|
||
"metaDescription": "cmux CLI und Unix-Socket-API-Referenz. Workspace-Verwaltung, geteilte Bereiche, Eingabesteuerung, Benachrichtigungen, Seitenleisten-Metadaten, Umgebungsvariablen und Erkennungsmethoden.",
|
||
"intro": "cmux bietet sowohl ein CLI-Werkzeug als auch einen Unix-Socket für programmatische Steuerung. Jeder Befehl ist über beide Schnittstellen verfügbar.",
|
||
"socket": "Socket",
|
||
"buildHeader": "Build",
|
||
"pathHeader": "Pfad",
|
||
"release": "Release",
|
||
"debug": "Debug",
|
||
"taggedDebug": "Getaggter Debug-Build",
|
||
"socketOverride": "Überschreiben mit der Umgebungsvariable CMUX_SOCKET_PATH. Senden Sie eine JSON-Anfrage pro Aufruf, mit Zeilenumbruch am Ende:",
|
||
"socketCallout": "JSON-Socket-Anfragen müssen method und params verwenden. Legacy-v1-JSON-Payloads wie <legacy>'{'\"command\":\"...\"'}'</legacy> werden nicht unterstützt.",
|
||
"accessModes": "Zugriffsmodi",
|
||
"modeHeader": "Modus",
|
||
"descriptionHeader": "Beschreibung",
|
||
"howToEnableHeader": "Aktivierung",
|
||
"offMode": "Socket deaktiviert",
|
||
"offEnable": "Einstellungs-UI oder CMUX_SOCKET_MODE=off",
|
||
"cmuxOnlyMode": "Nur Prozesse, die in cmux-Terminals gestartet wurden, können sich verbinden.",
|
||
"cmuxOnlyEnable": "Standardmodus in der Einstellungs-UI",
|
||
"allowAllMode": "Jeden lokalen Prozess verbinden lassen (keine Herkunftsprüfung).",
|
||
"allowAllEnable": "Nur per Umgebungsvariable: CMUX_SOCKET_MODE=allowAll",
|
||
"accessCallout": "Auf gemeinsam genutzten Rechnern verwenden Sie Aus oder Nur cmux-Prozesse.",
|
||
"cliOptions": "CLI-Optionen",
|
||
"flagHeader": "Flag",
|
||
"customSocketPath": "Benutzerdefinierter Socket-Pfad",
|
||
"outputJson": "Ausgabe im JSON-Format",
|
||
"targetWindow": "Ein bestimmtes Fenster ansprechen",
|
||
"targetWorkspace": "Einen bestimmten Workspace ansprechen",
|
||
"targetSurface": "Eine bestimmte Oberfläche ansprechen",
|
||
"idFormat": "ID-Format in der JSON-Ausgabe steuern",
|
||
"workspaceCommands": "Workspace-Befehle",
|
||
"listWorkspacesDesc": "Alle geöffneten Workspaces auflisten.",
|
||
"newWorkspaceDesc": "Einen neuen Workspace erstellen.",
|
||
"selectWorkspaceDesc": "Zu einem bestimmten Workspace wechseln.",
|
||
"currentWorkspaceDesc": "Den aktuell aktiven Workspace abrufen.",
|
||
"closeWorkspaceDesc": "Einen Workspace schließen.",
|
||
"splitCommands": "Split-Befehle",
|
||
"newSplitDesc": "Einen neuen geteilten Bereich erstellen. Richtungen: left, right, up, down.",
|
||
"listSurfacesDesc": "Alle Oberflächen im aktuellen Workspace auflisten.",
|
||
"focusSurfaceDesc": "Eine bestimmte Oberfläche fokussieren.",
|
||
"inputCommands": "Eingabebefehle",
|
||
"sendDesc": "Texteingabe an das fokussierte Terminal senden.",
|
||
"sendKeyDesc": "Einen Tastendruck senden. Tasten: enter, tab, escape, backspace, delete, up, down, left, right.",
|
||
"sendSurfaceDesc": "Text an eine bestimmte Oberfläche senden.",
|
||
"sendKeySurfaceDesc": "Einen Tastendruck an eine bestimmte Oberfläche senden.",
|
||
"notificationCommands": "Benachrichtigungsbefehle",
|
||
"notifyDesc": "Eine Benachrichtigung senden.",
|
||
"listNotificationsDesc": "Alle Benachrichtigungen auflisten.",
|
||
"clearNotificationsDesc": "Alle Benachrichtigungen löschen.",
|
||
"sidebarMetadata": "Seitenleisten-Metadaten-Befehle",
|
||
"sidebarMetadataDesc": "Setzen Sie Status-Pills, Fortschrittsbalken und Log-Einträge in der Seitenleiste für jeden Workspace. Nützlich für Build-Skripte, CI-Integrationen und KI-Coding-Agenten, die den Status auf einen Blick anzeigen möchten.",
|
||
"setStatusDesc": "Eine Seitenleisten-Status-Pill setzen. Verwenden Sie einen eindeutigen Schlüssel, damit verschiedene Werkzeuge ihre eigenen Einträge verwalten können.",
|
||
"clearStatusDesc": "Einen Seitenleisten-Status-Eintrag per Schlüssel entfernen.",
|
||
"listStatusDesc": "Alle Seitenleisten-Status-Einträge für einen Workspace auflisten.",
|
||
"setProgressDesc": "Einen Fortschrittsbalken in der Seitenleiste setzen (0.0 bis 1.0).",
|
||
"clearProgressDesc": "Den Seitenleisten-Fortschrittsbalken löschen.",
|
||
"logDesc": "Einen Log-Eintrag zur Seitenleiste hinzufügen. Stufen: info, progress, success, warning, error.",
|
||
"clearLogDesc": "Alle Seitenleisten-Log-Einträge löschen.",
|
||
"listLogDesc": "Seitenleisten-Log-Einträge auflisten.",
|
||
"sidebarStateDesc": "Alle Seitenleisten-Metadaten ausgeben (cwd, Git-Branch, Ports, Status, Fortschritt, Logs).",
|
||
"utilityCommands": "Hilfsbefehle",
|
||
"pingDesc": "Prüfen, ob cmux läuft und reagiert.",
|
||
"capabilitiesDesc": "Verfügbare Socket-Methoden und aktuellen Zugriffsmodus auflisten.",
|
||
"identifyDesc": "Fokussierten Fenster-/Workspace-/Bereichs-/Oberflächen-Kontext anzeigen.",
|
||
"envVariables": "Umgebungsvariablen",
|
||
"variableHeader": "Variable",
|
||
"socketPathDesc": "Den von CLI und Integrationen verwendeten Socket-Pfad überschreiben",
|
||
"socketEnableDesc": "Socket aktivieren/deaktivieren erzwingen (1/0, true/false, on/off)",
|
||
"socketModeDesc": "Zugriffsmodus überschreiben (cmuxOnly, allowAll, off). Akzeptiert auch cmux-only/cmux_only und allow-all/allow_all",
|
||
"workspaceIdDesc": "Automatisch gesetzt: Aktuelle Workspace-ID",
|
||
"surfaceIdDesc": "Automatisch gesetzt: Aktuelle Oberflächen-ID",
|
||
"termProgramDesc": "Gesetzt auf ghostty",
|
||
"termDesc": "Gesetzt auf xterm-ghostty",
|
||
"envCallout": "Legacy-Werte für CMUX_SOCKET_MODE full und notifications werden aus Kompatibilitätsgründen weiterhin akzeptiert.",
|
||
"detectingCmux": "cmux erkennen",
|
||
"examples": "Beispiele",
|
||
"pythonClient": "Python-Client",
|
||
"shellScript": "Shell-Skript",
|
||
"buildScriptNotification": "Build-Skript mit Benachrichtigung",
|
||
"metaTitle": "API-Referenz"
|
||
},
|
||
"notifications": {
|
||
"title": "Benachrichtigungen",
|
||
"metaDescription": "Senden Sie Desktop-Benachrichtigungen von KI-Agenten und Skripten in cmux. CLI, OSC 99/777 Escape-Sequenzen und Claude Code Hooks-Integration.",
|
||
"intro": "cmux unterstützt Desktop-Benachrichtigungen, mit denen KI-Agenten und Skripte Sie benachrichtigen können, wenn sie Aufmerksamkeit benötigen.",
|
||
"lifecycle": "Lebenszyklus",
|
||
"received": "Empfangen: Benachrichtigung erscheint im Panel, Desktop-Alarm wird ausgelöst (falls nicht unterdrückt)",
|
||
"unread": "Ungelesen: Badge wird auf dem Workspace-Tab angezeigt",
|
||
"read": "Gelesen: Wird gelöscht, wenn Sie den Workspace anzeigen",
|
||
"cleared": "Gelöscht: Aus dem Panel entfernt",
|
||
"suppression": "Unterdrückung",
|
||
"suppressionDesc": "Desktop-Alarme werden unterdrückt, wenn:",
|
||
"suppressItem1": "Das cmux-Fenster fokussiert ist",
|
||
"suppressItem2": "Der spezifische Workspace, der die Benachrichtigung sendet, aktiv ist",
|
||
"suppressItem3": "Das Benachrichtigungspanel geöffnet ist",
|
||
"notificationPanel": "Benachrichtigungspanel",
|
||
"notificationPanelDesc": "Drücken Sie <openShortcut>⌘⇧I</openShortcut>, um das Benachrichtigungspanel zu öffnen. Klicken Sie auf eine Benachrichtigung, um zu diesem Workspace zu springen. Drücken Sie <jumpShortcut>⌘⇧U</jumpShortcut>, um direkt zum Workspace mit der neuesten ungelesenen Benachrichtigung zu springen.",
|
||
"customCommand": "Benutzerdefinierter Befehl",
|
||
"customCommandDesc": "Führen Sie jedes Mal einen Shell-Befehl aus, wenn eine Benachrichtigung geplant wird. Setzen Sie ihn unter Einstellungen > App > Benachrichtigungsbefehl. Der Befehl wird über /bin/sh -c mit diesen Umgebungsvariablen ausgeführt:",
|
||
"customCommandNote": "Der Befehl läuft unabhängig von der System-Soundauswahl. Setzen Sie die Auswahl auf \"Ohne\", um nur den benutzerdefinierten Befehl zu verwenden, oder behalten Sie beides für einen Systemsound plus eine benutzerdefinierte Aktion bei.",
|
||
"sending": "Benachrichtigungen senden",
|
||
"cli": "CLI",
|
||
"osc777Title": "OSC 777 (einfach)",
|
||
"osc777Desc": "Das RXVT-Protokoll verwendet ein festes Format mit Titel und Inhalt:",
|
||
"osc99Title": "OSC 99 (erweitert)",
|
||
"osc99Desc": "Das Kitty-Protokoll unterstützt Untertitel und Benachrichtigungs-IDs:",
|
||
"variableHeader": "Variable",
|
||
"descriptionHeader": "Beschreibung",
|
||
"envTitle": "Benachrichtigungstitel (Workspace-Name oder App-Name)",
|
||
"envSubtitle": "Benachrichtigungs-Untertitel",
|
||
"envBody": "Benachrichtigungstext",
|
||
"cmpTitleBody": "Titel + Text",
|
||
"cmpSubtitle": "Untertitel",
|
||
"cmpNotificationId": "Benachrichtigungs-ID",
|
||
"cmpComplexity": "Komplexität",
|
||
"cmpYes": "Ja",
|
||
"cmpNo": "Nein",
|
||
"cmpHigher": "Höher",
|
||
"cmpLower": "Niedriger",
|
||
"featureHeader": "Funktion",
|
||
"comparisonCallout": "Verwenden Sie OSC 777 für einfache Benachrichtigungen. Verwenden Sie OSC 99, wenn Sie Untertitel oder Benachrichtigungs-IDs benötigen. Verwenden Sie die CLI (cmux notify) für die einfachste Integration.",
|
||
"claudeCodeHooks": "Claude Code Hooks",
|
||
"claudeCodeHooksDesc": "cmux integriert sich mit <link>Claude Code</link> über Hooks, um Sie zu benachrichtigen, wenn Aufgaben abgeschlossen sind.",
|
||
"createHookScript": "1. Hook-Skript erstellen",
|
||
"configureClaude": "2. Claude Code konfigurieren",
|
||
"restartNote": "Starten Sie Claude Code neu, um die Hooks zu aktivieren.",
|
||
"integrationExamples": "Integrationsbeispiele",
|
||
"notifyAfterLong": "Benachrichtigung nach langem Befehl",
|
||
"python": "Python",
|
||
"nodejs": "Node.js",
|
||
"tmuxPassthrough": "tmux Passthrough",
|
||
"tmuxDesc": "Wenn Sie tmux innerhalb von cmux verwenden, aktivieren Sie Passthrough:",
|
||
"metaTitle": "Benachrichtigungen"
|
||
},
|
||
"browserAutomation": {
|
||
"title": "Browser-Automatisierung",
|
||
"metaDescription": "cmux Browser-Befehlsreferenz für Navigation, DOM-Interaktion, Warten, Inspektion, JavaScript-Ausführung, Tabs, Dialoge, Frames, Downloads und Browser-Zustand.",
|
||
"intro": "Die cmux browser-Befehlsgruppe bietet Browser-Automatisierung für cmux-Browser-Oberflächen. Verwenden Sie sie zum Navigieren, Interagieren mit DOM-Elementen, Inspizieren des Seitenzustands, Ausführen von JavaScript und Verwalten von Browser-Sitzungsdaten.",
|
||
"commandIndex": "Befehlsindex",
|
||
"categoryHeader": "Kategorie",
|
||
"subcommandsHeader": "Unterbefehle",
|
||
"navAndTargeting": "Navigation und Zielauswahl",
|
||
"waiting": "Warten",
|
||
"domInteraction": "DOM-Interaktion",
|
||
"inspection": "Inspektion",
|
||
"jsAndInjection": "JavaScript und Injection",
|
||
"framesDialogsDownloads": "Frames, Dialoge, Downloads",
|
||
"stateAndSession": "Zustand und Sitzungsdaten",
|
||
"tabsAndLogs": "Tabs und Logs",
|
||
"targetingSurface": "Eine Browser-Oberfläche ansprechen",
|
||
"targetingDesc": "Die meisten Unterbefehle erfordern eine Ziel-Oberfläche. Sie können sie positionell oder mit --surface übergeben.",
|
||
"navigation": "Navigation",
|
||
"waitingSection": "Warten",
|
||
"waitingDesc": "Verwenden Sie wait, um zu blockieren, bis Selektoren, Text, URL-Fragmente, Ladezustand oder eine JavaScript-Bedingung erfüllt ist.",
|
||
"domSection": "DOM-Interaktion",
|
||
"domDesc": "Mutierende Aktionen unterstützen --snapshot-after für schnelle Verifizierung in Skripten.",
|
||
"inspectionSection": "Inspektion",
|
||
"inspectionDesc": "Verwenden Sie strukturierte Getter für Skripte und Snapshots/Screenshots für menschliche Überprüfung.",
|
||
"jsSection": "JavaScript Eval und Injection",
|
||
"stateSection": "Zustand",
|
||
"stateDesc": "Sitzungsdaten-Befehle umfassen Cookies, Local/Session Storage und vollständige Browser-Zustandssnapshots.",
|
||
"tabsSection": "Tabs",
|
||
"tabsDesc": "Browser-Tab-Operationen werden auf Browser-Oberflächen in der aktiven Browser-Tab-Gruppe abgebildet.",
|
||
"consoleSection": "Konsole und Fehler",
|
||
"dialogsSection": "Dialoge",
|
||
"framesSection": "Frames",
|
||
"downloadsSection": "Downloads",
|
||
"commonPatterns": "Häufige Muster",
|
||
"patternNavigate": "Navigieren, warten, inspizieren",
|
||
"patternForm": "Formular ausfüllen und Erfolgstext überprüfen",
|
||
"patternDebug": "Debug-Artefakte bei Fehler erfassen",
|
||
"patternSession": "Browser-Sitzung speichern und wiederherstellen",
|
||
"metaTitle": "Browser-Automatisierung"
|
||
},
|
||
"changelog": {
|
||
"title": "Changelog",
|
||
"metaDescription": "cmux Release-Notes und Versionshistorie. Neue Funktionen, Fehlerbehebungen und Änderungen für das native macOS-Terminal.",
|
||
"metaTitle": "Änderungsprotokoll"
|
||
},
|
||
"navItems": {
|
||
"gettingStarted": "Erste Schritte",
|
||
"concepts": "Konzepte",
|
||
"configuration": "Konfiguration",
|
||
"keyboardShortcuts": "Tastaturkürzel",
|
||
"apiReference": "API-Referenz",
|
||
"browserAutomation": "Browser-Automatisierung",
|
||
"notifications": "Benachrichtigungen",
|
||
"changelog": "Changelog"
|
||
}
|
||
},
|
||
"legal": {
|
||
"privacyPolicy": "Datenschutzrichtlinie",
|
||
"termsOfService": "Nutzungsbedingungen",
|
||
"eula": "EULA"
|
||
},
|
||
"wallOfLove": {
|
||
"title": "Wall of Love",
|
||
"description": "Was andere über cmux sagen."
|
||
},
|
||
"testimonials": {
|
||
"mitchellh": "Und wieder ein libghostty-basiertes Projekt, diesmal ein macOS-Terminal mit vertikalen Tabs, besserer Organisation/Benachrichtigungen, eingebettetem/skriptfähigem Browser, speziell für Leute, die viele terminalbasierte Agenten-Workflows nutzen.",
|
||
"schrockn": "Genau das Produkt, nach dem ich gesucht habe. Nach zwei Stunden heute Morgen bin ich verliebt.",
|
||
"egrefen": "Ich habe das ganze Wochenende damit gearbeitet und es ist großartig.",
|
||
"max4c": "Das ist mein Lieblingstool der letzten zwei Wochen",
|
||
"asaza": "cmux sieht so gut aus, dass es vielleicht Zeit ist, sich von VSCode zu verabschieden",
|
||
"johnthedebs": "Hey, das sieht echt toll aus. Ich liebe die Ideen hier, insbesondere: die Programmierbarkeit, das geschichtete UI, der Browser mit API. Freue mich darauf, das auszuprobieren. Außerdem möchte ich sagen, dass ich es sehr schätze, dass Mitchell Hashimoto libghostty geschaffen hat; es fühlt sich wie eine aufregende Zeit an, Terminal-Nutzer zu sein.",
|
||
"joeriddles": "Vertikale Tabs in meinem Terminal! Daran habe ich vorher nie gedacht. Ich nutze und liebe Firefox-Vertical-Tabs.",
|
||
"dchu17": "Habe es ausprobiert und es war ziemlich intuitiv. Gute Arbeit!",
|
||
"afruth": "Gefällt mir. Habe es gestern mit drei parallelen Projekten laufen lassen, jedes mit mehreren Worktrees. In Kombination mit lazygit und yazi/nvim war ich etwas produktiver als sonst, ohne mehreren ghostty/iTerm-Instanzen hinterherjagen zu müssen. Fühlt sich auch natürlicher an als tmux.",
|
||
"northprint": "cmux ausprobiert, weil es gut aussah, und es ist gut",
|
||
"indykish": "cmux ist ziemlich gut.",
|
||
"kataring": "Zu cmux.dev gewechselt",
|
||
"scottw": "Das war so ein nützlicher Fund. Ich kann es nur weiterempfehlen.",
|
||
"johnblythe": "Am Wochenende installiert und sofort begeistert. Habe auf sowas gewartet.",
|
||
"bchris91": "Genau das, was ich wollte. Tolle Arbeit, danke!",
|
||
"connorelsea": "Nutze das seit einer Woche und es ist fantastisch. Ein vertikaler Tab pro WIP-Aufgabe. Darin Claude auf einer Seite und Browser mit PR und Ressourcen auf der anderen. Zwischen Aufgaben wechseln und organisiert bleiben. Dazu Skills, damit Claude CI rekursiv überwacht usw. Fühle mich ehrlich gesagt erleuchtet.",
|
||
"tonkotsuboy": "Anfang des Jahres bin ich von Warp zu Ghostty gewechselt, aber jetzt bin ich bei cmux. Die vertikalen Tabs sind praktisch, und ich schätze die Benachrichtigungen, wenn Claude-Code-Aufgaben fertig sind. Da es auf Ghostty basiert, bleibt die blitzschnelle Performance erhalten. Branch-Anzeige und Vervollständigungen, die ich in Ghostty eingerichtet hatte, funktionieren auch weiterhin."
|
||
},
|
||
"languageSwitcher": {
|
||
"label": "Sprache"
|
||
}
|
||
}
|