@cat-factory/app 0.100.2 → 0.101.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/settings/InfraHandlersConfigurator.vue +22 -0
- package/i18n/i18n.config.ts +18 -0
- package/i18n/locales/de.json +4360 -0
- package/i18n/locales/en.json +1 -1
- package/i18n/locales/es.json +1 -1
- package/i18n/locales/fr.json +1 -1
- package/i18n/locales/he.json +1 -1
- package/i18n/locales/it.json +4360 -0
- package/i18n/locales/ja.json +1 -1
- package/i18n/locales/pl.json +1 -1
- package/i18n/locales/tr.json +1 -1
- package/i18n/locales/uk.json +1 -1
- package/nuxt.config.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,4360 @@
|
|
|
1
|
+
{
|
|
2
|
+
"settings": {
|
|
3
|
+
"modelConfiguration": {
|
|
4
|
+
"title": "Modellkonfiguration",
|
|
5
|
+
"subtitle": "Presets, die jedem Agenten ein Modell zuordnen. Eine Aufgabe wählt eines aus; Aufgaben verwenden standardmäßig das Standard-Preset des Workspace.",
|
|
6
|
+
"back": "Zurück",
|
|
7
|
+
"closeEsc": "Schließen (Esc)",
|
|
8
|
+
"confirmDelete": {
|
|
9
|
+
"title": "Dieses Modell-Preset löschen?",
|
|
10
|
+
"body": "\"{name}\" wird entfernt. Aufgaben, die es verwenden, greifen auf den Workspace-Standard zurück."
|
|
11
|
+
},
|
|
12
|
+
"quota": "Kontingent",
|
|
13
|
+
"list": {
|
|
14
|
+
"intro": "Jedes Preset legt für jeden Agenten ein {baseModel} fest, mit optionalen Overrides je Agent. Ein an einer einzelnen Aufgabe angeheftetes Modell überschreibt weiterhin das Preset.",
|
|
15
|
+
"introBaseModel": "Basismodell",
|
|
16
|
+
"newPreset": "Neues Preset",
|
|
17
|
+
"loadingCatalog": "Modellkatalog wird geladen…",
|
|
18
|
+
"default": "Standard",
|
|
19
|
+
"setDefaultTitle": "Als Workspace-Standard festlegen",
|
|
20
|
+
"editTitle": "Preset bearbeiten",
|
|
21
|
+
"deleteDisabledTitle": "Das Standard-Preset kann nicht gelöscht werden",
|
|
22
|
+
"deleteTitle": "Preset löschen",
|
|
23
|
+
"basePrefix": "Basis:",
|
|
24
|
+
"overrideCount": "{count} Override | {count} Overrides",
|
|
25
|
+
"empty": "Noch keine Presets. Erstelle eines, um Modelle deinen Agenten zuzuordnen."
|
|
26
|
+
},
|
|
27
|
+
"editor": {
|
|
28
|
+
"useBaseModel": "Basismodell verwenden",
|
|
29
|
+
"baseModel": "Basismodell",
|
|
30
|
+
"nameLabel": "Name",
|
|
31
|
+
"namePlaceholder": "z. B. Kimi K2.7",
|
|
32
|
+
"baseModelLabel": "Basismodell (auf jeden Agenten angewendet)",
|
|
33
|
+
"makeDefault": "Als Workspace-Standard festlegen",
|
|
34
|
+
"perAgentOverrides": "Overrides je Agent",
|
|
35
|
+
"filterPlaceholder": "Agenten filtern…",
|
|
36
|
+
"noAgentsMatch": "Keine Agenten passen zu \"{filter}\".",
|
|
37
|
+
"saveChanges": "Änderungen speichern",
|
|
38
|
+
"createPreset": "Preset erstellen"
|
|
39
|
+
},
|
|
40
|
+
"toast": {
|
|
41
|
+
"setDefaultFailed": "Standard-Preset konnte nicht festgelegt werden",
|
|
42
|
+
"deleteFailed": "Preset konnte nicht gelöscht werden",
|
|
43
|
+
"nameRequiredTitle": "Name erforderlich",
|
|
44
|
+
"nameRequiredBody": "Gib dem Preset einen Namen.",
|
|
45
|
+
"saveFailed": "Preset konnte nicht gespeichert werden"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"account": {
|
|
49
|
+
"title": "Kontoeinstellungen",
|
|
50
|
+
"noAccount": "Kein Konto ausgewählt.",
|
|
51
|
+
"tabs": {
|
|
52
|
+
"team": "Team & Zugriff",
|
|
53
|
+
"fragments": "Kontextfragmente"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"infrastructure": {
|
|
57
|
+
"active": "Aktiv: {backend}",
|
|
58
|
+
"registerHint": "Registriere unten einen Runner-Pool, um dies zu aktivieren.",
|
|
59
|
+
"updateFailed": "Das Ausführungs-Backend konnte nicht aktualisiert werden",
|
|
60
|
+
"executionBackend": {
|
|
61
|
+
"label": "Wo Agenten laufen",
|
|
62
|
+
"local-docker": "Lokales Docker (Host)",
|
|
63
|
+
"local-dockerDesc": "Jeden Agenten in einem Container auf dem Docker-Daemon dieser Maschine ausführen.",
|
|
64
|
+
"cloudflare-containers": "Cloudflare Containers (integriert)",
|
|
65
|
+
"cloudflare-containersDesc": "Agenten auf Cloudflares integrierter Container-Plattform je Ausführung betreiben.",
|
|
66
|
+
"kubernetes": "Kubernetes-Cluster",
|
|
67
|
+
"kubernetesDesc": "Jeden Agenten als Pod in einem von dir betriebenen Kubernetes-Cluster ausführen.",
|
|
68
|
+
"runner-pool": "Eigener Runner-Pool (HTTP)",
|
|
69
|
+
"runner-poolDesc": "Agenten an deinen eigenen Scheduler hinter einer HTTP-Manifest-API senden.",
|
|
70
|
+
"k3s": "Lokales Kubernetes (k3s)",
|
|
71
|
+
"k3sDesc": "Vorausgefüllt für einen lokalen k3s/k3d-Cluster auf dieser Maschine, füge einfach ein Token ein."
|
|
72
|
+
},
|
|
73
|
+
"testEnvBackend": {
|
|
74
|
+
"label": "Wo Testumgebungen laufen",
|
|
75
|
+
"local-compose": "docker-compose im Container (Tester-Abhängigkeiten)",
|
|
76
|
+
"local-composeDesc": "Die Abhängigkeiten des Testers mit docker-compose innerhalb des Ausführungs-Containers bereitstellen. Für eine vollständige App-Vorschauumgebung nutze die Option Docker Compose Preview-Umgebung weiter unten.",
|
|
77
|
+
"kubernetes": "Kubernetes-Cluster",
|
|
78
|
+
"kubernetesDesc": "Einen Namespace pro PR in einem von dir betriebenen Kubernetes-Cluster bereitstellen. Am besten für Kubernetes-native Apps oder wenn du bereits einen Cluster betreibst.",
|
|
79
|
+
"environment-provider": "Eigener HTTP-Provider",
|
|
80
|
+
"environment-providerDesc": "Ephemere Umgebungen über deine eigene HTTP-Management-API bereitstellen. Am besten, wenn du bereits maßgeschneidertes Preview-Umgebungs-Tooling hast.",
|
|
81
|
+
"compose": "Docker Compose Preview-Umgebung",
|
|
82
|
+
"composeDesc": "Die repo-eigene docker-compose.yml auf einem lokalen Docker-Daemon als Tester-URL bereitstellen. Am besten für lokale Compose-basierte Apps. Unterstützt vorgefertigte Images oder das Bauen aus dem Quellcode; benötigt einen Docker-Daemon, daher nur für lokale Deployments."
|
|
83
|
+
},
|
|
84
|
+
"dockerComposeInfo": "Docker-Compose-Dienste werden auf dem lokalen Docker der Laufzeit bereitgestellt: keine Verbindung nötig (der Container der Ausführung muss Docker-in-Docker unterstützen). Konfiguriere Dienst, Port und Image-Quelle (vorgefertigt pullen oder aus dem Quellcode bauen) in den Umgebungseinstellungen des Dienstes.",
|
|
85
|
+
"engine": {
|
|
86
|
+
"local-k3s": "Lokales k3s",
|
|
87
|
+
"remote-kubernetes": "Remote-Kubernetes"
|
|
88
|
+
},
|
|
89
|
+
"kubernetesEngine": {
|
|
90
|
+
"localK3sHint": "Vorausgefüllt für einen lokalen k3s/k3d/kind-Cluster auf dieser Maschine. Binde einen ServiceAccount an eine Rolle und füge unten ein langlebiges Token ein. Beachte, dass ein einfaches `kubectl create token NAME -n NAMESPACE`-Token nach 1 Stunde abläuft: füge `--duration=720h` für eine längere Laufzeit hinzu, oder erstelle ein nicht ablaufendes kubernetes.io/service-account-token Secret und lies es zurück. Wähle dann, wie die Umgebungs-URL abgeleitet wird, und passe die API-Server-URL an, falls dein Cluster auf einem anderen Port lauscht.",
|
|
91
|
+
"autoSetup": {
|
|
92
|
+
"title": "Automatische Einrichtung über die CLI",
|
|
93
|
+
"description": "Führe dies in deinem Terminal aus, um einen lokalen Cluster zu prüfen oder bereitzustellen, ein ServiceAccount-Token zu erzeugen und dieses Formular vorausgefüllt zu öffnen. Füge das ausgegebene Token ein, dann teste und speichere."
|
|
94
|
+
},
|
|
95
|
+
"label": "Verbindungsbezeichnung",
|
|
96
|
+
"labelPlaceholder": "Preview-Cluster",
|
|
97
|
+
"apiServerUrl": "API-Server-URL",
|
|
98
|
+
"apiServerUrlHelp": "Die kube-apiserver-Root, z. B. https://my-cluster.example:6443.",
|
|
99
|
+
"apiToken": "ServiceAccount-Token",
|
|
100
|
+
"apiTokenHelp": "Nur schreibbar; erneut eingeben, um es zu rotieren. Verschlüsselt gespeichert, nie zurückgegeben.",
|
|
101
|
+
"apiTokenHelpStored": "Ein Token ist gespeichert und wird für Tests wiederverwendet. Leer lassen, um es beizubehalten, oder ein neues eingeben, um es zu ersetzen.",
|
|
102
|
+
"apiTokenPlaceholderStored": "Leer lassen, um das gespeicherte Token beizubehalten",
|
|
103
|
+
"tokenSaved": "Gespeichert",
|
|
104
|
+
"urlSourceLabel": "Quelle der Umgebungs-URL",
|
|
105
|
+
"urlIngressTemplate": "Ingress-Host-Vorlage",
|
|
106
|
+
"urlIngressStatus": "Ingress-Status",
|
|
107
|
+
"urlServiceStatus": "Service-Status (LoadBalancer)",
|
|
108
|
+
"urlGatewayStatus": "Gateway-Status (Gateway API)",
|
|
109
|
+
"urlHttpRouteStatus": "HTTPRoute-Status (Gateway API)",
|
|
110
|
+
"hostTemplate": "Host-Vorlage",
|
|
111
|
+
"hostTemplateHelp": "Die Host-Vorlage, gerendert mit den Provisioning-Variablen (z. B. branch, sha).",
|
|
112
|
+
"ingressName": "Ingress-Name",
|
|
113
|
+
"serviceName": "Service-Name",
|
|
114
|
+
"port": "Port",
|
|
115
|
+
"gatewayName": "Gateway-Name",
|
|
116
|
+
"httpRouteName": "HTTPRoute-Name",
|
|
117
|
+
"scheme": "URL-Schema",
|
|
118
|
+
"schemeDefault": "Standard",
|
|
119
|
+
"namespaceTemplate": "Namespace-Vorlage",
|
|
120
|
+
"namespaceTemplateHelp": "Der Namespace-Name pro PR, gerendert mit den Provisioning-Variablen. Bei kustomize leer lassen, um den Namespace des Overlays zu berücksichtigen.",
|
|
121
|
+
"imageTemplate": "Image-Vorlage",
|
|
122
|
+
"imageTemplateHelp": "Eine Image-Referenz, die den Manifesten als Image-Variable zur Verfügung gestellt wird.",
|
|
123
|
+
"caCertPem": "CA-Zertifikat (PEM)",
|
|
124
|
+
"caCertPemHelp": "Verifiziert das TLS-Zertifikat des apiservers. Nur bei einer öffentlich vertrauten CA weglassen.",
|
|
125
|
+
"insecureSkipTlsVerify": "TLS-Verifizierung überspringen",
|
|
126
|
+
"insecureSkipTlsVerifyHelp": "Dringend abgeraten: nur für dev/kind-Cluster.",
|
|
127
|
+
"invalidPort": "Gib einen Port zwischen 1 und 65535 ein."
|
|
128
|
+
},
|
|
129
|
+
"customType": {
|
|
130
|
+
"title": "Eigene Manifest-Typen",
|
|
131
|
+
"hint": "Der offene Katalog eigener Provisioning-Typen, die ein Dienst anheften kann. Füge unten eigene hinzu; Typen aus dem Code sind schreibgeschützt.",
|
|
132
|
+
"empty": "Noch keine eigenen Manifest-Typen.",
|
|
133
|
+
"source": {
|
|
134
|
+
"registered": "Aus dem Code",
|
|
135
|
+
"workspace": "Workspace"
|
|
136
|
+
},
|
|
137
|
+
"editTitle": "{id} bearbeiten",
|
|
138
|
+
"addTitle": "Einen Typ hinzufügen",
|
|
139
|
+
"manifestId": "Manifest-ID",
|
|
140
|
+
"manifestIdHelp": "Ein Lower-Kebab-Slug, z. B. my-kargo-template.",
|
|
141
|
+
"label": "Bezeichnung",
|
|
142
|
+
"acceptsInputHint": "Eingabehinweis (optional)",
|
|
143
|
+
"acceptsInputHintHelp": "Beschreibt die Eingabeform, die der Provider erwartet.",
|
|
144
|
+
"description": "Beschreibung (optional)",
|
|
145
|
+
"defaultManifestPath": "Standard-Manifest-Pfad (optional)",
|
|
146
|
+
"defaultManifestPathHelp": "Vorausgefüllt bei einem Dienst, der diesen Typ anheftet, und der Ausgangspunkt für die automatische Pfaderkennung. Ein vollständiger Pfad (deploy/preview.yaml) oder ein bloßer Dateiname.",
|
|
147
|
+
"fixerPrompt": "Fixer-Prompt (optional)",
|
|
148
|
+
"fixerPromptHelp": "Anweisungen an den Coding-Agenten, um das Manifest zu erzeugen oder zu reparieren. Wenn gesetzt, zeigt ein Dienst einen Button Generieren / Reparieren.",
|
|
149
|
+
"add": "Typ hinzufügen",
|
|
150
|
+
"saveFailed": "Der eigene Typ konnte nicht gespeichert werden",
|
|
151
|
+
"removeFailed": "Der eigene Typ konnte nicht entfernt werden"
|
|
152
|
+
},
|
|
153
|
+
"handler": {
|
|
154
|
+
"intro": "Konfiguriere, wie jeder von einem Dienst deklarierte Provisioning-Typ behandelt wird: die Engine und die Verbindung. Der Manifest-/Compose-Pfad eines Dienstes (das Was/Wo) wird am Dienst festgelegt.",
|
|
155
|
+
"activeEngine": "Engine:",
|
|
156
|
+
"connectionEstablished": "Verbindung hergestellt",
|
|
157
|
+
"notConnected": "Noch keine Verbindung konfiguriert",
|
|
158
|
+
"disconnect": "Verbindung entfernen",
|
|
159
|
+
"engineLabel": "Engine",
|
|
160
|
+
"customHandlerTitle": "Remote-Custom-Handler",
|
|
161
|
+
"customTypeLabel": "Eigener Typ",
|
|
162
|
+
"customBackendLabel": "Backend",
|
|
163
|
+
"customBackendHelp": "Welches registrierte Backend diese eigene Umgebung bereitstellt.",
|
|
164
|
+
"customConnected": "Handler verbunden.",
|
|
165
|
+
"saved": "Handler gespeichert",
|
|
166
|
+
"removed": "Handler entfernt",
|
|
167
|
+
"saveFailed": "Der Handler konnte nicht gespeichert werden",
|
|
168
|
+
"personalOverride": "Persönlicher Override (diese Maschine)",
|
|
169
|
+
"overrideActive": "Aktiv",
|
|
170
|
+
"personalOverrideHint": "Überschreibe den Workspace-Handler für diesen Provisioning-Typ auf deiner eigenen Maschine. Pro Benutzer gespeichert.",
|
|
171
|
+
"removeOverride": "Override entfernen",
|
|
172
|
+
"loading": "Infrastruktureinstellungen werden geladen…",
|
|
173
|
+
"kubeNoun": "der Kubernetes-Handler",
|
|
174
|
+
"kubeOverrideNoun": "der Kubernetes-Override",
|
|
175
|
+
"customNoun": "dieser Handler"
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"providerConnection": {
|
|
179
|
+
"fallbackTitle": "Provider",
|
|
180
|
+
"windowTitle": "Infrastruktur",
|
|
181
|
+
"noneAvailable": "In diesem Deployment sind keine Infrastruktur-Provider aktiviert.",
|
|
182
|
+
"tabs": {
|
|
183
|
+
"agentContainers": "Agenten-Container",
|
|
184
|
+
"testEnvironments": "Testumgebungen"
|
|
185
|
+
},
|
|
186
|
+
"kind": {
|
|
187
|
+
"environment": {
|
|
188
|
+
"title": "Provider für ephemere Umgebungen",
|
|
189
|
+
"blurb": "Wo der Tester-Agent gegen eine Live-Preview-Umgebung läuft. Konfiguriere die Workspace-Einstellungen und Zugangsdaten, die dein Provider benötigt."
|
|
190
|
+
},
|
|
191
|
+
"runner-pool": {
|
|
192
|
+
"title": "Backend für Agenten-Runner",
|
|
193
|
+
"blurb": "Wo die Coding-Agenten laufen, wenn keine Cloudflare Containers verwendet werden. Wähle einen selbst gehosteten Runner-Pool (deinen eigenen Scheduler) oder einen Kubernetes-Cluster und konfiguriere dann dessen Endpunkt und Zugangsdaten."
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"kubernetesEnv": {
|
|
197
|
+
"label": "Name",
|
|
198
|
+
"labelPlaceholder": "Preview-Cluster",
|
|
199
|
+
"apiServerUrl": "API-Server-URL",
|
|
200
|
+
"apiServerUrlHelp": "Die kube-apiserver-Root, z. B. https://10.0.0.1:6443. Der Orchestrator wendet die Manifeste jedes PR über den apiserver an, daher muss nur dieser Endpunkt erreichbar sein.",
|
|
201
|
+
"apiToken": "ServiceAccount-Token",
|
|
202
|
+
"apiTokenHelp": "Ein Bearer-Token mit RBAC-Rechten, um Namespaces zu erstellen und die Ressourcen des Operators anzuwenden. Verschlüsselt gespeichert; wird nie wieder angezeigt.",
|
|
203
|
+
"manifestSourceLabel": "Manifest-Quelle",
|
|
204
|
+
"sourceColocated": "Im PR-Repo mit abgelegt",
|
|
205
|
+
"sourceSeparate": "Separates Repo",
|
|
206
|
+
"repo": "Manifest-Repo",
|
|
207
|
+
"repoHelp": "Das owner/repo, das die Kubernetes-Manifeste enthält, z. B. acme/preview-manifests.",
|
|
208
|
+
"ref": "Ref",
|
|
209
|
+
"refHelp": "Branch, Tag oder SHA, mit dem die Manifeste gelesen werden. Leer verwendet den Standard-Branch des Repos.",
|
|
210
|
+
"path": "Manifest-Pfad",
|
|
211
|
+
"pathHelp": "Datei oder Verzeichnis im Repo, das die anzuwendenden Ressourcen enthält.",
|
|
212
|
+
"urlSourceLabel": "Umgebungs-URL",
|
|
213
|
+
"urlIngressTemplate": "Ingress-Host-Vorlage",
|
|
214
|
+
"urlIngressStatus": "Ingress-Status lesen",
|
|
215
|
+
"urlServiceStatus": "Service-Status lesen",
|
|
216
|
+
"hostTemplate": "Host-Vorlage",
|
|
217
|
+
"hostTemplateHelp": "Host-Vorlage, gerendert mit den Provisioning-Variablen wie branch und pullNumber; der gerenderte Host wird zur Umgebungs-URL.",
|
|
218
|
+
"ingressName": "Ingress-Name",
|
|
219
|
+
"ingressNameHelp": "Ingress, aus dem der Load-Balancer-Host gelesen wird. Leer verwendet den einzigen angewendeten Ingress.",
|
|
220
|
+
"serviceName": "Service-Name",
|
|
221
|
+
"port": "Port",
|
|
222
|
+
"scheme": "URL-Schema",
|
|
223
|
+
"schemeDefault": "https (Standard)",
|
|
224
|
+
"namespaceTemplate": "Namespace-Vorlage",
|
|
225
|
+
"namespaceTemplateHelp": "Namespace-Name pro PR, gerendert aus den Provisioning-Variablen wie pullNumber. Leer leitet einen aus der PR-Nummer ab.",
|
|
226
|
+
"imageTemplate": "Image-Vorlage",
|
|
227
|
+
"imageTemplateHelp": "Image-Referenz, die den Manifesten zur Verfügung gestellt wird, gerendert über die Provisioning-Variablen wie branch und sha.",
|
|
228
|
+
"caCertPem": "Cluster-CA-Zertifikat (PEM)",
|
|
229
|
+
"caCertPemHelp": "Füge das Cluster-CA-Bundle ein, damit das TLS-Zertifikat des apiservers verifiziert wird. Nur bei einer öffentlich vertrauten CA weglassen.",
|
|
230
|
+
"insecureSkipTlsVerify": "TLS-Verifizierung überspringen",
|
|
231
|
+
"insecureSkipTlsVerifyHelp": "Dringend abgeraten. Deaktiviert die TLS-Verifizierung des apiservers; nur für kind/dev-Cluster verwenden.",
|
|
232
|
+
"invalidFields": "Fülle die Pflichtfelder mit gültigen Werten aus, um eine Verbindung herzustellen."
|
|
233
|
+
},
|
|
234
|
+
"kubernetes": {
|
|
235
|
+
"label": "Name",
|
|
236
|
+
"labelPlaceholder": "Produktions-Cluster",
|
|
237
|
+
"apiServerUrl": "API-Server-URL",
|
|
238
|
+
"apiServerUrlHelp": "Die kube-apiserver-Root, z. B. https://10.0.0.1:6443. Der Orchestrator erreicht den Pod jeder Ausführung über den apiserver, daher muss nur dieser Endpunkt erreichbar sein.",
|
|
239
|
+
"namespace": "Namespace",
|
|
240
|
+
"image": "Executor-Image",
|
|
241
|
+
"imageHelp": "Das executor-harness-Image, das jeder Pod pro Ausführung betreibt.",
|
|
242
|
+
"imageUi": "UI-Tester-Image",
|
|
243
|
+
"apiToken": "ServiceAccount-Token",
|
|
244
|
+
"apiTokenHelp": "Ein Bearer-Token mit RBAC-Rechten, um Pods und pods/proxy im Namespace zu erstellen, abzurufen und zu löschen. Verschlüsselt gespeichert; wird nie wieder angezeigt.",
|
|
245
|
+
"caCertPem": "Cluster-CA-Zertifikat (PEM)",
|
|
246
|
+
"caCertPemHelp": "Füge das Cluster-CA-Bundle ein, damit das TLS-Zertifikat des apiservers verifiziert wird. Nur bei einer öffentlich vertrauten CA weglassen.",
|
|
247
|
+
"insecureSkipTlsVerify": "TLS-Verifizierung überspringen",
|
|
248
|
+
"insecureSkipTlsVerifyHelp": "Dringend abgeraten. Deaktiviert die TLS-Verifizierung des apiservers; nur für lokale k3s/kind/dev-Cluster verwenden.",
|
|
249
|
+
"harnessPort": "Harness-Port"
|
|
250
|
+
},
|
|
251
|
+
"manifestEditor": {
|
|
252
|
+
"title": "Provider-Manifest",
|
|
253
|
+
"jsonLabel": "Manifest (JSON)",
|
|
254
|
+
"jsonHelp": "Beschreibe die API deines Providers deklarativ: die Basis-URL, das Auth-Schema, die Request-Vorlagen und das Response-Mapping. Wird gegen denselben Vertrag validiert, den der Server durchsetzt.",
|
|
255
|
+
"invalidJson": "Das Manifest ist kein gültiges JSON.",
|
|
256
|
+
"invalidShape": "Das Manifest entspricht nicht der erwarteten Form.",
|
|
257
|
+
"schemaError": "Manifest-Problem: {message}",
|
|
258
|
+
"secretsLabel": "Secrets",
|
|
259
|
+
"noSecrets": "Dieses Manifest referenziert keine Secrets.",
|
|
260
|
+
"stored": "Aktuell gespeichert: {keys}",
|
|
261
|
+
"reenterSecrets": "Gib zum Speichern jedes Secret erneut ein. Gespeicherte Secrets sind nur schreibbar und werden nicht angezeigt.",
|
|
262
|
+
"starterHint": "Dies ist ein Startbeispiel. Bearbeite es passend zur API deines Providers."
|
|
263
|
+
},
|
|
264
|
+
"viewLogs": "Logs anzeigen",
|
|
265
|
+
"hideLogs": "Logs ausblenden",
|
|
266
|
+
"connectedAt": "Verbunden · {baseUrl}",
|
|
267
|
+
"missingConfig": "Erforderliche Konfiguration fehlt: {fields}",
|
|
268
|
+
"form": {
|
|
269
|
+
"updateConfiguration": "Konfiguration aktualisieren",
|
|
270
|
+
"connect": "Verbinden",
|
|
271
|
+
"reenterSecrets": "Gib das Secret-Feld erneut ein, um Änderungen zu speichern — gespeicherte Secrets sind nur schreibbar und werden nicht angezeigt. | Gib die Secret-Felder erneut ein, um Änderungen zu speichern — gespeicherte Secrets sind nur schreibbar und werden nicht angezeigt.",
|
|
272
|
+
"optionalLabel": "{label} (optional)",
|
|
273
|
+
"missingFields": "Fülle die Pflichtfelder aus, um eine Verbindung herzustellen: {fields}."
|
|
274
|
+
},
|
|
275
|
+
"field": {
|
|
276
|
+
"defaultsTo": "Standardwert {value}"
|
|
277
|
+
},
|
|
278
|
+
"test": {
|
|
279
|
+
"button": "Verbindung testen",
|
|
280
|
+
"ok": "Verbindung OK",
|
|
281
|
+
"failed": "Verbindung fehlgeschlagen"
|
|
282
|
+
},
|
|
283
|
+
"toast": {
|
|
284
|
+
"saved": "{title} gespeichert",
|
|
285
|
+
"saveFailed": "Die Verbindung konnte nicht gespeichert werden",
|
|
286
|
+
"removed": "Verbindung entfernt",
|
|
287
|
+
"removeFailed": "Die Verbindung konnte nicht entfernt werden"
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"serviceFragmentDefaults": {
|
|
291
|
+
"intro": "Wähle die Best-Practice-Fragmente, mit denen jeder neue Dienst startet. Ihre Vorgaben werden in den Prompt jedes code-bewussten Agenten (Coder, Reviewer, Architekt, Fixer) bei den Aufgaben des Dienstes eingefügt. Du kannst die Auswahl pro Dienst in dessen Inspector verfeinern; die Änderung dieses Standards betrifft bereits bestehende Dienste nicht.",
|
|
292
|
+
"defaultFragments": "Standardfragmente",
|
|
293
|
+
"addFragment": "Fragment hinzufügen",
|
|
294
|
+
"empty": "Keine — neue Dienste starten ohne Fragmente auf Dienstebene.",
|
|
295
|
+
"saveFailed": "Standardfragmente konnten nicht gespeichert werden",
|
|
296
|
+
"footer": {
|
|
297
|
+
"question": "Musst du die Fragmente selbst hinzufügen oder bearbeiten (handgeschrieben, verlinkte Docs, Repos)?",
|
|
298
|
+
"manageBoard": "Fragmentbibliothek dieses Boards verwalten →",
|
|
299
|
+
"manageAccount": "Kontofragmente verwalten →"
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
"issueTracker": {
|
|
303
|
+
"filing": {
|
|
304
|
+
"heading": "Wo Tickets abgelegt werden",
|
|
305
|
+
"description": "Die wiederkehrende Tech-Debt-Pipeline erstellt vor der Umsetzung ein Issue und legt es in diesem Tracker ab. Wähle {none}, um das Ablegen zu überspringen.",
|
|
306
|
+
"none": "Keiner",
|
|
307
|
+
"githubHint": "GitHub Issues nutzt deine installierte GitHub-App, die noch nicht verbunden ist. Installiere sie unter {link} — das Ablegen bleibt bis dahin deaktiviert.",
|
|
308
|
+
"githubHintLink": "Integrationen → GitHub",
|
|
309
|
+
"jiraHint": "Jira ist noch nicht verbunden. {link}, um Issues abzulegen und zu verknüpfen.",
|
|
310
|
+
"linearHint": "Linear ist noch nicht verbunden. {link}, um Issues abzulegen und zu verknüpfen.",
|
|
311
|
+
"connectLink": "Verbinden",
|
|
312
|
+
"jiraProjectKey": "Jira-Projektschlüssel",
|
|
313
|
+
"jiraProjectKeyHelp": "Neue Tickets werden unter diesem Projekt abgelegt.",
|
|
314
|
+
"linearTeamId": "Linear-Team-ID",
|
|
315
|
+
"linearTeamIdHelp": "Neue Issues werden unter diesem Team erstellt (Linear benötigt zum Erstellen eines Issues ein Team).",
|
|
316
|
+
"linearTeamSearchPlaceholder": "Teams suchen…"
|
|
317
|
+
},
|
|
318
|
+
"vendor": {
|
|
319
|
+
"github": "GitHub Issues",
|
|
320
|
+
"jira": "Jira",
|
|
321
|
+
"linear": "Linear"
|
|
322
|
+
},
|
|
323
|
+
"linking": {
|
|
324
|
+
"heading": "Issues als Kontext verknüpfen",
|
|
325
|
+
"description": "Wenn eine Quelle angeboten wird, kannst du ihre Issues importieren und an eine Aufgabe anhängen, sodass Agenten die Issue-Beschreibung und Kommentare während der Umsetzung sehen. Dies ist unabhängig vom Ablage-Tracker oben.",
|
|
326
|
+
"github": {
|
|
327
|
+
"available": "Nutzt deine installierte GitHub-App — keine Zugangsdaten nötig.",
|
|
328
|
+
"unavailable": "Installiere die GitHub-App (Integrationen → GitHub), um diese Quelle anzubieten."
|
|
329
|
+
},
|
|
330
|
+
"checkSetup": "Einrichtung prüfen",
|
|
331
|
+
"install": "Installieren",
|
|
332
|
+
"connected": "Verbunden.",
|
|
333
|
+
"jira": {
|
|
334
|
+
"connectHint": "Mit einem Jira-Konto und API-Token verbinden."
|
|
335
|
+
},
|
|
336
|
+
"linear": {
|
|
337
|
+
"connectHint": "Mit einem persönlichen Linear-API-Schlüssel verbinden."
|
|
338
|
+
},
|
|
339
|
+
"connect": "Verbinden"
|
|
340
|
+
},
|
|
341
|
+
"writeback": {
|
|
342
|
+
"heading": "Rückschreiben",
|
|
343
|
+
"description": "Schreibe in die verknüpften Issues einer Aufgabe zurück, während ihr Pull Request fortschreitet. Jeder Schalter ist der Workspace-Standard und kann pro Aufgabe im Inspector überschrieben werden. GitHub-Issues werden nativ geschlossen; Jira-Issues wechseln in den ersten Status ihrer {done}-Kategorie.",
|
|
344
|
+
"done": "Erledigt",
|
|
345
|
+
"commentOnOpen": {
|
|
346
|
+
"label": "Kommentieren, wenn ein PR geöffnet wird",
|
|
347
|
+
"help": "Poste einen Kommentar am verknüpften Issue mit dem Link zum neuen Pull Request."
|
|
348
|
+
},
|
|
349
|
+
"resolveOnMerge": {
|
|
350
|
+
"label": "Beim Mergen eines PR als gelöst schließen",
|
|
351
|
+
"help": "Kommentiere, dass der PR gemergt wurde, und schließe / löse dann das verknüpfte Issue."
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
"probeFailure": {
|
|
355
|
+
"title": "Issue-Tracking ist nicht verfügbar",
|
|
356
|
+
"disabled": "Die Task-Source-Integration ist in diesem Deployment deaktiviert (ihr Verschlüsselungsschlüssel ist nicht konfiguriert). Setze ENCRYPTION_KEY im Backend, um Issue-Tracking zu aktivieren.",
|
|
357
|
+
"serverError": "Der Issue-Tracker-Dienst hat einen Fehler zurückgegeben (HTTP {status}): {message}. Das bedeutet meist, dass das Backend nicht vollständig migriert/konfiguriert ist.",
|
|
358
|
+
"loadFailedStatus": "Issue-Tracker-Einstellungen konnten nicht geladen werden (HTTP {status}): {message}",
|
|
359
|
+
"loadFailed": "Issue-Tracker-Einstellungen konnten nicht geladen werden: {message}"
|
|
360
|
+
},
|
|
361
|
+
"toast": {
|
|
362
|
+
"saved": "Issue-Tracker gespeichert",
|
|
363
|
+
"saveFailed": "Einstellungen konnten nicht gespeichert werden",
|
|
364
|
+
"updateFailed": "Aktualisierung fehlgeschlagen",
|
|
365
|
+
"checkFailed": "Prüfung fehlgeschlagen"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"userSecrets": {
|
|
369
|
+
"title": "Mein GitHub-Token",
|
|
370
|
+
"intro": "Speichere ein persönliches Zugriffstoken für die Ausführungen, die {you} startest — Pushes, Pull Requests, das CI-Gate und Merges werden deinem GitHub-Zugriff zugeordnet. Gespeichert {scope}; das Token ist nur schreibbar und wird nie wieder angezeigt.",
|
|
371
|
+
"introYou": "du",
|
|
372
|
+
"introScope": "nur für dich",
|
|
373
|
+
"connectedStored": "Verbunden · Token gespeichert",
|
|
374
|
+
"replaceToken": "Token ersetzen",
|
|
375
|
+
"addToken": "Token hinzufügen",
|
|
376
|
+
"labelField": "Bezeichnung (optional)",
|
|
377
|
+
"optionalField": "{label} (optional)",
|
|
378
|
+
"testConnection": "Verbindung testen",
|
|
379
|
+
"tokenValid": "Token gültig",
|
|
380
|
+
"tokenRejected": "Token abgelehnt",
|
|
381
|
+
"secretFallback": "Secret",
|
|
382
|
+
"toast": {
|
|
383
|
+
"saved": "{label} gespeichert",
|
|
384
|
+
"saveFailed": "Secret konnte nicht gespeichert werden",
|
|
385
|
+
"removed": "Secret entfernt",
|
|
386
|
+
"removeFailed": "Secret konnte nicht entfernt werden"
|
|
387
|
+
},
|
|
388
|
+
"confirmRemove": {
|
|
389
|
+
"title": "Dieses Secret entfernen?",
|
|
390
|
+
"body": "\"{name}\" wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
"mergeThresholds": {
|
|
394
|
+
"intro": "Benannte Auto-Merge-Richtlinien, die eine Aufgabe wählen kann. Nachdem CI bestanden hat, bewertet der {merger}-Agent den PR nach Komplexität, Risiko und Auswirkung (0-100 %); der PR wird nur automatisch gemergt, wenn jeder Wert auf oder unter den Obergrenzen des Presets liegt, andernfalls wird eine Review-Benachrichtigung ausgelöst. Das Standard-Preset gilt für jede Aufgabe, die keines wählt.",
|
|
395
|
+
"mergerAgent": "merger",
|
|
396
|
+
"confirmDelete": {
|
|
397
|
+
"title": "Dieses Merge-Preset löschen?",
|
|
398
|
+
"body": "\"{name}\" wird entfernt. Aufgaben, die es verwenden, greifen auf den Workspace-Standard zurück."
|
|
399
|
+
},
|
|
400
|
+
"concern": {
|
|
401
|
+
"none": "Keine (immer anhalten)",
|
|
402
|
+
"low": "Niedrig",
|
|
403
|
+
"medium": "Mittel",
|
|
404
|
+
"high": "Hoch (nie anhalten)"
|
|
405
|
+
},
|
|
406
|
+
"presetNamePlaceholder": "Preset-Name",
|
|
407
|
+
"default": "Standard",
|
|
408
|
+
"makeDefault": "Als Standard festlegen",
|
|
409
|
+
"deleteDefaultBlocked": "Das Standard-Preset kann nicht gelöscht werden",
|
|
410
|
+
"deletePreset": "Preset löschen",
|
|
411
|
+
"field": {
|
|
412
|
+
"maxComplexity": "Max. Komplexität %",
|
|
413
|
+
"maxRisk": "Max. Risiko %",
|
|
414
|
+
"maxImpact": "Max. Auswirkung %",
|
|
415
|
+
"ciMaxAttempts": "CI-Fix-Versuche",
|
|
416
|
+
"maxRequirementIterations": "Anforderungs-Iterationen",
|
|
417
|
+
"maxRequirementConcernAllowed": "Auto-Pass bei Bedenken auf oder unter",
|
|
418
|
+
"autoMerge": "Auto-Merge"
|
|
419
|
+
},
|
|
420
|
+
"autoMergeOnHint": "Automatisch mergen, wenn innerhalb der Schwellenwerte.",
|
|
421
|
+
"autoMergeOffHint": "Den PR immer an ein menschliches Review weiterleiten.",
|
|
422
|
+
"newPreset": "Neues Preset",
|
|
423
|
+
"create": {
|
|
424
|
+
"name": "Name",
|
|
425
|
+
"namePlaceholder": "z. B. Vorsichtig",
|
|
426
|
+
"complexity": "Kmplx%",
|
|
427
|
+
"risk": "Risiko%",
|
|
428
|
+
"impact": "Ausw.%",
|
|
429
|
+
"ciFix": "CI-Fix",
|
|
430
|
+
"reqIter": "Anf.-Iter.",
|
|
431
|
+
"autoPass": "Auto-Pass auf oder unter"
|
|
432
|
+
},
|
|
433
|
+
"add": "Hinzufügen",
|
|
434
|
+
"toast": {
|
|
435
|
+
"saved": "Preset gespeichert",
|
|
436
|
+
"saveFailed": "Preset konnte nicht gespeichert werden",
|
|
437
|
+
"created": "Preset erstellt",
|
|
438
|
+
"createFailed": "Preset konnte nicht erstellt werden",
|
|
439
|
+
"defaultFailed": "Standard konnte nicht festgelegt werden",
|
|
440
|
+
"deleteFailed": "Preset konnte nicht gelöscht werden"
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
"observabilityConnection": {
|
|
444
|
+
"title": "Post-Release-Health",
|
|
445
|
+
"intro": "Nachdem ein Release ausgeliefert wurde, überwacht das {gate}-Gate die konfigurierten Observability-Monitore/SLOs. Bei einer Regression startet es einen On-Call-Agenten zur Untersuchung (ein Mensch entscheidet, ob zurückgesetzt wird). Ordne im Inspector eines Dienstes zu, welche Monitore/SLOs er überwacht.",
|
|
446
|
+
"connection": {
|
|
447
|
+
"heading": "Verbindung",
|
|
448
|
+
"provider": "Provider"
|
|
449
|
+
},
|
|
450
|
+
"datadog": {
|
|
451
|
+
"site": "Datadog-Site",
|
|
452
|
+
"apiKey": "API-Schlüssel",
|
|
453
|
+
"appKey": "Application-Schlüssel"
|
|
454
|
+
},
|
|
455
|
+
"saveConnection": "Verbindung speichern",
|
|
456
|
+
"disconnect": "Trennen",
|
|
457
|
+
"incident": {
|
|
458
|
+
"heading": "Incident-Anreicherung",
|
|
459
|
+
"configured": "Konfiguriert",
|
|
460
|
+
"notSet": "Nicht gesetzt",
|
|
461
|
+
"description": "Optional. Bei einer Regression wird die On-Call-Untersuchung an einem Incident gepostet, den diese Systeme aus denselben Signalen BEREITS geöffnet haben (annotieren, nie erneut alarmieren). Secrets sind nur schreibbar: leer lässt einen gespeicherten Wert unverändert.",
|
|
462
|
+
"pagerDutyToken": "PagerDuty-API-Token",
|
|
463
|
+
"pagerDutyFromEmail": "PagerDuty From-E-Mail",
|
|
464
|
+
"incidentIoKey": "incident.io-API-Schlüssel",
|
|
465
|
+
"clear": "Leeren"
|
|
466
|
+
},
|
|
467
|
+
"status": {
|
|
468
|
+
"notConnected": "Nicht verbunden",
|
|
469
|
+
"connected": "Verbunden",
|
|
470
|
+
"connectedWithSite": "Verbunden ({site})"
|
|
471
|
+
},
|
|
472
|
+
"toast": {
|
|
473
|
+
"loadFailed": "Observability-Einstellungen konnten nicht geladen werden",
|
|
474
|
+
"incidentCredsRequired": "Gib PagerDuty- oder incident.io-Zugangsdaten ein",
|
|
475
|
+
"incidentSaved": "Incident-Anreicherung gespeichert",
|
|
476
|
+
"incidentSaveFailed": "Incident-Anreicherung konnte nicht gespeichert werden",
|
|
477
|
+
"incidentDisconnectFailed": "Incident-Anreicherung konnte nicht getrennt werden",
|
|
478
|
+
"connected": "Observability verbunden",
|
|
479
|
+
"connectFailed": "Die Verbindung konnte nicht gespeichert werden",
|
|
480
|
+
"disconnectFailed": "Trennen fehlgeschlagen"
|
|
481
|
+
},
|
|
482
|
+
"connectionNoun": "die Observability-Verbindung",
|
|
483
|
+
"incidentNoun": "der Incident-Provider"
|
|
484
|
+
},
|
|
485
|
+
"packageRegistries": {
|
|
486
|
+
"title": "Private Package-Registries",
|
|
487
|
+
"intro": "Verbinde die privaten Registries, aus denen deine Repositories installieren. Agenten erhalten sie beim Auschecken eines Repositorys, sodass private Abhängigkeiten während der Installation aufgelöst werden. Tokens sind nur schreibbar: um eines zu ändern, entferne den Eintrag und füge ihn erneut hinzu.",
|
|
488
|
+
"entryNoun": "Registry-Eintrag",
|
|
489
|
+
"list": {
|
|
490
|
+
"heading": "Verbundene Registries",
|
|
491
|
+
"tokenTail": "Token …{tail}",
|
|
492
|
+
"remove": "Eintrag entfernen"
|
|
493
|
+
},
|
|
494
|
+
"add": {
|
|
495
|
+
"heading": "Eine Registry hinzufügen",
|
|
496
|
+
"vendor": "Registry",
|
|
497
|
+
"host": "Das Token wird nur an {host} gesendet.",
|
|
498
|
+
"scopes": "Package-Scopes",
|
|
499
|
+
"scopesHelp": "Kommagetrennte npm-Scopes",
|
|
500
|
+
"token": "Zugriffstoken",
|
|
501
|
+
"save": "Registry hinzufügen"
|
|
502
|
+
},
|
|
503
|
+
"toast": {
|
|
504
|
+
"loadFailed": "Package-Registries konnten nicht geladen werden",
|
|
505
|
+
"added": "Registry hinzugefügt",
|
|
506
|
+
"addFailed": "Die Registry konnte nicht hinzugefügt werden",
|
|
507
|
+
"removeFailed": "Der Registry-Eintrag konnte nicht entfernt werden"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
"sharedStacks": {
|
|
511
|
+
"tab": "Gemeinsame Stacks",
|
|
512
|
+
"intro": "Langlebige Compose-Infrastruktur (Datenbanken, Broker, Suche, Mail), die einmal pro Workspace hochgefahren und über Ausführungen und Pull Requests hinweg wiederverwendet wird. Eine Testumgebung verbindet sich mit dem verwalteten Netzwerk eines Stacks. Das Hochfahren eines Stacks läuft auf einem lokalen Docker-Deployment; auf anderen Backends kannst du die Definition dennoch verwalten.",
|
|
513
|
+
"stackNoun": "gemeinsamer Stack",
|
|
514
|
+
"status": {
|
|
515
|
+
"stopped": "Gestoppt",
|
|
516
|
+
"starting": "Wird gestartet",
|
|
517
|
+
"running": "Läuft",
|
|
518
|
+
"failed": "Fehlgeschlagen"
|
|
519
|
+
},
|
|
520
|
+
"list": {
|
|
521
|
+
"heading": "Konfigurierte Stacks",
|
|
522
|
+
"start": "Starten",
|
|
523
|
+
"stop": "Stoppen",
|
|
524
|
+
"edit": "Bearbeiten",
|
|
525
|
+
"remove": "Stack löschen"
|
|
526
|
+
},
|
|
527
|
+
"add": {
|
|
528
|
+
"heading": "Einen gemeinsamen Stack hinzufügen",
|
|
529
|
+
"name": "Name",
|
|
530
|
+
"cloneUrl": "Clone-URL des Repositorys",
|
|
531
|
+
"cloneUrlHelp": "Das Git-Repository, in dem die Compose-Dateien des Stacks liegen.",
|
|
532
|
+
"gitRef": "Branch oder Tag (optional)",
|
|
533
|
+
"composeFiles": "Compose-Dateien",
|
|
534
|
+
"composeFilesHelp": "Kommagetrennt, repo-relativ, in Override-Reihenfolge.",
|
|
535
|
+
"composeProfiles": "Compose-Profile (optional)",
|
|
536
|
+
"managedNetworks": "Verwaltete Netzwerke (optional)",
|
|
537
|
+
"managedNetworksHelp": "Netzwerke, die dieser Stack für Konsumenten erstellt und besitzt, um sich damit zu verbinden.",
|
|
538
|
+
"allowHostCommands": "Host-Command-Setup-Schritte erlauben",
|
|
539
|
+
"save": "Stack hinzufügen"
|
|
540
|
+
},
|
|
541
|
+
"edit": {
|
|
542
|
+
"heading": "Gemeinsamen Stack bearbeiten",
|
|
543
|
+
"save": "Änderungen speichern",
|
|
544
|
+
"cancel": "Abbrechen"
|
|
545
|
+
},
|
|
546
|
+
"toast": {
|
|
547
|
+
"created": "Gemeinsamer Stack hinzugefügt",
|
|
548
|
+
"createFailed": "Der gemeinsame Stack konnte nicht hinzugefügt werden",
|
|
549
|
+
"updated": "Gemeinsamer Stack aktualisiert",
|
|
550
|
+
"updateFailed": "Der gemeinsame Stack konnte nicht aktualisiert werden",
|
|
551
|
+
"startFailed": "Der gemeinsame Stack konnte nicht gestartet werden",
|
|
552
|
+
"stopFailed": "Der gemeinsame Stack konnte nicht gestoppt werden",
|
|
553
|
+
"removeFailed": "Der gemeinsame Stack konnte nicht gelöscht werden"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
"localMode": {
|
|
557
|
+
"title": "Lokaler Modus",
|
|
558
|
+
"intro": "Feinabstimmung für den lokalen Container-Runner, gespeichert im Deployment dieser Maschine (er hat die Umgebungsvariablen {poolVars} / {harnessVars} ersetzt). Das Speichern passt den Warm-Pool live an, kein Neustart nötig; laufende Ausführungen behalten den Container, den sie bereits halten.",
|
|
559
|
+
"pool": {
|
|
560
|
+
"heading": "Warm-Container-Pool",
|
|
561
|
+
"description": "Halte inaktive Harness-Container bereit und lease einen erneut (bevorzugt einen Container, der das Repo der Ausführung bereits hält), statt pro Ausführung kalt zu starten. Poolgröße 0 deaktiviert ihn. Erfordert eine Laufzeit aus der Docker-Familie (Docker/Podman/OrbStack/Colima); auf Apple {appleContainer} ignoriert.",
|
|
562
|
+
"size": {
|
|
563
|
+
"label": "Poolgröße",
|
|
564
|
+
"help": "Max. inaktive Warm-Container. 0 = Pooling aus."
|
|
565
|
+
},
|
|
566
|
+
"minWarm": {
|
|
567
|
+
"label": "Beim Booten vorwärmen",
|
|
568
|
+
"help": "Container, die beim Booten des Dienstes gestartet werden."
|
|
569
|
+
},
|
|
570
|
+
"max": {
|
|
571
|
+
"label": "Max. Container",
|
|
572
|
+
"help": "Harte Obergrenze (geleast + inaktiv). Leer = Poolgröße.",
|
|
573
|
+
"placeholder": "(Poolgröße)"
|
|
574
|
+
},
|
|
575
|
+
"idleTimeout": {
|
|
576
|
+
"label": "Leerlauf-Timeout (Minuten)",
|
|
577
|
+
"help": "Einen inaktiven gepoolten Container danach entfernen."
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
"checkout": {
|
|
581
|
+
"heading": "Checkout-Wiederverwendung",
|
|
582
|
+
"description": "Wenn ein Warm-Container das Repo der Ausführung bereits hält, verwendet der Harness dessen Checkout je Repo wieder (sauberer Sweep + Fetch + Branch-Wechsel), statt neu zu klonen.",
|
|
583
|
+
"workspaceRoot": {
|
|
584
|
+
"label": "Workspace-Root",
|
|
585
|
+
"help": "Absolutes Verzeichnis im Container, unter dem der wiederverwendete Checkout liegt."
|
|
586
|
+
},
|
|
587
|
+
"cleanKeep": {
|
|
588
|
+
"label": "Beim Bereinigen behalten (kommagetrennt)",
|
|
589
|
+
"help": "Dependency-Cache-Verzeichnisse, die der Clean-Sweep pro Ausführung erhält."
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"toast": {
|
|
593
|
+
"saved": "Lokale Einstellungen gespeichert",
|
|
594
|
+
"saveFailed": "Lokale Einstellungen konnten nicht gespeichert werden"
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
"openRouterCatalog": {
|
|
598
|
+
"intro": "Erreiche {models} über ein einziges Gateway. Füge unten deinen OpenRouter-Schlüssel hinzu und aktiviere dann die gewünschten Modelle. Sie erscheinen im Modell-Picker mit ihrem Kontextfenster und Preis und werden auf dein Ausgabenbudget angerechnet.",
|
|
599
|
+
"introModels": "300+ Modelle",
|
|
600
|
+
"connectHeading": "Verbinde deinen OpenRouter-Schlüssel",
|
|
601
|
+
"step1": "Öffne {link} und erstelle einen API-Schlüssel.",
|
|
602
|
+
"step1Link": "openrouter.ai → Keys ↗",
|
|
603
|
+
"step2": "Kopiere den Schlüssel (beginnt mit {prefix}) und füge ihn unten ein.",
|
|
604
|
+
"scope": "Geltungsbereich",
|
|
605
|
+
"scopeWorkspace": "Dieser Workspace",
|
|
606
|
+
"scopeUser": "Meine Schlüssel (nur ich)",
|
|
607
|
+
"labelOptional": "Bezeichnung (optional)",
|
|
608
|
+
"labelPlaceholder": "z. B. Team-Schlüssel",
|
|
609
|
+
"apiKey": "API-Schlüssel",
|
|
610
|
+
"connectAndBrowse": "Verbinden & durchsuchen",
|
|
611
|
+
"keyConnected": "OpenRouter-Schlüssel verbunden",
|
|
612
|
+
"manageKeys": "In Vendors & Schlüssel verwalten",
|
|
613
|
+
"refresh": "Katalog aktualisieren",
|
|
614
|
+
"enableRecommended": "Empfohlene aktivieren",
|
|
615
|
+
"filterPlaceholder": "Nach Name oder Slug filtern…",
|
|
616
|
+
"empty": "Noch keine Modelle. Klicke {action}, um die Live-Liste von OpenRouter zu laden.",
|
|
617
|
+
"enabledCount": "keine Modelle aktiviert | {count} aktiviert | {count} aktiviert",
|
|
618
|
+
"context": "{value} Ktx",
|
|
619
|
+
"contextThousands": "{value}K Ktx",
|
|
620
|
+
"price": "{input}/{output} pro Mtok",
|
|
621
|
+
"toast": {
|
|
622
|
+
"connected": "OpenRouter-Schlüssel verbunden",
|
|
623
|
+
"connectFailed": "Schlüssel konnte nicht verbunden werden",
|
|
624
|
+
"rejected": "OpenRouter hat den Schlüssel abgelehnt.",
|
|
625
|
+
"unreachable": "OpenRouter konnte nicht erreicht werden",
|
|
626
|
+
"connectFirst": "Verbinde zuerst einen OpenRouter-Schlüssel.",
|
|
627
|
+
"saved": "OpenRouter-Katalog gespeichert",
|
|
628
|
+
"saveFailed": "Katalog konnte nicht gespeichert werden"
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
"workspaceSettings": {
|
|
632
|
+
"title": "Workspace-Einstellungen",
|
|
633
|
+
"tabs": {
|
|
634
|
+
"workspace": "Workspace",
|
|
635
|
+
"budget": "Budget",
|
|
636
|
+
"merge": "Merge-Schwellenwerte",
|
|
637
|
+
"tracker": "Issue-Tracker",
|
|
638
|
+
"fragments": "Dienst-Best-Practices"
|
|
639
|
+
},
|
|
640
|
+
"waiting": {
|
|
641
|
+
"heading": "Warten auf einen Menschen",
|
|
642
|
+
"body": "Eine Ausführung, die auf eine menschliche Entscheidung (ein Review, eine Freigabe, ein Merge) wartet, wartet so lange wie nötig und wird nie abgebrochen. Nach so vielen Minuten wird ihre Benachrichtigung rot und im Posteingang als {overdue} markiert.",
|
|
643
|
+
"overdue": "Überfällig",
|
|
644
|
+
"escalateAfter": "Eskalieren nach (Minuten)"
|
|
645
|
+
},
|
|
646
|
+
"taskLimit": {
|
|
647
|
+
"heading": "Laufende Aufgaben pro Dienst",
|
|
648
|
+
"body": "Begrenze, wie viele Aufgaben gleichzeitig unter einem Dienst laufen dürfen. Das Starten einer Aufgabe über dem Limit wird mit einer klaren Meldung abgelehnt, bis eine laufende Aufgabe abgeschlossen ist.",
|
|
649
|
+
"mode": "Modus",
|
|
650
|
+
"maxRunning": "Max. laufende Aufgaben",
|
|
651
|
+
"maxPerType": "Max. {type}-Aufgaben",
|
|
652
|
+
"modes": {
|
|
653
|
+
"off": "Kein Limit",
|
|
654
|
+
"shared": "Über alle Typen hinweg geteilt",
|
|
655
|
+
"per_type": "Pro Aufgabentyp"
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"taskTypes": {
|
|
659
|
+
"feature": "Feature",
|
|
660
|
+
"bug": "Bug",
|
|
661
|
+
"document": "Dokument",
|
|
662
|
+
"spike": "Spike"
|
|
663
|
+
},
|
|
664
|
+
"observability": {
|
|
665
|
+
"heading": "Agenten-Observability",
|
|
666
|
+
"body": "Speichere den vollständigen Kontext, der jedem Agenten bereitgestellt wird: die zusammengesetzten Prompts, die eingefügten Best-Practice-Fragmente und den vollständigen Inhalt der in seinen Container injizierten Dateien, sodass er später in der Observability-Ansicht inspiziert werden kann. Die Inhalte werden für denselben Zeitraum wie die LLM-Telemetrie pro Aufruf aufbewahrt. Deaktivieren, um die Speicherung zu stoppen (bestehende Snapshots werden durch die Aufbewahrung bereinigt).",
|
|
667
|
+
"toggle": "Vollständigen Agentenkontext speichern"
|
|
668
|
+
},
|
|
669
|
+
"retention": {
|
|
670
|
+
"heading": "Screenshot-Aufbewahrung",
|
|
671
|
+
"body": "Wie lange die vom UI-Tester aufgenommenen Screenshots und die Referenz-Designbilder, gegen die sie geprüft werden (das visuelle Bestätigungs-Gate), aufbewahrt werden. Ein täglicher Cleanup-Job löscht sowohl die Bild-Bytes als auch ihre Metadaten, sobald sie älter als dieser Zeitraum sind.",
|
|
672
|
+
"days": "Aufbewahrung (Tage)"
|
|
673
|
+
},
|
|
674
|
+
"kaizen": {
|
|
675
|
+
"heading": "Kaizen-Agent",
|
|
676
|
+
"body": "Nach Abschluss jeder Ausführung bewertet der Kaizen-Agent, wie jeder Agentenschritt verlief, von reibungslos und effizient bis verwirrt und chaotisch, und empfiehlt Prompt-/Modellverbesserungen. Eine Kombination aus Prompt, Agent und Modell, die fünfmal in Folge hoch bewertet wird und keine Empfehlungen erhält, wird als verifiziert markiert und nicht mehr bewertet. Die Bewertung läuft im Hintergrund und wird in den Ausführungsdetails und im Kaizen-Bildschirm angezeigt. Lege das Modell des Bewerters in der Modellkonfiguration fest (der \"Kaizen\"-Agent).",
|
|
677
|
+
"toggle": "Agenten-Ausführungen mit Kaizen bewerten"
|
|
678
|
+
},
|
|
679
|
+
"budget": {
|
|
680
|
+
"heading": "Monatliches Ausgabenbudget",
|
|
681
|
+
"body": "Der Token-Verbrauch wird pro LLM-Aufruf gemessen, bepreist und durch diese Budgets begrenzt. Eine Ausführung pausiert, wenn eine Stufe, zu der sie gehört, ausgeschöpft ist. Lasse ein Feld leer für kein Limit auf dieser Stufe (die Workspace-Stufe übernimmt dann den integrierten Standard, etwa 100 EUR/Monat).",
|
|
682
|
+
"monthlyLimit": "Monatliches Limit",
|
|
683
|
+
"defaultPlaceholder": "Standard",
|
|
684
|
+
"currency": "Währung (ISO 4217)",
|
|
685
|
+
"save": "Budget speichern",
|
|
686
|
+
"saveTier": "Speichern",
|
|
687
|
+
"workspace": "Dieser Workspace",
|
|
688
|
+
"account": "Konto (alle Workspaces)",
|
|
689
|
+
"user": "Du (alle deine Ausführungen)",
|
|
690
|
+
"accountBody": "Eine Obergrenze über jeden Workspace in diesem Konto.",
|
|
691
|
+
"userBody": "Eine Obergrenze über jede von dir gestartete Ausführung, in jedem Workspace.",
|
|
692
|
+
"hardCap": "Betreiber-Limit: {amount}",
|
|
693
|
+
"hardCapHint": "vom Deployment festgelegt; der Wert kann es nicht überschreiten",
|
|
694
|
+
"spent": "{spent} von {limit} diesen Monat ausgegeben",
|
|
695
|
+
"adminOnly": "Nur ein Konto-Admin kann das Kontobudget ändern.",
|
|
696
|
+
"noLimitPlaceholder": "Kein Limit"
|
|
697
|
+
},
|
|
698
|
+
"toast": {
|
|
699
|
+
"saved": "Einstellungen gespeichert",
|
|
700
|
+
"saveFailed": "Einstellungen konnten nicht gespeichert werden",
|
|
701
|
+
"budgetSaved": "Budget gespeichert",
|
|
702
|
+
"budgetSaveFailed": "Budget konnte nicht gespeichert werden"
|
|
703
|
+
}
|
|
704
|
+
},
|
|
705
|
+
"localModelEndpoints": {
|
|
706
|
+
"title": "Meine lokalen Runner",
|
|
707
|
+
"intro": "Richte Agenten auf ein LLM aus, das auf {ownMachine} läuft (Ollama, LM Studio, llama.cpp, vLLM oder ein beliebiger OpenAI-kompatibler Server). Ein Runner wird {justForYou} gespeichert (ein Runner lebt auf deiner Maschine), und die von dir aktivierten Modelle erscheinen automatisch im Modell-Picker. Der API-Schlüssel (die meisten Runner ignorieren ihn) ist nur schreibbar und wird nie wieder angezeigt.",
|
|
708
|
+
"introOwnMachine": "deiner eigenen Maschine",
|
|
709
|
+
"introJustForYou": "nur für dich",
|
|
710
|
+
"modelCount": "keine Modelle | {count} Modell | {count} Modelle",
|
|
711
|
+
"keySet": "Schlüssel gesetzt",
|
|
712
|
+
"edit": "Bearbeiten",
|
|
713
|
+
"editRunner": "Runner bearbeiten",
|
|
714
|
+
"addRunner": "Einen Runner hinzufügen",
|
|
715
|
+
"runnerType": "Runner-Typ",
|
|
716
|
+
"labelOptional": "Bezeichnung (optional)",
|
|
717
|
+
"labelPlaceholder": "Mein {name}",
|
|
718
|
+
"baseUrl": "Basis-URL",
|
|
719
|
+
"apiKeyOptional": "API-Schlüssel (optional)",
|
|
720
|
+
"apiKeyKeepPlaceholder": "leer lassen, um den gespeicherten Schlüssel beizubehalten",
|
|
721
|
+
"apiKeyIgnorePlaceholder": "die meisten Runner ignorieren dies",
|
|
722
|
+
"testConnection": "Verbindung testen",
|
|
723
|
+
"unreachable": "Der Runner konnte nicht erreicht werden.",
|
|
724
|
+
"reachable": "Erreichbar · keine Modelle | Erreichbar · {count} Modell | Erreichbar · {count} Modelle",
|
|
725
|
+
"noModels": "Keine Modelle gemeldet.",
|
|
726
|
+
"enableModels": "Modelle aktivieren",
|
|
727
|
+
"toast": {
|
|
728
|
+
"saved": "{name} gespeichert",
|
|
729
|
+
"saveFailed": "Runner konnte nicht gespeichert werden",
|
|
730
|
+
"removed": "Runner entfernt",
|
|
731
|
+
"removeFailed": "Runner konnte nicht entfernt werden"
|
|
732
|
+
},
|
|
733
|
+
"confirmRemove": {
|
|
734
|
+
"title": "Diesen Runner entfernen?",
|
|
735
|
+
"body": "\"{name}\" wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
},
|
|
739
|
+
"inspector": {
|
|
740
|
+
"detectRepoUnresolved": "Das Repository dieses Blocks gehört nicht zu den verbundenen GitHub-Repos und kann daher nicht gelesen werden. Verbinde oder synchronisiere GitHub dafür und versuche es erneut.",
|
|
741
|
+
"container": {
|
|
742
|
+
"title": "Inhalte",
|
|
743
|
+
"hint": "Die Module und Aufgaben innerhalb dieses Blocks. Klicke auf einen Eintrag, um ihn auf dem Board auszuwählen.",
|
|
744
|
+
"modules": "Module ({count})",
|
|
745
|
+
"taskCount": "{count} Aufgabe | {count} Aufgaben",
|
|
746
|
+
"allTasks": "Alle Aufgaben ({count})",
|
|
747
|
+
"tasks": "Aufgaben ({count})",
|
|
748
|
+
"addTask": "Aufgabe hinzufügen",
|
|
749
|
+
"noTasks": "Noch keine Aufgaben. Füge eine hinzu, um mit der Arbeit zu beginnen.",
|
|
750
|
+
"servicesHint": "Services sind langlebig und werden nicht abgeschlossen. Die Arbeit findet in ihren Aufgaben und Modulen statt."
|
|
751
|
+
},
|
|
752
|
+
"epicChildren": {
|
|
753
|
+
"title": "Epic-Aufgaben",
|
|
754
|
+
"hint": "Alle diesem Epic zugewiesenen Aufgaben, gruppiert nach dem Service und Modul, in dem sie liegen. Ein Epic gruppiert nur Aufgaben; es führt selbst nichts aus.",
|
|
755
|
+
"doneCount": "{done}/{total} erledigt",
|
|
756
|
+
"empty": "Diesem Epic gehören noch keine Aufgaben an. Importiere die untergeordneten Aufgaben eines Epics oder setze das Epic einer Aufgabe.",
|
|
757
|
+
"unassigned": "Nicht zugewiesen"
|
|
758
|
+
},
|
|
759
|
+
"recurring": {
|
|
760
|
+
"title": "Wiederkehrende Pipeline",
|
|
761
|
+
"active": "Aktiv",
|
|
762
|
+
"paused": "Pausiert",
|
|
763
|
+
"intervalDays": "{count}T",
|
|
764
|
+
"intervalHours": "{count}Std",
|
|
765
|
+
"anyDay": "beliebiger Tag",
|
|
766
|
+
"cadence": "Alle {every} · {days}{window} · {timezone}",
|
|
767
|
+
"weekdays": {
|
|
768
|
+
"sun": "So",
|
|
769
|
+
"mon": "Mo",
|
|
770
|
+
"tue": "Di",
|
|
771
|
+
"wed": "Mi",
|
|
772
|
+
"thu": "Do",
|
|
773
|
+
"fri": "Fr",
|
|
774
|
+
"sat": "Sa"
|
|
775
|
+
},
|
|
776
|
+
"nextRun": "Nächster Lauf: {time}",
|
|
777
|
+
"runNow": "Jetzt ausführen",
|
|
778
|
+
"pause": "Pausieren",
|
|
779
|
+
"resume": "Fortsetzen",
|
|
780
|
+
"editCadence": "Taktung bearbeiten",
|
|
781
|
+
"recentRuns": "Letzte Läufe",
|
|
782
|
+
"runStatus": {
|
|
783
|
+
"running": "Läuft",
|
|
784
|
+
"done": "Erledigt",
|
|
785
|
+
"failed": "Fehlgeschlagen",
|
|
786
|
+
"skipped": "Übersprungen"
|
|
787
|
+
},
|
|
788
|
+
"updateFailed": "Zeitplan konnte nicht aktualisiert werden",
|
|
789
|
+
"runNowFailed": "Sofortausführung nicht möglich",
|
|
790
|
+
"onDemand": "Bei Bedarf",
|
|
791
|
+
"onDemandHint": "Nur manuell. Läuft, wenn du sie auslöst, und kann ein Modell mit Einzelnutzungs-Abonnement verwenden."
|
|
792
|
+
},
|
|
793
|
+
"fragments": {
|
|
794
|
+
"serviceTitle": "Service-Best-Practices",
|
|
795
|
+
"serviceHint": "Programmierstandards für den gesamten Service. Der Inhalt jedes ausgewählten Fragments wird dem Prompt jedes code-bewussten Agents hinzugefügt, der an Aufgaben unter diesem Service arbeitet.",
|
|
796
|
+
"serviceEmpty": "Keine. Code-bewusste Agents dieses Service folgen ihren Standardvorgaben.",
|
|
797
|
+
"manageBoard": "Fragment-Bibliothek dieses Boards verwalten…",
|
|
798
|
+
"manageAccount": "Konto-Fragmente verwalten…"
|
|
799
|
+
},
|
|
800
|
+
"frontendConfig": {
|
|
801
|
+
"title": "Frontend",
|
|
802
|
+
"hint": "Wie dieses Frontend für einen eigenständigen UI-Test gebaut, ausgeliefert und gemockt wird. Die Bindungen unten verknüpfen es mit den Backend-Services, die es aufruft.",
|
|
803
|
+
"detect": {
|
|
804
|
+
"title": "Aus Repo erkennen",
|
|
805
|
+
"button": "Erkennen",
|
|
806
|
+
"hint": "Liest das verknüpfte Repo und schlägt eine Konfiguration zur Prüfung vor dem Anwenden vor. Es wird nichts gespeichert, bis du es anwendest.",
|
|
807
|
+
"error": "Das Repo konnte nicht gelesen werden. Prüfe, ob das Frontend mit einem verbundenen Repository verknüpft ist.",
|
|
808
|
+
"none": "Es wurde nichts Frontend-artiges erkannt. Setze das Frontend-Verzeichnis (für ein Monorepo) oder fülle die Felder manuell aus.",
|
|
809
|
+
"apply": "Anwenden",
|
|
810
|
+
"dismiss": "Verwerfen",
|
|
811
|
+
"confidenceHigh": "sicher",
|
|
812
|
+
"confidenceLow": "Vermutung"
|
|
813
|
+
},
|
|
814
|
+
"groups": {
|
|
815
|
+
"build": "Build",
|
|
816
|
+
"serve": "Serve",
|
|
817
|
+
"mocking": "Mocking",
|
|
818
|
+
"envInjection": "Env-Injektion",
|
|
819
|
+
"bindings": "Backend-Bindungen",
|
|
820
|
+
"preview": "Vorschau"
|
|
821
|
+
},
|
|
822
|
+
"packageManager": "Paketmanager",
|
|
823
|
+
"directory": "Frontend-Verzeichnis",
|
|
824
|
+
"directoryHint": "Der Unterordner der Frontend-App im Repo (ein Monorepo, z. B. frontend/). Leer lassen, wenn die App im Repo-Root liegt.",
|
|
825
|
+
"installCommand": "Installationsbefehl",
|
|
826
|
+
"buildScript": "Build-Skript",
|
|
827
|
+
"outputDir": "Ausgabeverzeichnis",
|
|
828
|
+
"serveMode": "Serve-Modus",
|
|
829
|
+
"serveStatic": "Statisch",
|
|
830
|
+
"serveCommand": "Befehl",
|
|
831
|
+
"serveStaticDesc": "liefert das gebaute Ausgabeverzeichnis als statische Dateien aus. Am günstigsten für einen UI-Test einer vollständig gebauten App.",
|
|
832
|
+
"serveCommandDesc": "führt ein package.json-Skript (z. B. preview) aus, um die App auszuliefern, für Builds, die einen laufenden Server benötigen.",
|
|
833
|
+
"serveEnvAxisNote": "Getrennt von der Env-Injektion (Build-Zeit vs. Laufzeit) unten, die steuert, wie Backend-URLs die App erreichen, nicht wie sie ausgeliefert wird.",
|
|
834
|
+
"serveScript": "Serve-Skript",
|
|
835
|
+
"servePort": "Serve-Port",
|
|
836
|
+
"mockMappingsPath": "Pfad der Mock-Mappings",
|
|
837
|
+
"mockMappingsHint": "Das Wurzelverzeichnis von WireMock. Lege Stub-JSON in einen Unterordner mappings/ darin (und Response-Bodies in __files/), z. B. mocks/mappings/. Ein Ordner ohne mappings/ darin führt einen leeren Mock aus.",
|
|
838
|
+
"envInjection": "Env-Injektion",
|
|
839
|
+
"envBuild": "Build-Zeit",
|
|
840
|
+
"envRuntime": "Laufzeit",
|
|
841
|
+
"envInjectionHint": "Build-Zeit injiziert die Backend-URLs als Build-Env-Variablen; Laufzeit schreibt sie in einen window.env-Shim. Beachte, dass dein Build-Tool eventuell nur präfigierte Variablen (z. B. VITE_) an den Browser weitergibt, also benenne die Bindungen entsprechend seiner Konvention.",
|
|
842
|
+
"previewEnabled": "Durchsuchbare Vorschau aktivieren",
|
|
843
|
+
"previewHint": "Hält eine ausgelieferte Vorschau mit anklickbarer URL am Laufen. Nur Local- und Node-Runtimes.",
|
|
844
|
+
"previewUnsupported": "Dieses Deployment kann keine durchsuchbare Vorschau hosten. Führe es auf einem Local- oder Node-Deployment aus, um eine ausgelieferte Vorschau mit anklickbarer URL zu behalten.",
|
|
845
|
+
"bindings": {
|
|
846
|
+
"title": "Backend-Bindungen",
|
|
847
|
+
"hint": "Jede Env-Variable, die das Frontend für eine Upstream-URL liest, und wohin sie aufgelöst wird: die ephemere Umgebung eines gebundenen Service oder ein WireMock-Stub.",
|
|
848
|
+
"mock": "Mock (WireMock)",
|
|
849
|
+
"remove": "Bindung entfernen",
|
|
850
|
+
"empty": "Keine Backend-Bindungen. Füge eine hinzu, um eine Env-Variable auf einen Service oder einen Mock zu verweisen."
|
|
851
|
+
},
|
|
852
|
+
"preview": {
|
|
853
|
+
"open": "Vorschau öffnen",
|
|
854
|
+
"start": "Vorschau starten",
|
|
855
|
+
"stop": "Stoppen",
|
|
856
|
+
"status": {
|
|
857
|
+
"starting": "Wird gestartet…",
|
|
858
|
+
"ready": "Läuft",
|
|
859
|
+
"failed": "Fehlgeschlagen",
|
|
860
|
+
"stopped": "Läuft nicht"
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
"resolved": {
|
|
864
|
+
"title": "Wird aufgelöst zu",
|
|
865
|
+
"duplicateWarning": "Bei mehr als einer Bindung verwendet, daher gilt nur die letzte: {vars}.",
|
|
866
|
+
"serviceOffline": "{service}: keine aktive Umgebung (gemockt)",
|
|
867
|
+
"mock": "Mock (WireMock)"
|
|
868
|
+
}
|
|
869
|
+
},
|
|
870
|
+
"serviceConnections": {
|
|
871
|
+
"title": "Service-Verbindungen",
|
|
872
|
+
"hint": "Die anderen Services, die dieser nutzt, z. B. ein Service, der seine E-Mails versendet. Verbindungen zeichnen Kanten auf dem Board, und Aufgaben können einen verbundenen Service als direkt beteiligt markieren.",
|
|
873
|
+
"descriptionPlaceholder": "Wie dieser Service ihn nutzt, z. B. versendet E-Mails darüber",
|
|
874
|
+
"remove": "Verbindung entfernen",
|
|
875
|
+
"empty": "Keine Verbindungen. Füge eine hinzu, um diesen Service mit einem anderen Service zu verknüpfen, den er nutzt.",
|
|
876
|
+
"usedBy": "Genutzt von"
|
|
877
|
+
},
|
|
878
|
+
"releaseHealth": {
|
|
879
|
+
"title": "Zustand nach Release",
|
|
880
|
+
"sectionHint": "Nachdem die Änderungen dieses Service gemergt und ausgeliefert wurden, überwacht ein Gate die zugeordneten Monitore und SLOs eine Weile. Bei einer Regression startet es einen On-Call-Agent zur Untersuchung; es wird nichts automatisch zurückgerollt.",
|
|
881
|
+
"clear": "Leeren",
|
|
882
|
+
"connectPrompt": "Verbinde eine Observability-Integration, um diesen Service nach Releases zu überwachen.",
|
|
883
|
+
"connectFirst": "Verbinde zuerst eine Observability-Integration",
|
|
884
|
+
"connect": "Verbinden",
|
|
885
|
+
"hint": "Die Monitore und SLOs, die das Gate überwacht, nachdem dieser Service ausgeliefert wurde. Ids durch Kommas trennen.",
|
|
886
|
+
"monitorIds": "Monitor-Ids",
|
|
887
|
+
"sloIds": "SLO-Ids",
|
|
888
|
+
"envTag": "Env-Tag (optional)",
|
|
889
|
+
"saveMonitoring": "Monitoring speichern",
|
|
890
|
+
"savedToast": "Monitoring gespeichert",
|
|
891
|
+
"saveFailed": "Zuordnung konnte nicht gespeichert werden",
|
|
892
|
+
"clearFailed": "Zuordnung konnte nicht geleert werden",
|
|
893
|
+
"configNoun": "die Release-Health-Konfiguration"
|
|
894
|
+
},
|
|
895
|
+
"testConfig": {
|
|
896
|
+
"title": "Testinfrastruktur",
|
|
897
|
+
"hint": "Wie eine Testumgebung für diesen Service aufgesetzt wird, wenn eine Pipeline ihn ausführen muss: keine Infrastruktur, eine Docker-Compose-Datei, Kubernetes-Manifeste oder ein benutzerdefinierter Manifesttyp.",
|
|
898
|
+
"provisionType": "Bereitstellungstyp",
|
|
899
|
+
"provisionTypeHint": "Wie dieser Service seine Umgebung für den Tester aufsetzt. Der Workspace konfiguriert, wie jeder Typ behandelt wird (die Engine + Verbindung).",
|
|
900
|
+
"provisionTypes": {
|
|
901
|
+
"infraless": "Keine Infrastruktur",
|
|
902
|
+
"docker-compose": "Docker Compose",
|
|
903
|
+
"kubernetes": "Kubernetes",
|
|
904
|
+
"custom": "Benutzerdefiniert"
|
|
905
|
+
},
|
|
906
|
+
"composePath": "docker-compose-Pfad",
|
|
907
|
+
"browseRepo": "Das Repository nach der Compose-Datei durchsuchen",
|
|
908
|
+
"composeHint": "Wird vom Tester verwendet, um die Abhängigkeiten des Service lokal aufzusetzen.",
|
|
909
|
+
"selectComposeTitle": "docker-compose-Datei auswählen",
|
|
910
|
+
"selectComposeHint": "Wähle die Compose-Datei im Repository. Ihr Pfad wird relativ zum Repo-Root gespeichert.",
|
|
911
|
+
"selectManifestTitle": "Kubernetes-Manifeste auswählen",
|
|
912
|
+
"selectManifestHint": "Wähle die Manifestdatei oder das Verzeichnis im Repository. Ihr Pfad wird relativ zum Repo-Root gespeichert.",
|
|
913
|
+
"selected": "Ausgewählt: {path}",
|
|
914
|
+
"noFileSelected": "Keine Datei ausgewählt.",
|
|
915
|
+
"useThisFile": "Diese Datei verwenden",
|
|
916
|
+
"provisioningTitle": "Bereitstellung ephemerer Umgebungen",
|
|
917
|
+
"provisioningHint": "Ein Hinweis für die Bereitstellung der ephemeren Testumgebung dieses Service: zu welchem Cloud-Anbieter deployt werden soll und wie groß die angeforderte Instanz sein soll. Wird beim lokalen Testen (docker-compose) ignoriert.",
|
|
918
|
+
"cloudProvider": "Cloud-Anbieter",
|
|
919
|
+
"instanceSize": "Instanzgröße",
|
|
920
|
+
"providers": {
|
|
921
|
+
"docker": "Docker (lokal)",
|
|
922
|
+
"custom": "Benutzerdefiniert"
|
|
923
|
+
},
|
|
924
|
+
"sizes": {
|
|
925
|
+
"small": "Klein",
|
|
926
|
+
"medium": "Mittel",
|
|
927
|
+
"large": "Groß",
|
|
928
|
+
"xlarge": "XGroß"
|
|
929
|
+
},
|
|
930
|
+
"renderers": {
|
|
931
|
+
"raw": "Rohe Manifeste",
|
|
932
|
+
"kustomize": "Kustomize"
|
|
933
|
+
},
|
|
934
|
+
"localDevOnly": "Nur lokale Entwicklung",
|
|
935
|
+
"manifestSourceLabel": "Manifest-Quelle",
|
|
936
|
+
"sourceColocated": "In diesem Repo",
|
|
937
|
+
"sourceSeparate": "Separates Repo",
|
|
938
|
+
"manifestRepo": "Manifest-Repo (owner/repo)",
|
|
939
|
+
"manifestRef": "Ref (Branch/Tag/Sha)",
|
|
940
|
+
"manifestPath": "Manifest-Pfad",
|
|
941
|
+
"manifestPathHint": "Datei oder Verzeichnis der Kubernetes-Manifeste pro PR, relativ zum Repo-Root.",
|
|
942
|
+
"rendererLabel": "Renderer",
|
|
943
|
+
"rendererHint": "Raw wendet die Manifeste unverändert an. Kustomize baut zuerst ein Overlay (benötigt den Container-Deploy-Adapter).",
|
|
944
|
+
"customManifestId": "Benutzerdefinierter Manifesttyp",
|
|
945
|
+
"customManifestIdPlaceholder": "Wähle einen Manifesttyp",
|
|
946
|
+
"customNoTypes": "Es sind noch keine benutzerdefinierten Manifesttypen definiert. Füge einen im Infrastruktur-Fenster hinzu.",
|
|
947
|
+
"customManifestIdHint": "Der benutzerdefinierte Typ, den dieser Service erzeugt, zugeordnet zu einem Remote-Custom-Handler, den der Workspace konfiguriert.",
|
|
948
|
+
"customManifestPath": "Manifest-Pfad (optional)",
|
|
949
|
+
"customManifestPathHint": "Wird aus dem Standard des Typs vorbelegt, wenn du ihn auswählst. Verwende Erkennen, um ein vorhandenes Manifest im Repo zu finden.",
|
|
950
|
+
"generateManifest": {
|
|
951
|
+
"title": "Manifestdatei",
|
|
952
|
+
"button": "Generieren / reparieren",
|
|
953
|
+
"hint": "Führt einen Coding-Agent aus, um das Manifest an diesem Pfad zu erstellen (oder zu reparieren, wenn es existiert, aber ungültig ist) und es auf den Branch zu pushen.",
|
|
954
|
+
"error": "Der Lauf zur Manifest-Generierung konnte nicht gestartet werden.",
|
|
955
|
+
"dispatched": "Ein Lauf zur Manifest-Generierung wurde gestartet.",
|
|
956
|
+
"status": {
|
|
957
|
+
"running": "Manifest wird generiert…",
|
|
958
|
+
"succeeded": "Manifest generiert und gepusht.",
|
|
959
|
+
"failed": "Der Lauf zur Manifest-Generierung ist fehlgeschlagen. Wiederhole ihn im Infrastruktur-Fenster."
|
|
960
|
+
}
|
|
961
|
+
},
|
|
962
|
+
"detect": {
|
|
963
|
+
"title": "Automatisch erkennen",
|
|
964
|
+
"button": "Aus Repo erkennen",
|
|
965
|
+
"hint": "Untersucht das Repository und schlägt eine Bereitstellungskonfiguration vor. Du bestätigst und bearbeitest alles unten; es wird nichts automatisch gespeichert.",
|
|
966
|
+
"error": "Das Repository konnte nicht gelesen werden, um die Bereitstellung zu erkennen.",
|
|
967
|
+
"none": "Es wurden keine Kubernetes-Manifeste oder Compose-Dateien erkannt.",
|
|
968
|
+
"applied": "Eine {type}-Konfiguration wurde vorgeschlagen. Prüfe und passe die Felder unten an.",
|
|
969
|
+
"overlayTitle": "Ephemeres Overlay",
|
|
970
|
+
"serviceDirTitle": "Service-Deploy-Ordner",
|
|
971
|
+
"manifestRootTitle": "Manifest-Speicherort",
|
|
972
|
+
"composeServiceTitle": "Compose-Service",
|
|
973
|
+
"urlSource": "Vorgeschlagene Quelle der Umgebungs-URL: {source}. Der Workspace-Handler besitzt dies; setze es dort.",
|
|
974
|
+
"namespace": "Manifeste fixieren Namespace \"{namespace}\"; es wird empfohlen, ihn im Workspace-Handler zu berücksichtigen.",
|
|
975
|
+
"confidenceHigh": "Erkannt",
|
|
976
|
+
"confidenceLow": "Vorschlag"
|
|
977
|
+
},
|
|
978
|
+
"envWizard": {
|
|
979
|
+
"title": "Einrichtung der Compose-Umgebung",
|
|
980
|
+
"hint": "Konfiguriere das Rezept, die Preflights und den Handler, damit der Deployer diesen Stack bereitstellt.",
|
|
981
|
+
"open": "Assistent öffnen"
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
"agentConfig": {
|
|
985
|
+
"title": "Agent-Konfiguration",
|
|
986
|
+
"hint": "Von den Agents in der Pipeline dieser Aufgabe beigesteuerte Optionen. Jede Option bleibt bearbeitbar, bis ihr Agent startet, dann wird sie für diesen Lauf gesperrt.",
|
|
987
|
+
"inherited": "vom Service geerbt",
|
|
988
|
+
"frozen": "Eingefroren: der Agent hat gestartet"
|
|
989
|
+
},
|
|
990
|
+
"dependencies": {
|
|
991
|
+
"title": "Hängt ab von",
|
|
992
|
+
"hint": "Aufgaben, die gemergt sein müssen, bevor diese laufen kann. Das Run-Steuerelement bleibt gesperrt, bis jede Abhängigkeit erledigt ist.",
|
|
993
|
+
"merged": "Gemergt",
|
|
994
|
+
"notMerged": "Noch nicht gemergt",
|
|
995
|
+
"empty": "Keine Abhängigkeiten. Kann jederzeit laufen.",
|
|
996
|
+
"blocked": "Blockiert, bis die Abhängigkeiten gemergt sind.",
|
|
997
|
+
"confirmRemove": {
|
|
998
|
+
"title": "Diese Abhängigkeit entfernen?",
|
|
999
|
+
"body": "Diese Aufgabe wartet nicht mehr auf \"{name}\"."
|
|
1000
|
+
}
|
|
1001
|
+
},
|
|
1002
|
+
"estimate": {
|
|
1003
|
+
"title": "Schätzung",
|
|
1004
|
+
"hint": "Vom Task-Estimator-Agent erzeugt: wie komplex, riskant und wirkungsvoll diese Aufgabe aussieht. Wird verwendet, um zu entscheiden, ob Konsens-Schritte (Mehrfachläufe) sich lohnen.",
|
|
1005
|
+
"complexity": "Komplexität",
|
|
1006
|
+
"risk": "Risiko",
|
|
1007
|
+
"impact": "Wirkung"
|
|
1008
|
+
},
|
|
1009
|
+
"execution": {
|
|
1010
|
+
"title": "Ausführung",
|
|
1011
|
+
"hint": "Der Live-Lauf der Pipeline dieser Aufgabe: jeder Agent-Schritt, sein Fortschritt und der resultierende Pull Request.",
|
|
1012
|
+
"stage": {
|
|
1013
|
+
"incorporating": "Wird eingearbeitet…",
|
|
1014
|
+
"reviewing": "Wird erneut geprüft…",
|
|
1015
|
+
"recommending": "Empfehlung wird erstellt…"
|
|
1016
|
+
},
|
|
1017
|
+
"empty": {
|
|
1018
|
+
"title": "Noch keine Läufe",
|
|
1019
|
+
"body": "Starte eine Pipeline, um hier die Ausführungshistorie zu sehen."
|
|
1020
|
+
},
|
|
1021
|
+
"prNumber": "PR #{number}",
|
|
1022
|
+
"pullRequest": "Pull Request",
|
|
1023
|
+
"stepState": {
|
|
1024
|
+
"pending": "Ausstehend",
|
|
1025
|
+
"working": "In Arbeit",
|
|
1026
|
+
"waiting_decision": "Entscheidung nötig",
|
|
1027
|
+
"done": "Erledigt"
|
|
1028
|
+
},
|
|
1029
|
+
"failed": "Fehlgeschlagen",
|
|
1030
|
+
"needsDecision": "Entscheidung nötig",
|
|
1031
|
+
"needsApproval": "Freigabe nötig",
|
|
1032
|
+
"spinningUp": "Wird hochgefahren…",
|
|
1033
|
+
"stop": "Stoppen",
|
|
1034
|
+
"stopTooltip": "Den Lauf stoppen, aber behalten (lesbar und wiederholbar)",
|
|
1035
|
+
"reset": "Zurücksetzen",
|
|
1036
|
+
"resetTooltip": "Diesen Lauf verwerfen und die Aufgabe auf geplant zurücksetzen",
|
|
1037
|
+
"resetConfirm": {
|
|
1038
|
+
"title": "Diesen Lauf verwerfen?",
|
|
1039
|
+
"body": "Dies löscht den Lauf und setzt die Aufgabe auf geplant zurück. Dies kann nicht rückgängig gemacht werden.",
|
|
1040
|
+
"confirm": "Lauf verwerfen"
|
|
1041
|
+
},
|
|
1042
|
+
"mergeConfirm": {
|
|
1043
|
+
"title": "Diesen Pull Request mergen?",
|
|
1044
|
+
"body": "Dies mergt den PR in seinen Base-Branch und schließt die Aufgabe ab. Dies kann nicht rückgängig gemacht werden.",
|
|
1045
|
+
"confirm": "Mergen"
|
|
1046
|
+
},
|
|
1047
|
+
"viewDetailsOutput": "Details anzeigen und Ausgabe lesen",
|
|
1048
|
+
"viewDetails": "Schrittdetails anzeigen",
|
|
1049
|
+
"companion": "Begleiter",
|
|
1050
|
+
"companionTooltip": "Begleiter eines Producer-Schritts",
|
|
1051
|
+
"subtasksProgress": "{completed} von {total} Teilaufgaben erledigt, {inProgress} in Arbeit",
|
|
1052
|
+
"subtasksDone": "{completed} von {total} Teilaufgaben erledigt",
|
|
1053
|
+
"resolve": "Auflösen",
|
|
1054
|
+
"decide": "Entscheiden",
|
|
1055
|
+
"review": "Prüfen",
|
|
1056
|
+
"approve": "Freigeben",
|
|
1057
|
+
"fragmentsTooltip": "In diesen Schritt eingearbeitete Best-Practice-Fragmente: {fragments}",
|
|
1058
|
+
"standardsApplied": "{count} Standard angewendet | {count} Standards angewendet",
|
|
1059
|
+
"companionOf": "{label} (Begleiter)",
|
|
1060
|
+
"merged": "Gemergt",
|
|
1061
|
+
"open": "Öffnen",
|
|
1062
|
+
"mergePr": "PR mergen"
|
|
1063
|
+
},
|
|
1064
|
+
"structure": {
|
|
1065
|
+
"title": "Struktur",
|
|
1066
|
+
"hint": "Wo diese Aufgabe in ihrem Service liegt und welchen Coding-Standards ihre Agents folgen.",
|
|
1067
|
+
"module": "Modul",
|
|
1068
|
+
"modulePlaceholder": "z. B. Sessions (bei Implementierung erstellt, wenn neu)",
|
|
1069
|
+
"moduleHint": "Das Service-Modul, zu dem diese Aufgabe gehört. Gib einen Namen ein; ein noch nicht existierendes Modul wird erstellt, wenn die Aufgabe implementiert wird.",
|
|
1070
|
+
"bestPractices": "Best Practices",
|
|
1071
|
+
"bestPracticesEmpty": "Keine. Agents folgen ihren Standardvorgaben.",
|
|
1072
|
+
"bestPracticesHint": "Best-Practice-Fragmente, die zusätzlich zu den Standards auf Service-Ebene in die Prompts der Agents dieser Aufgabe eingearbeitet werden."
|
|
1073
|
+
},
|
|
1074
|
+
"runSettings": {
|
|
1075
|
+
"title": "Lauf-Einstellungen",
|
|
1076
|
+
"hint": "Wie die Pipeline dieser Aufgabe läuft: welche Pipeline startet, welche Merge- und Modellrichtlinien gelten und was rund um den Lauf passiert.",
|
|
1077
|
+
"unassigned": "Nicht zugewiesen",
|
|
1078
|
+
"workspaceDefault": "Workspace-Standard",
|
|
1079
|
+
"workspaceDefaultParen": "(Workspace-Standard)",
|
|
1080
|
+
"defaultPresetThresholds": "Standard ({name}): {thresholds}",
|
|
1081
|
+
"defaultPreset": "Standard ({name})",
|
|
1082
|
+
"noDefault": "Kein Standard",
|
|
1083
|
+
"inheritWorkspace": "Vom Workspace erben",
|
|
1084
|
+
"on": "An",
|
|
1085
|
+
"off": "Aus",
|
|
1086
|
+
"inheritOn": "Erben (an)",
|
|
1087
|
+
"inheritOff": "Erben (aus)",
|
|
1088
|
+
"technical": {
|
|
1089
|
+
"unset": "Nicht gesetzt (automatisch erkennen)",
|
|
1090
|
+
"technical": "Technisch",
|
|
1091
|
+
"business": "Fachlich"
|
|
1092
|
+
},
|
|
1093
|
+
"pipeline": "Pipeline",
|
|
1094
|
+
"pipelineEmpty": "Kein Standard. Wähle eine Pipeline, wenn du diese Aufgabe ausführst.",
|
|
1095
|
+
"pipelineHint": "Die Pipeline, die der Run-Button standardmäßig startet: die Abfolge der Agent-Schritte (zum Beispiel Spec, Code, Test, Merge), die für diese Aufgabe ausgeführt werden.",
|
|
1096
|
+
"mergePolicy": "Merge-Richtlinie",
|
|
1097
|
+
"mergePresetDetail": "{name}: automatisch mergen, wenn Komplexität ≤ {complexity}, Risiko ≤ {risk}, Wirkung ≤ {impact}; bis zu {attempts} CI-Fix-Versuche.",
|
|
1098
|
+
"mergePresetEmpty": "Kein Preset konfiguriert. Der Merger löst für jeden PR eine Prüfbenachrichtigung aus.",
|
|
1099
|
+
"mergePolicyHint": "Entscheidet, wann ein fertiger Pull Request automatisch mergt, statt auf eine menschliche Prüfung zu warten, und wie viele CI-Fix-Versuche ein Lauf erhält.",
|
|
1100
|
+
"modelPreset": "Modell-Preset",
|
|
1101
|
+
"modelPresetHint": "Entscheidet, auf welchem KI-Modell jeder Agent-Schritt läuft.",
|
|
1102
|
+
"modelPresetBase": "Basis {model}",
|
|
1103
|
+
"modelPresetOverrides": ", {count} Überschreibung | , {count} Überschreibungen",
|
|
1104
|
+
"modelPresetEmpty": "Kein Preset konfiguriert. Agents laufen auf dem Standard-Routing des Deployments.",
|
|
1105
|
+
"unavailableModels": "Unter der aktuellen Konfiguration nicht verfügbar: {models}. Diese Aufgabe würde bei diesen Schritten fehlschlagen.",
|
|
1106
|
+
"editPresets": "Presets bearbeiten",
|
|
1107
|
+
"configureVendors": "Anbieter konfigurieren",
|
|
1108
|
+
"modelPresetChangeHint": "Eine Änderung betrifft nur Schritte, die noch nicht gestartet sind.",
|
|
1109
|
+
"taskKind": "Aufgabenart",
|
|
1110
|
+
"technicalHint": {
|
|
1111
|
+
"technical": "Technisch: der Implementierer behandelt die Aufgabendefinition als primär und die Spec als Regressionsreferenz; der Spec-Writer erzeugt möglicherweise keine fachlichen Specs.",
|
|
1112
|
+
"business": "Fachlich: die Spezifikation führt, wie üblich.",
|
|
1113
|
+
"unset": "Automatisch erkennen: aus der Spec-Phase abgeleitet. Setze es explizit, um es zu überschreiben."
|
|
1114
|
+
},
|
|
1115
|
+
"issueWriteback": "Issue-Rückschreibung",
|
|
1116
|
+
"commentOnPrOpen": "Kommentar beim PR-Öffnen",
|
|
1117
|
+
"closeOnMerge": "Beim Mergen schließen",
|
|
1118
|
+
"writebackHint": "Schreibt zurück in das verknüpfte Tracker-Issue dieser Aufgabe. Überschreibt den Workspace-Standard.",
|
|
1119
|
+
"responsibleProduct": "Verantwortliches Produkt",
|
|
1120
|
+
"responsibleEmpty": "Nicht zugewiesen. Setze einen Product Owner, um ihn zu benachrichtigen, wenn die Anforderungsprüfung diese Aufgabe kennzeichnet.",
|
|
1121
|
+
"autoStartDependents": "Abhängige automatisch starten",
|
|
1122
|
+
"autoStartHint": "Wenn diese Aufgabe mergt, automatisch die davon abhängigen Aufgaben starten (sobald auch ihre anderen Abhängigkeiten erledigt sind).",
|
|
1123
|
+
"involvedServices": "Beteiligte Services",
|
|
1124
|
+
"involvedServicesHint": "Verbundene Services, die direkt an dieser Aufgabe beteiligt sind: jeder wird als ephemere Umgebung neben dem eigenen Service dieser Aufgabe hochgefahren, und der Coding-Agent kann auch deren Repositories ändern.",
|
|
1125
|
+
"involvedServicesEmpty": "Keine verbundenen Services. Verbinde Services am Service-Frame, um sie hier auszuwählen.",
|
|
1126
|
+
"involvedServiceStale": "Nicht mehr mit dem Service dieser Aufgabe verbunden; wird bei der nächsten Änderung entfernt."
|
|
1127
|
+
},
|
|
1128
|
+
"referenceRepos": {
|
|
1129
|
+
"title": "Referenz-Repositories",
|
|
1130
|
+
"remove": "{repo} entfernen",
|
|
1131
|
+
"connectFirst": "Verbinde GitHub, um Referenz-Repositories anzuhängen.",
|
|
1132
|
+
"hint": "Der Dokument-Writer klont diese schreibgeschützt, um beim Entwerfen vorhandene Lösungen als Referenz wiederzuverwenden. Er ändert sie nie."
|
|
1133
|
+
}
|
|
1134
|
+
},
|
|
1135
|
+
"panels": {
|
|
1136
|
+
"decision": {
|
|
1137
|
+
"title": "Entscheidung erforderlich",
|
|
1138
|
+
"agentOnBlock": "{agent} auf {block}",
|
|
1139
|
+
"visualizationHint": "Dies ist eine Visualisierung. Jede Wahl setzt einfach die Pipeline fort."
|
|
1140
|
+
},
|
|
1141
|
+
"stepRestart": {
|
|
1142
|
+
"restartFromStep": "Pipeline ab diesem Schritt neu starten",
|
|
1143
|
+
"restartFromHere": "Ab hier neu starten"
|
|
1144
|
+
},
|
|
1145
|
+
"structuredResult": {
|
|
1146
|
+
"fallbackTitle": "Agent-Ergebnis",
|
|
1147
|
+
"titleWithBlock": "{label}: {title}",
|
|
1148
|
+
"fallbackDescription": "Strukturierte Agent-Ausgabe",
|
|
1149
|
+
"structuredOutput": "Strukturierte Ausgabe",
|
|
1150
|
+
"noResult": "Noch kein Ergebnis.",
|
|
1151
|
+
"noResultHint": "Die strukturierte Ausgabe erscheint, sobald dieser Agent fertig ist. Während er läuft, zeigt der Schritt den Live-Fortschritt auf dem Board."
|
|
1152
|
+
},
|
|
1153
|
+
"mergerResult": {
|
|
1154
|
+
"title": "Merge-Entscheidung",
|
|
1155
|
+
"titleWithBlock": "Merge-Entscheidung: {title}",
|
|
1156
|
+
"description": "Wie der PR bewertet wurde und was die Engine entschieden hat.",
|
|
1157
|
+
"outcome": {
|
|
1158
|
+
"auto_merged": "Automatisch gemergt",
|
|
1159
|
+
"awaiting_review": "Wartet auf menschliche Prüfung"
|
|
1160
|
+
},
|
|
1161
|
+
"reason": {
|
|
1162
|
+
"within_thresholds": "Jede Bewertung liegt innerhalb der {preset}-Schwellenwerte, daher wurde der PR automatisch gemergt.",
|
|
1163
|
+
"exceeded_thresholds": "{axes} überschritt die {preset}-Schwellenwerte, daher wartet der PR darauf, dass ein Mensch mergt.",
|
|
1164
|
+
"auto_merge_disabled": "Das {preset}-Preset sendet jeden PR an einen Menschen, daher wartet dieser auf Prüfung.",
|
|
1165
|
+
"no_rationale": "Der Merger hat den PR bewertet, aber keine Begründung gegeben, daher konnte dem Urteil zum automatischen Mergen nicht vertraut werden; der PR wartet darauf, dass ein Mensch mergt.",
|
|
1166
|
+
"no_assessment": "Der Merger hat keine parsbare Bewertung zurückgegeben, daher wartet der PR darauf, dass ein Mensch mergt.",
|
|
1167
|
+
"merge_failed": "Die Bewertungen lagen innerhalb der {preset}-Schwellenwerte, aber der automatische Merge konnte nicht abgeschlossen werden (zum Beispiel Branch-Schutz oder ein Konflikt), daher wartet der PR darauf, dass ein Mensch mergt.",
|
|
1168
|
+
"merge_partial": "Einige der Pull Requests der Aufgabe wurden gemergt, aber ein späterer nicht, daher wartet die Änderung darauf, dass ein Mensch den Multi-Repo-Merge abschließt oder zurückrollt."
|
|
1169
|
+
},
|
|
1170
|
+
"scores": "Bewertungen",
|
|
1171
|
+
"axis": {
|
|
1172
|
+
"complexity": "Komplexität",
|
|
1173
|
+
"risk": "Risiko",
|
|
1174
|
+
"impact": "Wirkung"
|
|
1175
|
+
},
|
|
1176
|
+
"ceiling": "Obergrenze {value}",
|
|
1177
|
+
"rationale": "Begründung",
|
|
1178
|
+
"noAssessment": "Der Merger hat keine bewertete Einschätzung zurückgegeben.",
|
|
1179
|
+
"noResult": "Noch keine Merge-Entscheidung aufgezeichnet."
|
|
1180
|
+
},
|
|
1181
|
+
"testReport": {
|
|
1182
|
+
"title": "Testbericht",
|
|
1183
|
+
"greenlit": "Freigegeben",
|
|
1184
|
+
"needsFixes": "Braucht Korrekturen",
|
|
1185
|
+
"fixAttempts": "{count}/{max} Korrekturversuche",
|
|
1186
|
+
"fixing": "· wird korrigiert…",
|
|
1187
|
+
"tested": "Getestet",
|
|
1188
|
+
"outcomes": "Ergebnisse",
|
|
1189
|
+
"concerns": "Bedenken"
|
|
1190
|
+
},
|
|
1191
|
+
"stepMeta": {
|
|
1192
|
+
"stateLabel": "Status",
|
|
1193
|
+
"duration": "Dauer",
|
|
1194
|
+
"elapsed": "vergangen",
|
|
1195
|
+
"step": "Schritt",
|
|
1196
|
+
"stepOf": "{number} von {total}",
|
|
1197
|
+
"started": "Gestartet",
|
|
1198
|
+
"finished": "Beendet",
|
|
1199
|
+
"model": "Modell",
|
|
1200
|
+
"notRecorded": "Nicht aufgezeichnet",
|
|
1201
|
+
"run": "Lauf",
|
|
1202
|
+
"clickToCopy": "{id} (zum Kopieren klicken)",
|
|
1203
|
+
"spinningUpContainer": "Container wird hochgefahren…",
|
|
1204
|
+
"container": {
|
|
1205
|
+
"status": {
|
|
1206
|
+
"starting": "Container wird hochgefahren…",
|
|
1207
|
+
"up": "Container läuft",
|
|
1208
|
+
"errored": "Container fehlgeschlagen",
|
|
1209
|
+
"destroyed": "Container zurückgefordert"
|
|
1210
|
+
},
|
|
1211
|
+
"phase": {
|
|
1212
|
+
"starting": "Wird gestartet",
|
|
1213
|
+
"clone": "Workspace wird vorbereitet",
|
|
1214
|
+
"agent": "Agent läuft",
|
|
1215
|
+
"push": "Änderungen werden gepusht",
|
|
1216
|
+
"done": "Wird abgeschlossen"
|
|
1217
|
+
},
|
|
1218
|
+
"id": "Container",
|
|
1219
|
+
"url": "Adresse",
|
|
1220
|
+
"copyId": "Container-Id kopieren",
|
|
1221
|
+
"copyUrl": "Adresse kopieren"
|
|
1222
|
+
},
|
|
1223
|
+
"subtasks": "Teilaufgaben · {completed}/{total}",
|
|
1224
|
+
"standardsApplied": "Angewendete Standards",
|
|
1225
|
+
"decision": "Entscheidung",
|
|
1226
|
+
"awaitingChoice": "Wartet auf eine menschliche Wahl",
|
|
1227
|
+
"approvalGate": "Freigabe-Gate",
|
|
1228
|
+
"companionReview": "Begleiter-Prüfung",
|
|
1229
|
+
"correctionIterations": "{count} Korrekturiteration. | {count} Korrekturiterationen.",
|
|
1230
|
+
"state": {
|
|
1231
|
+
"pending": "Ausstehend",
|
|
1232
|
+
"working": "In Arbeit",
|
|
1233
|
+
"waiting_decision": "Eingabe nötig",
|
|
1234
|
+
"done": "Erledigt",
|
|
1235
|
+
"failed": "Fehlgeschlagen"
|
|
1236
|
+
},
|
|
1237
|
+
"approvalStatus": {
|
|
1238
|
+
"pending": "Ausstehend",
|
|
1239
|
+
"approved": "Freigegeben",
|
|
1240
|
+
"changes_requested": "Änderungen angefordert",
|
|
1241
|
+
"rejected": "Abgelehnt"
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
"stepDetail": {
|
|
1245
|
+
"contents": "Inhalte",
|
|
1246
|
+
"details": "Details",
|
|
1247
|
+
"approvalRequired": "Freigabe erforderlich",
|
|
1248
|
+
"decisionRequired": "Entscheidung erforderlich",
|
|
1249
|
+
"expandAll": "Alle Abschnitte ausklappen",
|
|
1250
|
+
"collapseAll": "Alle Abschnitte einklappen",
|
|
1251
|
+
"copyRawOutput": "Rohausgabe kopieren",
|
|
1252
|
+
"closeEsc": "Schließen (Esc)",
|
|
1253
|
+
"companionCapHeading": "{agent} hat sein Überarbeitungslimit von {attempts} Versuchen erreicht, noch unter der {threshold}-Schwelle.",
|
|
1254
|
+
"companionCapDetail": "Führe eine weitere automatische Überarbeitungsrunde durch, fahre mit dem nächsten Schritt fort und akzeptiere die aktuelle Ausgabe, oder stoppe und setze die Aufgabe zurück, damit du die Eingaben bearbeiten und erneut einreichen kannst.",
|
|
1255
|
+
"infraAttempts": "Infrastruktur-Versuche",
|
|
1256
|
+
"hideInfraAttempts": "Infrastruktur-Versuche ausblenden",
|
|
1257
|
+
"executionHistory": "Ausführungshistorie",
|
|
1258
|
+
"hideExecutionHistory": "Ausführungshistorie ausblenden",
|
|
1259
|
+
"attemptSucceeded": "Erfolgreich",
|
|
1260
|
+
"outputTruncated": "Ausgabe gekürzt, um die Lauf-Historie kompakt zu halten.",
|
|
1261
|
+
"editingConclusions": "Schlussfolgerungen bearbeiten",
|
|
1262
|
+
"editConclusionsPlaceholder": "Bearbeite die Schlussfolgerungen des Agents; deine Änderungen werden bei der Freigabe gespeichert…",
|
|
1263
|
+
"noProseOutput": "Dieser Agent hat keine Prosa-Ausgabe erzeugt.",
|
|
1264
|
+
"approveWithCorrections": "Mit Korrekturen freigeben",
|
|
1265
|
+
"reviewAndApprove": "Prüfen & freigeben",
|
|
1266
|
+
"editHint": "Bearbeite die Schlussfolgerungen links; deine Änderungen werden bei der Freigabe gespeichert.",
|
|
1267
|
+
"reviewHint": "Klicke auf einen beliebigen Block in der Ausgabe, um ihn zu kommentieren, oder hinterlasse unten allgemeines Feedback.",
|
|
1268
|
+
"editingNotice": "Du bearbeitest die Schlussfolgerungen direkt. Manuelle Änderungen können nicht mit Kommentaren pro Block kombiniert werden. Gib sie frei, um sie zu speichern, oder brich ab, um zur Prüfung zurückzukehren.",
|
|
1269
|
+
"commentingOn": "Kommentiert wird",
|
|
1270
|
+
"commentPlaceholder": "Hinterlasse einen Kommentar zu diesem Block…",
|
|
1271
|
+
"addComment": "Kommentar hinzufügen",
|
|
1272
|
+
"commentN": "Kommentar {number}",
|
|
1273
|
+
"removeComment": "Kommentar entfernen",
|
|
1274
|
+
"overallFeedback": "Allgemeines Feedback / Ablehnungsgrund",
|
|
1275
|
+
"overallFeedbackPlaceholder": "Beschreibe die Änderungen, die der Agent vornehmen soll (optional, wenn du Kommentare pro Block hinterlassen hast)…",
|
|
1276
|
+
"approveWithEdits": "Mit diesen Änderungen freigeben",
|
|
1277
|
+
"cancelEdits": "Änderungen abbrechen",
|
|
1278
|
+
"approveAndProceed": "Freigeben & fortfahren",
|
|
1279
|
+
"rejectConfirmPrompt": "Diesen Vorschlag ablehnen und den Lauf vollständig stoppen?",
|
|
1280
|
+
"confirmReject": "Ablehnung bestätigen",
|
|
1281
|
+
"requestChanges": "Änderungen anfordern",
|
|
1282
|
+
"reject": "Ablehnen",
|
|
1283
|
+
"requestChangesHint": "Änderungen anfordern führt diesen Schritt mit deinem Feedback & deinen Kommentaren erneut aus. Ablehnen stoppt den Lauf vollständig."
|
|
1284
|
+
},
|
|
1285
|
+
"inspector": {
|
|
1286
|
+
"frameStatus": {
|
|
1287
|
+
"planned": "Keine Aufgaben",
|
|
1288
|
+
"ready": "Aktiv",
|
|
1289
|
+
"in_progress": "Aktiv",
|
|
1290
|
+
"blocked": "Braucht Aufmerksamkeit",
|
|
1291
|
+
"pr_ready": "Aktiv",
|
|
1292
|
+
"done": "Aktiv"
|
|
1293
|
+
},
|
|
1294
|
+
"deleteRecurringPipeline": "Wiederkehrende Pipeline löschen",
|
|
1295
|
+
"deleteTask": "Aufgabe löschen",
|
|
1296
|
+
"deleteModule": "Modul löschen",
|
|
1297
|
+
"deleteService": "Service löschen",
|
|
1298
|
+
"confirmDelete": {
|
|
1299
|
+
"task": {
|
|
1300
|
+
"title": "Diese Aufgabe löschen?",
|
|
1301
|
+
"body": "\"{name}\" und seine Lauf-Historie werden entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
1302
|
+
},
|
|
1303
|
+
"module": {
|
|
1304
|
+
"title": "Dieses Modul löschen?",
|
|
1305
|
+
"body": "\"{name}\" und alles darin wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
1306
|
+
},
|
|
1307
|
+
"service": {
|
|
1308
|
+
"title": "Diesen Service löschen?",
|
|
1309
|
+
"body": "\"{name}\" und alles darin wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
1310
|
+
},
|
|
1311
|
+
"recurring": {
|
|
1312
|
+
"title": "Diese wiederkehrende Pipeline löschen?",
|
|
1313
|
+
"body": "\"{name}\", ihr Zeitplan und ihre Lauf-Historie werden entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
1314
|
+
},
|
|
1315
|
+
"containerBodyWithCount": "\"{name}\" und das {count} Element darin werden entfernt. Dies kann nicht rückgängig gemacht werden. | \"{name}\" und die {count} Elemente darin werden entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
1316
|
+
},
|
|
1317
|
+
"titlePlaceholder": "Titel…",
|
|
1318
|
+
"reworkedRequirements": "Überarbeitete Anforderungen",
|
|
1319
|
+
"agentStepsUseDocument": "Agent-Schritte verwenden dieses Dokument.",
|
|
1320
|
+
"open": "Öffnen",
|
|
1321
|
+
"originalDescriptionFrozen": "Ursprüngliche Beschreibung (eingefroren)",
|
|
1322
|
+
"noDescription": "Keine Beschreibung",
|
|
1323
|
+
"describeBlock": "Beschreibe diesen Block…",
|
|
1324
|
+
"taskStartedLocked": "Diese Aufgabe hat gestartet. Ihre Details sind gesperrt.",
|
|
1325
|
+
"lastIncorporatedRequirements": "Zuletzt eingearbeitete Anforderungen",
|
|
1326
|
+
"priorDocHint": "Aus der vorherigen Prüfung. Verwende es als Basis: bearbeite die Beschreibung oben und reiche erneut ein.",
|
|
1327
|
+
"bootstrapping": "Wird initialisiert…",
|
|
1328
|
+
"importIssue": "Issue importieren",
|
|
1329
|
+
"connectTracker": "Einen Tracker verbinden",
|
|
1330
|
+
"spawnFromDocument": "Aus Dokument erzeugen",
|
|
1331
|
+
"viewRequirements": "Anforderungen anzeigen",
|
|
1332
|
+
"reRun": "Erneut ausführen",
|
|
1333
|
+
"run": "Ausführen",
|
|
1334
|
+
"focus": "Fokussieren"
|
|
1335
|
+
}
|
|
1336
|
+
},
|
|
1337
|
+
"layout": {
|
|
1338
|
+
"accountDeployment": {
|
|
1339
|
+
"title": "Deployment-Integrationen",
|
|
1340
|
+
"intro": "Anmeldedaten, die von jedem Workspace in diesem Konto gemeinsam genutzt und im Ruhezustand versiegelt werden. Werte werden nach dem Speichern nie wieder angezeigt; lassen Sie ein Feld leer, um das gespeicherte Geheimnis beizubehalten.",
|
|
1341
|
+
"configured": "Konfiguriert",
|
|
1342
|
+
"notSet": "Nicht gesetzt",
|
|
1343
|
+
"clear": "Löschen",
|
|
1344
|
+
"loadFailed": "Deployment-Einstellungen konnten nicht geladen werden",
|
|
1345
|
+
"slack": {
|
|
1346
|
+
"title": "Slack-App (OAuth)",
|
|
1347
|
+
"description": "Aktiviert den \"Add to Slack\"-OAuth-Ablauf. Ohne ihn können Workspaces Slack weiterhin durch Einfügen eines Bot-Tokens verbinden.",
|
|
1348
|
+
"clientId": "Client-ID",
|
|
1349
|
+
"clientSecret": "Client-Secret",
|
|
1350
|
+
"redirectUrl": "Redirect-URL",
|
|
1351
|
+
"validation": "Geben Sie Client-ID, Secret und Redirect-URL ein",
|
|
1352
|
+
"saved": "Slack-OAuth gespeichert",
|
|
1353
|
+
"saveFailed": "Slack-OAuth konnte nicht gespeichert werden",
|
|
1354
|
+
"cleared": "Slack-OAuth gelöscht",
|
|
1355
|
+
"clearFailed": "Slack-OAuth konnte nicht gelöscht werden"
|
|
1356
|
+
},
|
|
1357
|
+
"linear": {
|
|
1358
|
+
"title": "Linear-App (OAuth)",
|
|
1359
|
+
"description": "Aktiviert den \"Connect with Linear\"-OAuth-Ablauf. Ohne ihn können Workspaces Linear weiterhin durch Einfügen eines persönlichen API-Schlüssels verbinden.",
|
|
1360
|
+
"clientId": "Client-ID",
|
|
1361
|
+
"clientSecret": "Client-Secret",
|
|
1362
|
+
"redirectUrl": "Redirect-URL",
|
|
1363
|
+
"validation": "Geben Sie Client-ID, Secret und Redirect-URL ein",
|
|
1364
|
+
"saved": "Linear-OAuth gespeichert",
|
|
1365
|
+
"saveFailed": "Linear-OAuth konnte nicht gespeichert werden",
|
|
1366
|
+
"cleared": "Linear-OAuth gelöscht",
|
|
1367
|
+
"clearFailed": "Linear-OAuth konnte nicht gelöscht werden"
|
|
1368
|
+
},
|
|
1369
|
+
"web": {
|
|
1370
|
+
"title": "Container-Websuche",
|
|
1371
|
+
"description": "Der Such-Upstream, den Container-Agenten über den Backend-Proxy erreichen. Legen Sie einen Brave-Schlüssel (empfohlen) oder eine selbst gehostete SearXNG-URL (mit einem optionalen Bearer-Schlüssel) fest.",
|
|
1372
|
+
"configured": "Konfiguriert ({provider})",
|
|
1373
|
+
"braveKey": "Brave-API-Schlüssel",
|
|
1374
|
+
"searxngUrl": "SearXNG-URL",
|
|
1375
|
+
"searxngKey": "SearXNG-Schlüssel (optional)",
|
|
1376
|
+
"validation": "Geben Sie einen Brave-Schlüssel oder eine SearXNG-URL ein",
|
|
1377
|
+
"saved": "Websuche-Schlüssel gespeichert",
|
|
1378
|
+
"saveFailed": "Websuche-Schlüssel konnten nicht gespeichert werden",
|
|
1379
|
+
"cleared": "Websuche-Schlüssel gelöscht",
|
|
1380
|
+
"clearFailed": "Websuche-Schlüssel konnten nicht gelöscht werden"
|
|
1381
|
+
},
|
|
1382
|
+
"contentStorage": {
|
|
1383
|
+
"title": "Inhaltsspeicher",
|
|
1384
|
+
"description": "Wo Screenshots des UI-Testers und Referenz-Designbilder für dieses Konto gespeichert werden. Die Metadaten liegen immer in der Datenbank; nur die Datei-Bytes gehen an das gewählte Backend.",
|
|
1385
|
+
"default": "Standard ({backend})",
|
|
1386
|
+
"backends": {
|
|
1387
|
+
"off": "Aus (Speicher deaktiviert)",
|
|
1388
|
+
"fs": "Lokales Dateisystem",
|
|
1389
|
+
"s3": "Amazon S3 / S3-kompatibel",
|
|
1390
|
+
"r2": "Cloudflare R2",
|
|
1391
|
+
"db": "Postgres-Datenbank"
|
|
1392
|
+
},
|
|
1393
|
+
"basePath": "Basispfad (Standard: .file-storage)",
|
|
1394
|
+
"region": "Region (z. B. us-east-1)",
|
|
1395
|
+
"bucket": "Bucket",
|
|
1396
|
+
"prefix": "Schlüssel-Präfix (optional)",
|
|
1397
|
+
"endpoint": "Endpoint (optional, S3-kompatibel)",
|
|
1398
|
+
"forcePathStyle": "Path-Style-Adressierung erzwingen (die meisten S3-kompatiblen Stores)",
|
|
1399
|
+
"accessKeys": "Zugriffsschlüssel",
|
|
1400
|
+
"accessKeyId": "Access Key ID",
|
|
1401
|
+
"secretAccessKey": "Secret Access Key",
|
|
1402
|
+
"keysHint": "Schlüssel werden im Ruhezustand versiegelt und nach dem Speichern nie wieder angezeigt; lassen Sie das Feld leer, um die gespeicherten Schlüssel beizubehalten.",
|
|
1403
|
+
"regionBucketValidation": "Geben Sie die S3-Region und den Bucket ein",
|
|
1404
|
+
"bothKeysValidation": "Geben Sie sowohl die Access Key ID als auch das Secret ein",
|
|
1405
|
+
"keysValidation": "Geben Sie die S3-Access Key ID und das Secret ein",
|
|
1406
|
+
"saved": "Inhaltsspeicher gespeichert",
|
|
1407
|
+
"saveFailed": "Inhaltsspeicher konnte nicht gespeichert werden"
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
"accountFragments": {
|
|
1411
|
+
"intro": "Best-Practice-Richtlinien, die von jedem Board in diesem Konto gemeinsam genutzt werden. Jedes Board erbt diese und kann sie überschreiben oder eigene hinzufügen. Code-fähige Agenten (Coder, Reviewer, Architect, Fixer) falten die relevanten in ihren Prompt ein."
|
|
1412
|
+
},
|
|
1413
|
+
"accountTeam": {
|
|
1414
|
+
"roles": {
|
|
1415
|
+
"admin": "Admin",
|
|
1416
|
+
"developer": "Developer",
|
|
1417
|
+
"product": "Product"
|
|
1418
|
+
},
|
|
1419
|
+
"org": {
|
|
1420
|
+
"ctaTitle": "Teammitglieder einladen & Rollen verwalten",
|
|
1421
|
+
"ctaBody": "Mitglieder, Rollen und Einladungen gehören zu einer Organisation. Erstellen Sie eine, um Teammitglieder einzuladen und ihre Rollen zu verwalten; Ihre persönlichen Boards bleiben unverändert.",
|
|
1422
|
+
"namePlaceholder": "Acme Inc.",
|
|
1423
|
+
"create": "Organisation erstellen",
|
|
1424
|
+
"created": "Organisation erstellt"
|
|
1425
|
+
},
|
|
1426
|
+
"members": {
|
|
1427
|
+
"title": "Mitglieder",
|
|
1428
|
+
"empty": "Noch keine Mitglieder."
|
|
1429
|
+
},
|
|
1430
|
+
"invite": {
|
|
1431
|
+
"title": "Ein Teammitglied einladen",
|
|
1432
|
+
"submit": "Einladen",
|
|
1433
|
+
"revoke": "Einladung widerrufen",
|
|
1434
|
+
"created": "Einladung erstellt",
|
|
1435
|
+
"createdEmailed": "Eine E-Mail wurde gesendet (oder kopieren Sie den Link aus der Liste unten).",
|
|
1436
|
+
"createdShareLink": "Teilen Sie den Annahme-Link mit Ihrem Teammitglied.",
|
|
1437
|
+
"status": {
|
|
1438
|
+
"pending": "Ausstehend",
|
|
1439
|
+
"accepted": "Angenommen",
|
|
1440
|
+
"revoked": "Widerrufen"
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
"email": {
|
|
1444
|
+
"title": "E-Mail-Absender",
|
|
1445
|
+
"notEnabled": "Der E-Mail-Versand ist bei diesem Deployment nicht aktiviert. Einladungen erzeugen trotzdem einen teilbaren Annahme-Link.",
|
|
1446
|
+
"connectedAs": "Verbunden über {provider} als {from}",
|
|
1447
|
+
"disconnect": "Trennen",
|
|
1448
|
+
"connect": "E-Mail-Absender verbinden",
|
|
1449
|
+
"connected": "E-Mail-Absender verbunden",
|
|
1450
|
+
"fromPlaceholder": "Absenderadresse",
|
|
1451
|
+
"apiKeyPlaceholder": "API-Schlüssel des Anbieters",
|
|
1452
|
+
"providers": {
|
|
1453
|
+
"resend": "Resend",
|
|
1454
|
+
"sendgrid": "SendGrid"
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
"apiKeys": {
|
|
1458
|
+
"title": "Konto-API-Schlüssel"
|
|
1459
|
+
},
|
|
1460
|
+
"errors": {
|
|
1461
|
+
"updateRoles": "Rollen konnten nicht aktualisiert werden",
|
|
1462
|
+
"loadSettings": "Team-Einstellungen konnten nicht geladen werden",
|
|
1463
|
+
"createOrg": "Organisation konnte nicht erstellt werden",
|
|
1464
|
+
"sendInvite": "Einladung konnte nicht gesendet werden",
|
|
1465
|
+
"revokeInvite": "Einladung konnte nicht widerrufen werden",
|
|
1466
|
+
"connectEmail": "E-Mail-Absender konnte nicht verbunden werden",
|
|
1467
|
+
"disconnectEmail": "E-Mail-Absender konnte nicht getrennt werden"
|
|
1468
|
+
},
|
|
1469
|
+
"emailNoun": "E-Mail-Versand"
|
|
1470
|
+
},
|
|
1471
|
+
"boardSwitcher": {
|
|
1472
|
+
"accountFallback": "Konto",
|
|
1473
|
+
"boardFallback": "Board",
|
|
1474
|
+
"providers": {
|
|
1475
|
+
"docker": "Docker (lokal)",
|
|
1476
|
+
"custom": "Benutzerdefiniert"
|
|
1477
|
+
},
|
|
1478
|
+
"account": {
|
|
1479
|
+
"newOrg": "Neue Organisation…",
|
|
1480
|
+
"settings": "Konto-Einstellungen…",
|
|
1481
|
+
"defaultProvider": "Standard-Cloud-Anbieter"
|
|
1482
|
+
},
|
|
1483
|
+
"board": {
|
|
1484
|
+
"new": "Neues Board…",
|
|
1485
|
+
"rename": "Board umbenennen…",
|
|
1486
|
+
"delete": "Board löschen"
|
|
1487
|
+
},
|
|
1488
|
+
"prompt": {
|
|
1489
|
+
"create": "Erstellen",
|
|
1490
|
+
"nameLabel": "Name",
|
|
1491
|
+
"descriptionLabel": "Beschreibung",
|
|
1492
|
+
"descriptionHint": "Optional",
|
|
1493
|
+
"descriptionPlaceholder": "Wofür ist dieses Board?",
|
|
1494
|
+
"account": {
|
|
1495
|
+
"title": "Neue Organisation",
|
|
1496
|
+
"placeholder": "Acme Inc."
|
|
1497
|
+
},
|
|
1498
|
+
"board": {
|
|
1499
|
+
"title": "Neues Board",
|
|
1500
|
+
"placeholder": "Unbenanntes Board"
|
|
1501
|
+
},
|
|
1502
|
+
"rename": {
|
|
1503
|
+
"title": "Board-Einstellungen",
|
|
1504
|
+
"placeholder": "Board-Name"
|
|
1505
|
+
}
|
|
1506
|
+
},
|
|
1507
|
+
"toast": {
|
|
1508
|
+
"updateProviderFailed": "Standard-Anbieter konnte nicht aktualisiert werden",
|
|
1509
|
+
"switchAccountFailed": "Konto konnte nicht gewechselt werden",
|
|
1510
|
+
"openBoardFailed": "Board konnte nicht geöffnet werden",
|
|
1511
|
+
"boardDeleted": "Board gelöscht",
|
|
1512
|
+
"deleteBoardFailed": "Board konnte nicht gelöscht werden"
|
|
1513
|
+
},
|
|
1514
|
+
"confirmDelete": {
|
|
1515
|
+
"title": "Dieses Board löschen?",
|
|
1516
|
+
"body": "\"{name}\" und alles darin wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
1517
|
+
}
|
|
1518
|
+
},
|
|
1519
|
+
"notifications": {
|
|
1520
|
+
"heading": "Benötigt Ihre Aufmerksamkeit",
|
|
1521
|
+
"overdue": "Überfällig",
|
|
1522
|
+
"openPr": "PR öffnen",
|
|
1523
|
+
"dismiss": "Verwerfen",
|
|
1524
|
+
"toast": {
|
|
1525
|
+
"acted": "Als erledigt markiert",
|
|
1526
|
+
"dismissed": "Verworfen",
|
|
1527
|
+
"actFailed": "Diese Aktion konnte nicht abgeschlossen werden",
|
|
1528
|
+
"dismissFailed": "Konnte nicht verworfen werden"
|
|
1529
|
+
},
|
|
1530
|
+
"action": {
|
|
1531
|
+
"merge_review": "Mergen",
|
|
1532
|
+
"pipeline_complete": "Bestätigen & mergen",
|
|
1533
|
+
"ci_failed": "Lauf wiederholen",
|
|
1534
|
+
"test_failed": "Lauf wiederholen",
|
|
1535
|
+
"requirement_review": "Als gelesen markieren",
|
|
1536
|
+
"clarity_review": "Als gelesen markieren",
|
|
1537
|
+
"release_regression": "Bestätigen",
|
|
1538
|
+
"decision_required": "Als gelesen markieren",
|
|
1539
|
+
"human_test_ready": "Als gelesen markieren",
|
|
1540
|
+
"visual_confirmation_ready": "Als gelesen markieren",
|
|
1541
|
+
"human_review": "Als gelesen markieren",
|
|
1542
|
+
"followup_pending": "Als gelesen markieren",
|
|
1543
|
+
"initiative": "Als gelesen markieren",
|
|
1544
|
+
"markRead": "Als gelesen markieren"
|
|
1545
|
+
}
|
|
1546
|
+
},
|
|
1547
|
+
"aiProvidersBanner": {
|
|
1548
|
+
"setup": {
|
|
1549
|
+
"title": "Kein KI-Modell konfiguriert",
|
|
1550
|
+
"body": "Agenten benötigen ein Modell, um zu laufen. KI funktioniert nur bei einem Cloudflare-Deployment mit aktiviertem Workers AI von Haus aus. Verbinden Sie andernfalls einen Anbieter-Schlüssel, ein Abonnement, einen Proxy oder einen lokalen Runner, um fortzufahren.",
|
|
1551
|
+
"action": "KI konfigurieren"
|
|
1552
|
+
},
|
|
1553
|
+
"preset": {
|
|
1554
|
+
"title": "Standard-Modell-Preset verwendet nicht verfügbare Modelle",
|
|
1555
|
+
"body": "Aufgaben, die das Standard-Preset verwenden, würden fehlschlagen. Bearbeiten Sie das Preset oder konfigurieren Sie den fehlenden Anbieter.",
|
|
1556
|
+
"action": "Preset überprüfen"
|
|
1557
|
+
}
|
|
1558
|
+
},
|
|
1559
|
+
"githubPatBanner": {
|
|
1560
|
+
"title": "GitHub-PAT nicht konfiguriert",
|
|
1561
|
+
"body": "Der lokale Modus erreicht GitHub mit einem Personal Access Token. Ohne einen schlagen Agentenschritte fehl, die klonen, pushen, PRs öffnen, auf CI warten oder mergen.",
|
|
1562
|
+
"createToken": "Ein GitHub-Token erstellen (Scopes vorausgewählt)",
|
|
1563
|
+
"thenSet": "Setzen Sie dann {envVar} und starten Sie neu."
|
|
1564
|
+
},
|
|
1565
|
+
"providerConfigBanner": {
|
|
1566
|
+
"titleMany": "Anbieter benötigen Konfiguration",
|
|
1567
|
+
"titleOne": {
|
|
1568
|
+
"environment": "Environment-Anbieter benötigt Konfiguration",
|
|
1569
|
+
"runner-pool": "Runner-Pool benötigt Konfiguration"
|
|
1570
|
+
},
|
|
1571
|
+
"body": "Ein Anbieter ist für diese Instanz eingerichtet, aber es fehlen erforderliche Einstellungen, sodass er noch nicht laufen kann. Fügen Sie die Pflichtfelder hinzu, um die Verbindung abzuschließen.",
|
|
1572
|
+
"action": {
|
|
1573
|
+
"environment": "Environment-Anbieter konfigurieren",
|
|
1574
|
+
"runner-pool": "Runner-Pool konfigurieren"
|
|
1575
|
+
}
|
|
1576
|
+
},
|
|
1577
|
+
"infraSetupBanner": {
|
|
1578
|
+
"agentExecutor": {
|
|
1579
|
+
"title": "Agent-Executor nicht konfiguriert",
|
|
1580
|
+
"body": "Dieses Deployment führt Agenten auf einem selbst gehosteten Runner-Pool aus, aber es ist keiner registriert, sodass kein Agent laufen kann, bis Sie einen verbinden.",
|
|
1581
|
+
"action": "Runner-Pool konfigurieren"
|
|
1582
|
+
},
|
|
1583
|
+
"ephemeralEnvironments": {
|
|
1584
|
+
"title": "Testumgebung nicht konfiguriert",
|
|
1585
|
+
"body": "Es ist kein Anbieter für ephemere Umgebungen registriert, sodass Test-Agenten, die eine Live-Umgebung benötigen, nicht laufen können. Verbinden Sie einen, um sie zu aktivieren.",
|
|
1586
|
+
"action": "Environment konfigurieren"
|
|
1587
|
+
},
|
|
1588
|
+
"binaryStorage": {
|
|
1589
|
+
"title": "Inhaltsspeicher nicht konfiguriert",
|
|
1590
|
+
"body": "Für dieses Konto ist kein Binary-Storage-Backend konfiguriert, sodass UI-Screenshots und Referenzbilder keinen Speicherort haben und die visuellen Prüfungen übersprungen werden. Konfigurieren Sie einen Speicher, um sie zu aktivieren.",
|
|
1591
|
+
"action": "Speicher konfigurieren"
|
|
1592
|
+
},
|
|
1593
|
+
"dismiss": {
|
|
1594
|
+
"session": "Für diese Sitzung verwerfen",
|
|
1595
|
+
"permanent": "Ich bin mit den Einschränkungen einverstanden, nicht erneut benachrichtigen"
|
|
1596
|
+
}
|
|
1597
|
+
},
|
|
1598
|
+
"spendWarningBanner": {
|
|
1599
|
+
"title": "Ausgabenlimit erreicht, Agentenausführung pausiert",
|
|
1600
|
+
"body": "Die Token-Ausgaben dieses Monats haben das konfigurierte Budget erreicht, sodass laufende Pipelines pausiert wurden, um weitere Kosten zu vermeiden. Die Ausführung wird automatisch fortgesetzt, wenn das Budget im nächsten Monat zurückgesetzt wird, oder sobald das Limit angehoben wird.",
|
|
1601
|
+
"spent": "Ausgegeben",
|
|
1602
|
+
"budget": "Budget",
|
|
1603
|
+
"tokens": "Tokens",
|
|
1604
|
+
"resume": "Trotzdem fortsetzen",
|
|
1605
|
+
"resumeHint": "Ein Fortsetzen führt zu weiteren Ausgaben; es pausiert erneut, wenn das Budget weiterhin überschritten wird."
|
|
1606
|
+
},
|
|
1607
|
+
"personalSetup": {
|
|
1608
|
+
"title": "Meine Einrichtung",
|
|
1609
|
+
"intro": "Ihre persönlichen Verbindungen, die für von Ihnen gestartete Läufe verwendet werden und nur für Sie sichtbar sind.",
|
|
1610
|
+
"connected": "Verbunden",
|
|
1611
|
+
"notConnected": "Nicht verbunden",
|
|
1612
|
+
"connectedCount": "keine verbunden | {count} verbunden | {count} verbunden",
|
|
1613
|
+
"sourceControl": {
|
|
1614
|
+
"title": "Versionsverwaltung"
|
|
1615
|
+
},
|
|
1616
|
+
"githubToken": {
|
|
1617
|
+
"label": "Mein GitHub-Token",
|
|
1618
|
+
"description": "Ein Personal Access Token, der für von Ihnen gestartete Läufe verwendet wird (Pushes, PRs, CI, Merge)."
|
|
1619
|
+
},
|
|
1620
|
+
"models": {
|
|
1621
|
+
"title": "Modelle"
|
|
1622
|
+
},
|
|
1623
|
+
"localRunners": {
|
|
1624
|
+
"label": "Meine lokalen Runner",
|
|
1625
|
+
"description": "Modell-Runner auf Ihrer eigenen Maschine (Ollama, LM Studio, vLLM)."
|
|
1626
|
+
},
|
|
1627
|
+
"subscriptions": {
|
|
1628
|
+
"label": "Meine Abonnements",
|
|
1629
|
+
"description": "Pläne zur individuellen Nutzung, die Sie mit einem persönlichen Passwort freischalten (Claude, GLM, Codex)."
|
|
1630
|
+
}
|
|
1631
|
+
},
|
|
1632
|
+
"integrationBack": {
|
|
1633
|
+
"backToMySetup": "Zurück zu Meine Einrichtung",
|
|
1634
|
+
"backToIntegrations": "Zurück zu Integrationen"
|
|
1635
|
+
},
|
|
1636
|
+
"commandBar": {
|
|
1637
|
+
"searchPlaceholder": "Suchen oder einen Befehl ausführen…",
|
|
1638
|
+
"noMatches": "Keine passenden Befehle.",
|
|
1639
|
+
"groups": {
|
|
1640
|
+
"create": "Erstellen",
|
|
1641
|
+
"repositories": "Repositories",
|
|
1642
|
+
"integrations": "Integrationen",
|
|
1643
|
+
"workspace": "Workspace",
|
|
1644
|
+
"account": "Konto"
|
|
1645
|
+
},
|
|
1646
|
+
"cmd": {
|
|
1647
|
+
"newPipeline": "Eine Pipeline bauen",
|
|
1648
|
+
"addFromRepo": "Service aus vorhandenem Repo hinzufügen",
|
|
1649
|
+
"bootstrapRepo": "Ein neues Repo bootstrappen",
|
|
1650
|
+
"githubManage": "GitHub-Verbindung verwalten",
|
|
1651
|
+
"githubConnect": "GitHub verbinden",
|
|
1652
|
+
"slackManage": "Slack-Benachrichtigungen verwalten",
|
|
1653
|
+
"slackConnect": "Slack verbinden",
|
|
1654
|
+
"sourceManage": "{source} verwalten",
|
|
1655
|
+
"sourceConnect": "{source} verbinden",
|
|
1656
|
+
"documentImport": "Aus Dokumenten importieren und spawnen",
|
|
1657
|
+
"taskImport": "Issues importieren",
|
|
1658
|
+
"fragments": "Kontextfragment-Bibliothek",
|
|
1659
|
+
"mergeThresholds": "Merge-Schwellenwerte",
|
|
1660
|
+
"workspaceSettings": "Workspace-Einstellungen",
|
|
1661
|
+
"modelConfiguration": "Modellkonfiguration",
|
|
1662
|
+
"serviceFragmentDefaults": "Standard-Best-Practices für Services",
|
|
1663
|
+
"accountSettings": "Konto-Einstellungen",
|
|
1664
|
+
"localModels": "Meine lokalen Runner",
|
|
1665
|
+
"sandbox": "Sandbox öffnen",
|
|
1666
|
+
"shortcuts": "Tastenkürzel"
|
|
1667
|
+
},
|
|
1668
|
+
"keywords": {
|
|
1669
|
+
"newPipeline": "pipeline agents chain",
|
|
1670
|
+
"addFromRepo": "github import existing",
|
|
1671
|
+
"bootstrapRepo": "scaffold create reference architecture",
|
|
1672
|
+
"github": "git repos pull requests issues",
|
|
1673
|
+
"slack": "slack notifications channel mentions",
|
|
1674
|
+
"documentSource": "document source prd rfc",
|
|
1675
|
+
"documentImport": "document import spawn",
|
|
1676
|
+
"taskSource": "task source tracker issues",
|
|
1677
|
+
"taskImport": "task import issues",
|
|
1678
|
+
"fragments": "prompt fragments best practice guidelines context",
|
|
1679
|
+
"mergeThresholds": "merge policy preset auto-merge ci",
|
|
1680
|
+
"workspaceSettings": "limit running tasks per service waiting escalation overdue notification timeout",
|
|
1681
|
+
"modelConfiguration": "model llm routing agent kind default preset configuration",
|
|
1682
|
+
"serviceFragmentDefaults": "fragment best practice guideline service default code-aware",
|
|
1683
|
+
"accountSettings": "account team members roles invitations email api keys fragment best practice library context organization personal",
|
|
1684
|
+
"localModels": "local model runner ollama lm studio llamacpp vllm endpoint",
|
|
1685
|
+
"sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate",
|
|
1686
|
+
"shortcuts": "keyboard shortcuts keys hotkeys cheatsheet help"
|
|
1687
|
+
}
|
|
1688
|
+
},
|
|
1689
|
+
"shortcuts": {
|
|
1690
|
+
"title": "Tastenkürzel",
|
|
1691
|
+
"commandBar": "Die Befehlsleiste öffnen",
|
|
1692
|
+
"deselect": "Auswahl aufheben / Inspector schließen",
|
|
1693
|
+
"deleteBlock": "Den ausgewählten Block löschen",
|
|
1694
|
+
"help": "Diese Kurzübersicht anzeigen"
|
|
1695
|
+
},
|
|
1696
|
+
"integrationsHub": {
|
|
1697
|
+
"title": "Integrationen",
|
|
1698
|
+
"intro": "Verbinden und verwalten Sie die externen Systeme, die dieser Workspace einbinden kann.",
|
|
1699
|
+
"searchPlaceholder": "Integrationen durchsuchen…",
|
|
1700
|
+
"noMatches": "Keine Integrationen passen zu \"{query}\".",
|
|
1701
|
+
"getStarted": {
|
|
1702
|
+
"title": "Erste Schritte",
|
|
1703
|
+
"body": "Verbinden Sie eine Code-Quelle und einen Modellanbieter, um Ihre erste Pipeline auszuführen."
|
|
1704
|
+
},
|
|
1705
|
+
"status": {
|
|
1706
|
+
"connected": "Verbunden",
|
|
1707
|
+
"keyConnected": "Schlüssel verbunden",
|
|
1708
|
+
"notConnected": "Nicht verbunden",
|
|
1709
|
+
"needsAttention": "Benötigt Aufmerksamkeit",
|
|
1710
|
+
"disabled": "Deaktiviert",
|
|
1711
|
+
"recommended": "Empfohlen"
|
|
1712
|
+
},
|
|
1713
|
+
"groups": {
|
|
1714
|
+
"models": "Modelle und Anbieter",
|
|
1715
|
+
"sourceControl": "Versionsverwaltung",
|
|
1716
|
+
"communication": "Kommunikation",
|
|
1717
|
+
"documents": "Dokumente",
|
|
1718
|
+
"taskTrackers": "Task-Tracker",
|
|
1719
|
+
"observability": "Observability",
|
|
1720
|
+
"development": "Entwicklung",
|
|
1721
|
+
"personal": "Persönlich (nur Sie)"
|
|
1722
|
+
},
|
|
1723
|
+
"items": {
|
|
1724
|
+
"openrouter": {
|
|
1725
|
+
"description": "Ein Gateway zu über 300 Modellen. Fügen Sie Ihren Schlüssel hinzu und aktivieren Sie Modelle an einem Ort."
|
|
1726
|
+
},
|
|
1727
|
+
"vendors": {
|
|
1728
|
+
"label": "Anbieter und Schlüssel",
|
|
1729
|
+
"description": "Workspace-LLM-Abonnements und Anbieter-API-Schlüssel."
|
|
1730
|
+
},
|
|
1731
|
+
"github": {
|
|
1732
|
+
"description": "Verbinden Sie die GitHub-App des Workspace, durchsuchen Sie Repos, PRs und Issues."
|
|
1733
|
+
},
|
|
1734
|
+
"slack": {
|
|
1735
|
+
"description": "Leiten Sie Benachrichtigungen an den Slack-Workspace Ihres Teams weiter."
|
|
1736
|
+
},
|
|
1737
|
+
"documentSource": {
|
|
1738
|
+
"description": "Verknüpfen Sie {source} als Dokumentquelle für Anforderungskontext."
|
|
1739
|
+
},
|
|
1740
|
+
"documentImport": {
|
|
1741
|
+
"label": "Importieren und spawnen",
|
|
1742
|
+
"description": "Ziehen Sie Dokumente aus einer verbundenen Quelle und spawnen Sie Struktur."
|
|
1743
|
+
},
|
|
1744
|
+
"taskSource": {
|
|
1745
|
+
"description": "Verknüpfen Sie {source}, um Tracker-Issues zu importieren und zu referenzieren."
|
|
1746
|
+
},
|
|
1747
|
+
"taskImport": {
|
|
1748
|
+
"label": "Issues importieren",
|
|
1749
|
+
"description": "Ziehen Sie Issues aus einem verbundenen Tracker auf das Board."
|
|
1750
|
+
},
|
|
1751
|
+
"trackerSettings": {
|
|
1752
|
+
"label": "Issue-Tracker-Einstellungen"
|
|
1753
|
+
},
|
|
1754
|
+
"observability": {
|
|
1755
|
+
"label": "Post-Release-Health",
|
|
1756
|
+
"description": "Überwachen Sie Monitore und SLOs, nachdem ein Release ausgeliefert wurde (Datadog)."
|
|
1757
|
+
},
|
|
1758
|
+
"packageRegistries": {
|
|
1759
|
+
"label": "Private Package-Registries",
|
|
1760
|
+
"description": "npm- und GitHub-Packages-Tokens, mit denen Agenten private Abhängigkeiten installieren."
|
|
1761
|
+
},
|
|
1762
|
+
"githubPat": {
|
|
1763
|
+
"label": "Mein GitHub-Token",
|
|
1764
|
+
"description": "Ein Personal Access Token, der für von Ihnen gestartete Läufe verwendet wird (Pushes, PRs, CI, Merge)."
|
|
1765
|
+
},
|
|
1766
|
+
"localRunners": {
|
|
1767
|
+
"label": "Meine lokalen Runner",
|
|
1768
|
+
"description": "Modell-Runner auf Ihrer eigenen Maschine (Ollama, LM Studio, vLLM…)."
|
|
1769
|
+
},
|
|
1770
|
+
"documentTemplates": {
|
|
1771
|
+
"label": "Vorlagen & Beispiele"
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1775
|
+
},
|
|
1776
|
+
"board": {
|
|
1777
|
+
"toast": {
|
|
1778
|
+
"updateFailed": "Änderungen konnten nicht gespeichert werden",
|
|
1779
|
+
"epicFailed": "Epic konnte nicht geändert werden",
|
|
1780
|
+
"moveFailed": "Verschieben nicht möglich",
|
|
1781
|
+
"deleteFailed": "Löschen nicht möglich",
|
|
1782
|
+
"linkFailed": "Aufgaben konnten nicht verknüpft werden",
|
|
1783
|
+
"unlinkFailed": "Abhängigkeit konnte nicht entfernt werden",
|
|
1784
|
+
"recurringDeleteFailed": "Wiederkehrende Pipeline konnte nicht gelöscht werden",
|
|
1785
|
+
"deleted": "\"{name}\" gelöscht",
|
|
1786
|
+
"moved": "\"{name}\" verschoben"
|
|
1787
|
+
},
|
|
1788
|
+
"repoTypes": {
|
|
1789
|
+
"service": "Service",
|
|
1790
|
+
"frontend": "Frontend",
|
|
1791
|
+
"library": "Bibliothek",
|
|
1792
|
+
"document": "Dokument-Repository"
|
|
1793
|
+
},
|
|
1794
|
+
"toolbar": {
|
|
1795
|
+
"addService": "Service hinzufügen",
|
|
1796
|
+
"decisionWord": "Entscheidung | Entscheidungen",
|
|
1797
|
+
"lod": {
|
|
1798
|
+
"far": "Übersicht",
|
|
1799
|
+
"mid": "Zusammenfassung",
|
|
1800
|
+
"close": "Detail",
|
|
1801
|
+
"steps": "Build-Schritte",
|
|
1802
|
+
"subtasks": "Teilaufgaben"
|
|
1803
|
+
},
|
|
1804
|
+
"spendTitle": "Token-Ausgaben diesen Monat",
|
|
1805
|
+
"spendLimitReached": "Ausgabenlimit erreicht — Läufe pausiert",
|
|
1806
|
+
"serviceAdded": "{title} hinzugefügt",
|
|
1807
|
+
"serviceAddFailed": "Service konnte nicht hinzugefügt werden",
|
|
1808
|
+
"zoomOut": "Verkleinern",
|
|
1809
|
+
"zoomIn": "Vergrößern",
|
|
1810
|
+
"fitView": "Board an Inhalt anpassen",
|
|
1811
|
+
"resetZoom": "Zoom auf 100 % zurücksetzen"
|
|
1812
|
+
},
|
|
1813
|
+
"canvas": {
|
|
1814
|
+
"emptyTitle": "Ihr Board ist leer",
|
|
1815
|
+
"emptyBody": "Fügen Sie einen Service hinzu, um zu beginnen: bootstrappen Sie ein frisches Repo oder binden Sie ein bereits vorhandenes ein.",
|
|
1816
|
+
"addBlockFailedTitle": "Block konnte nicht hinzugefügt werden",
|
|
1817
|
+
"addBlockFailedBody": "Das Backend hat die Anfrage abgelehnt.",
|
|
1818
|
+
"dropOntoTaskTitle": "Auf eine Aufgabe ziehen",
|
|
1819
|
+
"dropOntoTaskBody": "Pipelines laufen gegen Aufgaben, nicht gegen Services.",
|
|
1820
|
+
"taskBlockedTitle": "Aufgabe ist blockiert",
|
|
1821
|
+
"taskBlockedBody": "Ihre Abhängigkeiten wurden noch nicht gemergt."
|
|
1822
|
+
},
|
|
1823
|
+
"addTask": {
|
|
1824
|
+
"title": "Eine Aufgabe hinzufügen",
|
|
1825
|
+
"newTaskIn": "Neue Aufgabe in {container}",
|
|
1826
|
+
"typeLabel": "Typ",
|
|
1827
|
+
"types": {
|
|
1828
|
+
"feature": "Feature",
|
|
1829
|
+
"bug": "Bug",
|
|
1830
|
+
"document": "Dokument",
|
|
1831
|
+
"spike": "Spike",
|
|
1832
|
+
"recurring": "Wiederkehrend"
|
|
1833
|
+
},
|
|
1834
|
+
"recurringWithFrame": "Eine wiederkehrende Aufgabe führt eine Pipeline in einem Takt aus. Fahren Sie fort, um Zeitplan + Prompt festzulegen.",
|
|
1835
|
+
"recurringNoFrame": "Eine wiederkehrende Aufgabe muss auf einem Service liegen. Fügen Sie sie aus einem Service-Frame (oder einem darin enthaltenen Modul) hinzu.",
|
|
1836
|
+
"titleField": "Titel",
|
|
1837
|
+
"titlePlaceholder": "Was muss getan werden?",
|
|
1838
|
+
"issueIncluded": "{title} (aus Issue, enthalten)",
|
|
1839
|
+
"loadingIssue": "Beschreibung des verknüpften Issues wird geladen…",
|
|
1840
|
+
"additionalNotes": "Zusätzliche Notizen",
|
|
1841
|
+
"description": "Beschreibung",
|
|
1842
|
+
"notesPlaceholder": "Fügen Sie alles hinzu, was der Agent sonst noch wissen sollte — wird an die obige Issue-Beschreibung angehängt…",
|
|
1843
|
+
"descriptionPlaceholder": "Beschreiben Sie die Arbeit — Kontext, Akzeptanzkriterien, alles, was der Agent wissen sollte…",
|
|
1844
|
+
"technical": "Technische Aufgabe",
|
|
1845
|
+
"technicalHint": "Ein Refactor / eine nicht-funktionale / interne Änderung. Der Implementierer behandelt die Aufgabendefinition als primär und die Spezifikation als Regressionsreferenz; lassen Sie es aus, damit die Spec-Phase entscheidet.",
|
|
1846
|
+
"severity": "Schweregrad",
|
|
1847
|
+
"stepsToReproduce": "Schritte zur Reproduktion",
|
|
1848
|
+
"stepsToReproducePlaceholder": "Beobachtet vs. erwartet und wie zu reproduzieren…",
|
|
1849
|
+
"timebox": "Zeitbudget (Stunden)",
|
|
1850
|
+
"timeboxPlaceholder": "z. B. 8",
|
|
1851
|
+
"documentKind": "Dokumentart",
|
|
1852
|
+
"audience": "Zielgruppe",
|
|
1853
|
+
"audiencePlaceholder": "z. B. Platform Engineers",
|
|
1854
|
+
"targetPath": "Zielpfad",
|
|
1855
|
+
"targetPathPlaceholder": "z. B. docs/rfcs/0001-foo.md",
|
|
1856
|
+
"outlineHints": "Gliederungshinweise",
|
|
1857
|
+
"outlineHintsPlaceholder": "Abschnitte oder Punkte, die das Dokument abdecken soll",
|
|
1858
|
+
"docFields": {
|
|
1859
|
+
"targetUsers": {
|
|
1860
|
+
"label": "Zielnutzer",
|
|
1861
|
+
"placeholder": "Für wen das Dokument bestimmt ist und welche Aufgaben sie erledigen"
|
|
1862
|
+
},
|
|
1863
|
+
"successMetrics": {
|
|
1864
|
+
"label": "Erfolgskennzahlen",
|
|
1865
|
+
"placeholder": "Messbare Ergebnisse, die zeigen, dass es funktioniert"
|
|
1866
|
+
},
|
|
1867
|
+
"alternativesConsidered": {
|
|
1868
|
+
"label": "Erwogene Alternativen",
|
|
1869
|
+
"placeholder": "Andere abgewogene Ansätze und warum sie ausgeschlossen wurden"
|
|
1870
|
+
},
|
|
1871
|
+
"rolloutConcerns": {
|
|
1872
|
+
"label": "Rollout-Bedenken",
|
|
1873
|
+
"placeholder": "Zu berücksichtigende Migrations- und Rollout-Risiken"
|
|
1874
|
+
},
|
|
1875
|
+
"decisionDrivers": {
|
|
1876
|
+
"label": "Entscheidungstreiber",
|
|
1877
|
+
"placeholder": "Die Kräfte und Einschränkungen, die die Entscheidung treiben"
|
|
1878
|
+
},
|
|
1879
|
+
"consideredOptions": {
|
|
1880
|
+
"label": "Erwogene Optionen",
|
|
1881
|
+
"placeholder": "Die bewerteten Optionen, jeweils mit ihren Abwägungen"
|
|
1882
|
+
},
|
|
1883
|
+
"whenToUse": {
|
|
1884
|
+
"label": "Wann verwenden",
|
|
1885
|
+
"placeholder": "Der Auslöser oder die Situation, für die dieses Runbook gilt"
|
|
1886
|
+
},
|
|
1887
|
+
"escalationPath": {
|
|
1888
|
+
"label": "Eskalationspfad",
|
|
1889
|
+
"placeholder": "Wen kontaktieren und wie bei einem Ausfall eskalieren"
|
|
1890
|
+
},
|
|
1891
|
+
"researchQuestion": {
|
|
1892
|
+
"label": "Forschungsfrage",
|
|
1893
|
+
"placeholder": "Die zu beantwortende Frage oder Hypothese"
|
|
1894
|
+
},
|
|
1895
|
+
"optionsToCompare": {
|
|
1896
|
+
"label": "Zu vergleichende Optionen",
|
|
1897
|
+
"placeholder": "Die gegeneinander abzuwägenden Optionen"
|
|
1898
|
+
},
|
|
1899
|
+
"apiSurface": {
|
|
1900
|
+
"label": "API-Oberfläche",
|
|
1901
|
+
"placeholder": "Die Endpoints oder die Oberfläche im Geltungsbereich"
|
|
1902
|
+
}
|
|
1903
|
+
},
|
|
1904
|
+
"optional": "optional",
|
|
1905
|
+
"pipeline": "Pipeline",
|
|
1906
|
+
"chooseAtRunTime": "Zur Laufzeit auswählen",
|
|
1907
|
+
"mergePolicy": "Merge-Richtlinie",
|
|
1908
|
+
"workspaceDefault": "Workspace-Standard",
|
|
1909
|
+
"defaultPreset": "Standard ({name}) — {thresholds}",
|
|
1910
|
+
"defaultModelPreset": "Standard ({name})",
|
|
1911
|
+
"modelPreset": "Modell-Preset",
|
|
1912
|
+
"agentConfiguration": "Agent-Konfiguration",
|
|
1913
|
+
"contextDocuments": "Kontextdokumente",
|
|
1914
|
+
"contextIssues": "Kontext-Issues",
|
|
1915
|
+
"attach": "Anhängen",
|
|
1916
|
+
"done": "Fertig",
|
|
1917
|
+
"attachDocDisabledConnect": "Verbinden Sie zuerst eine Dokumentquelle (Integrationen)",
|
|
1918
|
+
"attachDocDisabledEnable": "Aktivieren Sie zuerst die Dokumente-Integration",
|
|
1919
|
+
"attachIssueDisabledConnect": "Verbinden Sie zuerst einen Issue-Tracker (Integrationen)",
|
|
1920
|
+
"attachIssueDisabledEnable": "Aktivieren Sie zuerst die Issue-Tracker-Integration",
|
|
1921
|
+
"importsOnAdd": "importiert beim Hinzufügen",
|
|
1922
|
+
"noDocsHint": "Hängen Sie eine Anforderung, ein RFC oder ein PRD an, damit Agenten es beim Implementieren dieser Aufgabe sehen.",
|
|
1923
|
+
"noIssuesHint": "Hängen Sie ein Tracker-Issue an, damit Agenten dessen Beschreibung und Kommentare beim Implementieren dieser Aufgabe sehen.",
|
|
1924
|
+
"plannedHint": "Die Aufgabe wird in einem geplanten Zustand hinzugefügt. Sie läuft erst, wenn Sie eine Pipeline darauf starten — Sie können sie bis dahin weiter bearbeiten.",
|
|
1925
|
+
"continue": "Weiter",
|
|
1926
|
+
"submit": "Aufgabe hinzufügen",
|
|
1927
|
+
"addFailedTitle": "Aufgabe konnte nicht hinzugefügt werden",
|
|
1928
|
+
"linkFailed": "Aufgabe hinzugefügt, aber {count} Anhang konnte nicht verknüpft werden | Aufgabe hinzugefügt, aber {count} Anhänge konnten nicht verknüpft werden"
|
|
1929
|
+
},
|
|
1930
|
+
"recurring": {
|
|
1931
|
+
"title": "Eine wiederkehrende Pipeline hinzufügen",
|
|
1932
|
+
"on": "Wiederkehrende Pipeline auf {frame}",
|
|
1933
|
+
"name": "Name",
|
|
1934
|
+
"namePlaceholder": "z. B. Wöchentliche Abhängigkeits-Updates",
|
|
1935
|
+
"pipeline": "Pipeline",
|
|
1936
|
+
"pickPipeline": "Eine Pipeline auswählen",
|
|
1937
|
+
"prompt": "Prompt",
|
|
1938
|
+
"promptPlaceholder": "Was soll jeder Lauf tun? Beschreiben Sie die Arbeit — denselben Prompt, den eine normale Aufgabe trägt. Leer lassen, um den Standard der Pipeline zu verwenden.",
|
|
1939
|
+
"issueTracker": "Issue-Tracker",
|
|
1940
|
+
"issueTrackerHint": "Die Tech-Debt-Pipeline legt vor der Implementierung ein Ticket aus ihrer Analyse an. Wählen Sie wo (für den gesamten Workspace gespeichert).",
|
|
1941
|
+
"githubIssues": "GitHub Issues",
|
|
1942
|
+
"jira": "Jira",
|
|
1943
|
+
"linear": "Linear",
|
|
1944
|
+
"jiraProjectKey": "Jira-Projektschlüssel",
|
|
1945
|
+
"jiraProjectKeyPlaceholder": "z. B. ENG",
|
|
1946
|
+
"linearTeamId": "Linear-Team-ID",
|
|
1947
|
+
"footerHint": "Eine einzelne wiederkehrende Aufgabe wird innerhalb des Service hinzugefügt; jeder Lauf ersetzt den letzten. Ihre Laufhistorie ist im Inspector sichtbar.",
|
|
1948
|
+
"submit": "Wiederkehrende Pipeline hinzufügen",
|
|
1949
|
+
"addFailedTitle": "Wiederkehrende Pipeline konnte nicht hinzugefügt werden",
|
|
1950
|
+
"onDemand": "On-Demand (nur manuell)",
|
|
1951
|
+
"onDemandHint": "Läuft nur, wenn Sie ihn auslösen, ohne Zeitplan. Da Sie jedes Mal anwesend sind, kann seine Aufgabe ein Modell mit individueller Nutzung verwenden.",
|
|
1952
|
+
"intake": "Issue-Aufnahme",
|
|
1953
|
+
"intakeHint": "Jeder Lauf wählt ein passendes offenes Issue aus dem Tracker und bearbeitet es von Anfang bis Ende.",
|
|
1954
|
+
"intakeNoSources": "Verbinden Sie zuerst eine Task-Quelle, um Issues daraus zu ziehen.",
|
|
1955
|
+
"intakeGithubRepo": "Repository",
|
|
1956
|
+
"intakeTitleFragment": "Titel enthält",
|
|
1957
|
+
"intakeTitleFragmentPlaceholder": "z. B. crash",
|
|
1958
|
+
"intakeLabels": "Labels",
|
|
1959
|
+
"intakeLabelsPlaceholder": "durch Komma getrennt",
|
|
1960
|
+
"intakeIssueType": "Issue-Typ",
|
|
1961
|
+
"intakeInProgressLabel": "In-Bearbeitung-Label"
|
|
1962
|
+
},
|
|
1963
|
+
"failure": {
|
|
1964
|
+
"containerFailedToStart": "Container konnte nicht gestartet werden",
|
|
1965
|
+
"environmentFailed": "Bereitstellung der Umgebung fehlgeschlagen",
|
|
1966
|
+
"bootstrapFailed": "Bootstrap fehlgeschlagen",
|
|
1967
|
+
"runFailed": "Lauf fehlgeschlagen",
|
|
1968
|
+
"stalled": "Lauf ins Stocken geraten",
|
|
1969
|
+
"retryBootstrap": "Bootstrap wiederholen",
|
|
1970
|
+
"retryRun": "Lauf wiederholen",
|
|
1971
|
+
"environmentSetup": "Umgebungen einrichten",
|
|
1972
|
+
"deployRunnerSetup": "Runner-Pool einrichten",
|
|
1973
|
+
"environmentLocalHint": "Lokale ephemere Umgebungen benötigen eine Deploy-Runtime, um kubectl/kustomize/helm auszuführen. Setzen Sie {runtime} in Ihrer .env: der Native-Modus führt diese Tools auf Ihrem Host aus ({native}), der Container-Modus führt sie im Deploy-Image aus ({container}).",
|
|
1974
|
+
"showDetail": "Details anzeigen",
|
|
1975
|
+
"retrying": "Wird wiederholt…",
|
|
1976
|
+
"history": {
|
|
1977
|
+
"previousErrors": "{count} vorheriger Fehler | {count} vorherige Fehler"
|
|
1978
|
+
}
|
|
1979
|
+
},
|
|
1980
|
+
"stop": {
|
|
1981
|
+
"label": "Stoppen",
|
|
1982
|
+
"bootstrapStopped": "Bootstrap gestoppt",
|
|
1983
|
+
"runStopped": "Lauf gestoppt",
|
|
1984
|
+
"stoppedDescription": "Der Container wurde beendet und der Lauf abgebrochen.",
|
|
1985
|
+
"stopFailed": "Stoppen fehlgeschlagen"
|
|
1986
|
+
},
|
|
1987
|
+
"frame": {
|
|
1988
|
+
"status": {
|
|
1989
|
+
"planned": "Keine Aufgaben",
|
|
1990
|
+
"ready": "Live",
|
|
1991
|
+
"in_progress": "Aktiv",
|
|
1992
|
+
"blocked": "Benötigt Aufmerksamkeit",
|
|
1993
|
+
"pr_ready": "Aktiv",
|
|
1994
|
+
"done": "Live"
|
|
1995
|
+
},
|
|
1996
|
+
"shared": "Geteilt",
|
|
1997
|
+
"sharedTitle": "Über Workspaces in dieser Organisation hinweg geteilt",
|
|
1998
|
+
"bootstrapping": "Wird gebootstrappt…",
|
|
1999
|
+
"bootstrappingRepository": "Repository wird gebootstrappt…",
|
|
2000
|
+
"bootstrapStepsCount": "{completed}/{total} Schritte",
|
|
2001
|
+
"runFailed": "Lauf fehlgeschlagen",
|
|
2002
|
+
"mergedOfTotal": "{merged}/{total} gemergt",
|
|
2003
|
+
"noTasksYet": "Noch keine Aufgaben",
|
|
2004
|
+
"prCount": "{count} PR",
|
|
2005
|
+
"implemented": "{merged}/{total} implementiert",
|
|
2006
|
+
"prReadyCount": "{count} PR bereit",
|
|
2007
|
+
"taskCount": "{count} Aufgabe | {count} Aufgaben",
|
|
2008
|
+
"moduleCount": "{count} Modul | {count} Module",
|
|
2009
|
+
"addTaskTitle": "Aufgabe hinzufügen",
|
|
2010
|
+
"createTaskFromIssueTitle": "Aufgabe aus Issue erstellen",
|
|
2011
|
+
"addRecurringTitle": "Wiederkehrende Pipeline hinzufügen",
|
|
2012
|
+
"collapseTitle": "Einklappen",
|
|
2013
|
+
"dragService": "Service ziehen",
|
|
2014
|
+
"dragTask": "Aufgabe ziehen",
|
|
2015
|
+
"dragToResize": "Zum Ändern der Größe ziehen",
|
|
2016
|
+
"addFirstTask": "Die erste Aufgabe hinzufügen",
|
|
2017
|
+
"createInitiativeTitle": "Initiative erstellen",
|
|
2018
|
+
"accessDenied": {
|
|
2019
|
+
"title": "Zugriff verweigert",
|
|
2020
|
+
"hint": "Sie haben keinen Zugriff auf das Repository, das diesem Service zugrunde liegt."
|
|
2021
|
+
}
|
|
2022
|
+
},
|
|
2023
|
+
"decisionBadge": {
|
|
2024
|
+
"decisionNeeded": "Entscheidung erforderlich",
|
|
2025
|
+
"approvalNeeded": "Freigabe erforderlich"
|
|
2026
|
+
},
|
|
2027
|
+
"task": {
|
|
2028
|
+
"recurringPipeline": "Wiederkehrende Pipeline",
|
|
2029
|
+
"recurringPipelinePaused": "Wiederkehrende Pipeline (pausiert)",
|
|
2030
|
+
"dragToConnect": "Auf eine andere Aufgabe ziehen, damit sie von dieser abhängt",
|
|
2031
|
+
"failed": "Fehlgeschlagen",
|
|
2032
|
+
"decisionNeeded": "Entscheidung erforderlich",
|
|
2033
|
+
"approvalNeeded": "Freigabe erforderlich",
|
|
2034
|
+
"resolve": "Auflösen",
|
|
2035
|
+
"approve": "Freigeben",
|
|
2036
|
+
"incorporatingAnswers": "Antworten werden eingearbeitet…",
|
|
2037
|
+
"reReviewing": "Wird erneut überprüft…",
|
|
2038
|
+
"recommending": "Wird empfohlen…",
|
|
2039
|
+
"starting": "Wird gestartet…",
|
|
2040
|
+
"start": "Starten",
|
|
2041
|
+
"blocked": "Blockiert",
|
|
2042
|
+
"startPipeline": "{name} starten",
|
|
2043
|
+
"pipelineFallback": "Pipeline",
|
|
2044
|
+
"waitingOn": "Wartet auf: {deps}",
|
|
2045
|
+
"blockedByDependenciesTitle": "Durch Abhängigkeiten blockiert",
|
|
2046
|
+
"noPipelineTitle": "Keine Pipeline definiert",
|
|
2047
|
+
"noPipelineBody": "Erstellen Sie zuerst eine im Builder.",
|
|
2048
|
+
"startedToast": {
|
|
2049
|
+
"title": "Lauf gestartet",
|
|
2050
|
+
"body": "\"{name}\" läuft."
|
|
2051
|
+
},
|
|
2052
|
+
"pr": "PR",
|
|
2053
|
+
"prNumber": "PR #{number}",
|
|
2054
|
+
"openPrOnGithub": "{pr} auf GitHub öffnen",
|
|
2055
|
+
"review": "Überprüfen",
|
|
2056
|
+
"merge": "Mergen",
|
|
2057
|
+
"mergeConfirm": {
|
|
2058
|
+
"title": "Diesen Pull Request mergen?",
|
|
2059
|
+
"body": "Dies mergt den PR in seinen Basis-Branch und schließt die Aufgabe ab. Dies kann nicht rückgängig gemacht werden.",
|
|
2060
|
+
"confirm": "Mergen"
|
|
2061
|
+
},
|
|
2062
|
+
"implemented": "implementiert",
|
|
2063
|
+
"module": "Modul: {name}",
|
|
2064
|
+
"buildSteps": "Build-Schritte",
|
|
2065
|
+
"reviewAndApprove": "Überprüfen & freigeben",
|
|
2066
|
+
"clickToViewStep": "Klicken, um Schrittdetails & Ausgabe anzuzeigen"
|
|
2067
|
+
},
|
|
2068
|
+
"epic": {
|
|
2069
|
+
"label": "Epic",
|
|
2070
|
+
"activeCount": "{count} aktiv",
|
|
2071
|
+
"noTasksYet": "Noch keine Aufgaben"
|
|
2072
|
+
}
|
|
2073
|
+
},
|
|
2074
|
+
"providers": {
|
|
2075
|
+
"presetMismatch": {
|
|
2076
|
+
"title": "Preset verwendet nicht verfügbare Modelle",
|
|
2077
|
+
"intro": "Das Standard-Modell-Preset \"{name}\" des Workspace weist Modelle zu, die unter der aktuellen Konfiguration nicht verfügbar sind. Aufgaben, die dieses Preset verwenden, würden fehlschlagen, sobald sie diese Schritte erreichen.",
|
|
2078
|
+
"unavailable": "Nicht verfügbar",
|
|
2079
|
+
"advice": "Richten Sie das Preset entweder auf konfigurierte Modelle aus oder fügen Sie den fehlenden Provider hinzu.",
|
|
2080
|
+
"later": "Später",
|
|
2081
|
+
"configureVendors": "Vendors konfigurieren",
|
|
2082
|
+
"editPresets": "Presets bearbeiten",
|
|
2083
|
+
"defaultPresetName": "Standard-Preset"
|
|
2084
|
+
},
|
|
2085
|
+
"onboarding": {
|
|
2086
|
+
"title": "KI-Modell-Provider einrichten",
|
|
2087
|
+
"noModelTitle": "In diesem Workspace ist noch kein KI-Modell verfügbar.",
|
|
2088
|
+
"noModelBody": "Agents benötigen ein Modell zum Ausführen. KI funktioniert nur bei einem Cloudflare-Deployment mit aktiviertem Workers AI sofort; andernfalls verbinden Sie mindestens eine der unten stehenden Quellen.",
|
|
2089
|
+
"operatorNote": "AWS Bedrock und Cloudflare Workers AI werden vom Deployment-Betreiber über die Umgebungskonfiguration aktiviert, nicht über diesen Bildschirm.",
|
|
2090
|
+
"routes": {
|
|
2091
|
+
"keys": {
|
|
2092
|
+
"title": "Provider-Schlüssel & Abonnements",
|
|
2093
|
+
"body": "Fügen Sie einen direkten Provider-API-Schlüssel hinzu (OpenAI, Anthropic, Qwen, …) oder verbinden Sie ein kommerzielles Coding-Plan-Abonnement (Kimi, DeepSeek) oder ein persönliches (Claude, GLM, Codex).",
|
|
2094
|
+
"cta": "LLM-Vendors öffnen"
|
|
2095
|
+
},
|
|
2096
|
+
"openrouter": {
|
|
2097
|
+
"title": "OpenRouter-Gateway",
|
|
2098
|
+
"body": "Aktivieren Sie Modelle über das OpenRouter-Gateway mit einem einzigen Schlüssel. Durchsuchen und aktivieren Sie die gewünschten Modelle.",
|
|
2099
|
+
"cta": "OpenRouter-Modelle durchsuchen"
|
|
2100
|
+
},
|
|
2101
|
+
"local": {
|
|
2102
|
+
"title": "Meine lokalen Runner",
|
|
2103
|
+
"body": "Richten Sie cat-factory auf ein Modell aus, das Sie selbst betreiben (Ollama, LM Studio, llama.cpp, vLLM, …). Kein API-Schlüssel, keine Kosten.",
|
|
2104
|
+
"cta": "Lokale Runner konfigurieren"
|
|
2105
|
+
}
|
|
2106
|
+
}
|
|
2107
|
+
},
|
|
2108
|
+
"personalCredential": {
|
|
2109
|
+
"titleWrongPassword": "Falsches persönliches Passwort",
|
|
2110
|
+
"titleNoSubscription": "Verbinden Sie Ihr {vendor}-Abonnement",
|
|
2111
|
+
"titleExpired": "Ihr {vendor}-Abonnement ist abgelaufen",
|
|
2112
|
+
"titleDefault": "Geben Sie Ihr persönliches Passwort ein",
|
|
2113
|
+
"fallbackVendor": "Abonnement",
|
|
2114
|
+
"connectBody": "Diese Aufgabe verwendet ein {vendor}-Modell, das über Ihr eigenes {vendor}-Abonnement läuft. Verbinden (oder erneuern) Sie es zuerst und starten Sie den Lauf dann erneut.",
|
|
2115
|
+
"connectCta": "Abonnement verbinden",
|
|
2116
|
+
"passwordBody": "Geben Sie das persönliche Passwort ein, das Ihr {vendor}-Abonnement schützt. Es entsperrt Ihre Zugangsdaten nur für diesen Lauf und wird in diesem Browser zwischengespeichert, sodass Sie eine Weile nicht erneut gefragt werden.",
|
|
2117
|
+
"passwordField": "Persönliches Passwort",
|
|
2118
|
+
"passwordPlaceholder": "Ihr persönliches Passwort",
|
|
2119
|
+
"submit": "Entsperren & ausführen",
|
|
2120
|
+
"cancel": "Abbrechen",
|
|
2121
|
+
"toast": {
|
|
2122
|
+
"started": "Lauf gestartet",
|
|
2123
|
+
"startFailed": "Lauf konnte nicht gestartet werden"
|
|
2124
|
+
},
|
|
2125
|
+
"vendors": {
|
|
2126
|
+
"claude": "Claude",
|
|
2127
|
+
"glm": "GLM (Z.ai)",
|
|
2128
|
+
"codex": "ChatGPT (Codex)"
|
|
2129
|
+
}
|
|
2130
|
+
},
|
|
2131
|
+
"apiKeys": {
|
|
2132
|
+
"directHeading": "Direkte Provider-API-Schlüssel",
|
|
2133
|
+
"proxyHeading": "Proxy-/Gateway-API-Schlüssel",
|
|
2134
|
+
"directAccountIntro": "Verbinden Sie einen Vendor-API-Schlüssel, der von jedem Workspace in diesem Account geteilt wird. Schlüssel werden verschlüsselt gespeichert, gepoolt und nach Nutzung rotiert. Account-Schlüssel werden vom Administrator verwaltet.",
|
|
2135
|
+
"directIntro": "Verbinden Sie einen Vendor-API-Schlüssel, damit Modelle direkt bei diesem Provider laufen. Schlüssel werden verschlüsselt gespeichert, gepoolt und nach Nutzung rotiert. Beschränken Sie einen Schlüssel auf diesen Workspace (mit dem Team geteilt) oder auf sich selbst (Ihr eigener Pool, überall nutzbar).",
|
|
2136
|
+
"proxyAccountIntro": "Verbinden Sie einen Proxy-Schlüssel (OpenRouter, LiteLLM), der von jedem Workspace in diesem Account geteilt wird. Ein Proxy ist ein Vermittler, der viele Vendors hinter einem einzigen Schlüssel bündelt. Schlüssel werden verschlüsselt gespeichert, gepoolt und nach Nutzung rotiert.",
|
|
2137
|
+
"proxyIntro": "Verbinden Sie einen Proxy-Schlüssel (OpenRouter, LiteLLM). Ein Proxy ist ein Vermittler, der die Modelle vieler Vendors über ein einziges Gateway erreicht, statt direkt bei einem Vendor. Schlüssel werden verschlüsselt gespeichert, gepoolt und nach Nutzung rotiert. Beschränken Sie einen Schlüssel auf diesen Workspace (mit dem Team geteilt) oder auf sich selbst (Ihr eigener Pool, überall nutzbar).",
|
|
2138
|
+
"scopeField": "Geltungsbereich",
|
|
2139
|
+
"scopeWorkspace": "Dieser Workspace",
|
|
2140
|
+
"scopeUser": "Meine Schlüssel (nur ich)",
|
|
2141
|
+
"providerField": "Provider",
|
|
2142
|
+
"proxyField": "Proxy",
|
|
2143
|
+
"openKeys": "{provider}-Schlüssel öffnen ↗",
|
|
2144
|
+
"cachingNote": "Aktiviert Prompt-Caching für {provider}-Modelle, sodass ein langer Multi-Turn-Lauf sein zwischengespeichertes Prompt-Präfix wiederverwendet, anstatt es in jeder Runde erneut zu senden.",
|
|
2145
|
+
"labelField": "Bezeichnung (optional)",
|
|
2146
|
+
"labelPlaceholder": "z. B. Team-Schlüssel",
|
|
2147
|
+
"defaultLabel": "{provider}-Schlüssel",
|
|
2148
|
+
"keyField": "API-Schlüssel",
|
|
2149
|
+
"keyPlaceholder": "API-Schlüssel einfügen",
|
|
2150
|
+
"connect": "Verbinden",
|
|
2151
|
+
"connected": "Verbunden ({count})",
|
|
2152
|
+
"usage": "{tokens} Tok in diesem Fenster · {count} Aufruf | {tokens} Tok in diesem Fenster · {count} Aufrufe",
|
|
2153
|
+
"toast": {
|
|
2154
|
+
"connected": "API-Schlüssel verbunden",
|
|
2155
|
+
"connectFailed": "Schlüssel konnte nicht verbunden werden",
|
|
2156
|
+
"removeFailed": "Schlüssel konnte nicht entfernt werden"
|
|
2157
|
+
},
|
|
2158
|
+
"providers": {
|
|
2159
|
+
"openai": {
|
|
2160
|
+
"label": "OpenAI",
|
|
2161
|
+
"step1": "Öffnen Sie platform.openai.com → API keys und erstellen Sie einen neuen Secret Key.",
|
|
2162
|
+
"step2": "Kopieren Sie den Schlüssel (beginnt mit sk-…); er wird nur einmal angezeigt."
|
|
2163
|
+
},
|
|
2164
|
+
"anthropic": {
|
|
2165
|
+
"label": "Anthropic (Claude API)",
|
|
2166
|
+
"step1": "Öffnen Sie console.anthropic.com → Settings → API Keys und erstellen Sie einen Schlüssel.",
|
|
2167
|
+
"step2": "Kopieren Sie den Schlüssel (beginnt mit sk-ant-…)."
|
|
2168
|
+
},
|
|
2169
|
+
"qwen": {
|
|
2170
|
+
"label": "Qwen (Alibaba DashScope)",
|
|
2171
|
+
"step1": "Öffnen Sie die DashScope-Konsole (international) → API-KEY und erstellen Sie einen Schlüssel.",
|
|
2172
|
+
"step2": "Kopieren Sie den Schlüssel; er authentifiziert den OpenAI-kompatiblen Qwen-Endpunkt."
|
|
2173
|
+
},
|
|
2174
|
+
"deepseek": {
|
|
2175
|
+
"label": "DeepSeek",
|
|
2176
|
+
"step1": "Öffnen Sie platform.deepseek.com → API keys und erstellen Sie einen Schlüssel.",
|
|
2177
|
+
"step2": "Kopieren Sie den Schlüssel (beginnt mit sk-…)."
|
|
2178
|
+
},
|
|
2179
|
+
"moonshot": {
|
|
2180
|
+
"label": "Moonshot (Kimi API)",
|
|
2181
|
+
"step1": "Öffnen Sie platform.moonshot.ai → API Keys und erstellen Sie einen Schlüssel.",
|
|
2182
|
+
"step2": "Kopieren Sie den Schlüssel; er authentifiziert den OpenAI-kompatiblen Moonshot-Endpunkt."
|
|
2183
|
+
},
|
|
2184
|
+
"openrouter": {
|
|
2185
|
+
"label": "OpenRouter",
|
|
2186
|
+
"step1": "Öffnen Sie openrouter.ai → Keys und erstellen Sie einen API-Schlüssel.",
|
|
2187
|
+
"step2": "Kopieren Sie den Schlüssel (beginnt mit sk-or-…); er erreicht über ein Gateway mehr als 300 Modelle."
|
|
2188
|
+
},
|
|
2189
|
+
"litellm": {
|
|
2190
|
+
"label": "LiteLLM (selbst gehostetes Gateway)",
|
|
2191
|
+
"step1": "Erstellen Sie einen virtuellen Schlüssel auf Ihrem LiteLLM-Gateway (oder verwenden Sie dessen Master Key).",
|
|
2192
|
+
"step2": "Die Basis-URL des Gateways wird von Ihrem Deployment-Betreiber festgelegt (LITELLM_BASE_URL), nicht hier."
|
|
2193
|
+
}
|
|
2194
|
+
},
|
|
2195
|
+
"keyNoun": "diesen API-Schlüssel"
|
|
2196
|
+
},
|
|
2197
|
+
"vendorCredentials": {
|
|
2198
|
+
"title": "LLM-Vendors",
|
|
2199
|
+
"tabs": {
|
|
2200
|
+
"pool": "Workspace-Pool",
|
|
2201
|
+
"direct": "Direkte Provider",
|
|
2202
|
+
"proxy": "Proxys",
|
|
2203
|
+
"personal": "Persönliche Abonnements"
|
|
2204
|
+
},
|
|
2205
|
+
"poolIntro": "Verbinden Sie ein kommerzielles Coding-Plan-Abonnement (Kimi, DeepSeek), das Team-/Organisationsnutzung erlaubt, um Agent-Schritte über den Claude-Code-Harness statt eines API-Schlüssels auszuführen. Tokens werden verschlüsselt gespeichert, gepoolt und nach Nutzung rotiert. Abonnement-Modelle haben ein pauschales Kontingent, sodass sie Ihr Ausgabenbudget nicht belasten. Abonnements zur Einzelnutzung (Claude, GLM, ChatGPT/Codex) werden pro Benutzer im Tab \"Persönliche Abonnements\" verbunden.",
|
|
2206
|
+
"vendorField": "Vendor",
|
|
2207
|
+
"labelField": "Bezeichnung (optional)",
|
|
2208
|
+
"labelPlaceholder": "z. B. Arbeitskonto",
|
|
2209
|
+
"defaultLabel": "{vendor}-Token",
|
|
2210
|
+
"tokenField": "Token",
|
|
2211
|
+
"tokenPlaceholder": "Ihr Coding-Plan-API-Schlüssel",
|
|
2212
|
+
"connect": "Verbinden",
|
|
2213
|
+
"connected": "Verbunden ({count})",
|
|
2214
|
+
"usage": "{tokens} Tok in diesem Fenster · {count} Lauf | {tokens} Tok in diesem Fenster · {count} Läufe",
|
|
2215
|
+
"toast": {
|
|
2216
|
+
"connected": "Token verbunden",
|
|
2217
|
+
"connectFailed": "Token konnte nicht verbunden werden",
|
|
2218
|
+
"removeFailed": "Token konnte nicht entfernt werden"
|
|
2219
|
+
},
|
|
2220
|
+
"vendors": {
|
|
2221
|
+
"kimi": {
|
|
2222
|
+
"label": "Kimi (Moonshot Coding Plan)",
|
|
2223
|
+
"step1": "Öffnen Sie Ihre Moonshot- (Kimi-) Coding-Plan-Konsole und erstellen Sie einen API-Schlüssel für den Anthropic-kompatiblen Endpunkt.",
|
|
2224
|
+
"step2": "Kopieren Sie den API-Schlüssel. Agent-Schritte werden über Claude Code gegen den Anthropic-Endpunkt von Moonshot mit vollem Kontext ausgeführt.",
|
|
2225
|
+
"step3": "Fügen Sie den Schlüssel unten ein."
|
|
2226
|
+
},
|
|
2227
|
+
"deepseek": {
|
|
2228
|
+
"label": "DeepSeek (Coding Plan)",
|
|
2229
|
+
"step1": "Öffnen Sie Ihre DeepSeek-Coding-Plan-Konsole und erstellen Sie einen API-Schlüssel für den Anthropic-kompatiblen Endpunkt.",
|
|
2230
|
+
"step2": "Kopieren Sie den API-Schlüssel. Agent-Schritte werden über Claude Code gegen den Anthropic-Endpunkt von DeepSeek mit vollem Kontext ausgeführt.",
|
|
2231
|
+
"step3": "Fügen Sie den Schlüssel unten ein."
|
|
2232
|
+
}
|
|
2233
|
+
},
|
|
2234
|
+
"confirmRemove": {
|
|
2235
|
+
"title": "Diese Zugangsdaten entfernen?",
|
|
2236
|
+
"body": "\"{name}\" wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
2237
|
+
}
|
|
2238
|
+
}
|
|
2239
|
+
},
|
|
2240
|
+
"github": {
|
|
2241
|
+
"onboarding": {
|
|
2242
|
+
"title": "cat-factory mit GitHub verbinden",
|
|
2243
|
+
"intro": "cat-factory funktioniert, indem es Pull Requests in Ihren Repositorys öffnet. Installieren Sie die GitHub App auf Ihrem Account oder Ihrer Organisation, um fortzufahren; Sie können ihr jedes Repository oder eine Teilmenge gewähren.",
|
|
2244
|
+
"signedInAs": "Angemeldet als {login}",
|
|
2245
|
+
"signOut": "Abmelden"
|
|
2246
|
+
},
|
|
2247
|
+
"connect": {
|
|
2248
|
+
"yourInstallations": "Ihre Installationen",
|
|
2249
|
+
"refresh": "Aktualisieren",
|
|
2250
|
+
"lookingForInstallations": "Suche nach Installationen…",
|
|
2251
|
+
"noInstallations": "Noch keine Installationen für die App gefunden. Installieren Sie sie unten oder verbinden Sie per ID.",
|
|
2252
|
+
"installationMeta": "{targetType} · Installation {id}",
|
|
2253
|
+
"linked": "verknüpft",
|
|
2254
|
+
"linkedTitle": "Bereits mit diesem Workspace verknüpft",
|
|
2255
|
+
"inUse": "in Verwendung",
|
|
2256
|
+
"inUseTitle": "Bereits mit einem anderen Workspace verbunden",
|
|
2257
|
+
"connect": "Verbinden",
|
|
2258
|
+
"or": "oder",
|
|
2259
|
+
"installApp": "GitHub App installieren",
|
|
2260
|
+
"orConnectById": "oder per ID verbinden",
|
|
2261
|
+
"installationId": "Installations-ID",
|
|
2262
|
+
"toast": {
|
|
2263
|
+
"connected": "GitHub verbunden"
|
|
2264
|
+
},
|
|
2265
|
+
"errors": {
|
|
2266
|
+
"listInstallations": "GitHub-Installationen konnten nicht aufgelistet werden",
|
|
2267
|
+
"startInstall": "Die Installation der GitHub App konnte nicht gestartet werden",
|
|
2268
|
+
"connect": "Verbindung nicht möglich"
|
|
2269
|
+
}
|
|
2270
|
+
},
|
|
2271
|
+
"panel": {
|
|
2272
|
+
"connectIntro": "Verbinden Sie eine GitHub-App-Installation, um Board-Blöcke mit Repositorys zu hinterlegen, Pull Requests und Issues zu durchsuchen und Agents Branches pushen und PRs öffnen zu lassen.",
|
|
2273
|
+
"installationMeta": "{targetType} · Installation {id}",
|
|
2274
|
+
"resync": "Neu synchronisieren",
|
|
2275
|
+
"backfill": "Backfill",
|
|
2276
|
+
"disconnect": "Trennen",
|
|
2277
|
+
"loading": "Wird geladen…",
|
|
2278
|
+
"tabs": {
|
|
2279
|
+
"repos": "Repositorys",
|
|
2280
|
+
"pulls": "Pull Requests",
|
|
2281
|
+
"issues": "Issues"
|
|
2282
|
+
},
|
|
2283
|
+
"linkedToBoard": "Mit diesem Board verknüpft",
|
|
2284
|
+
"manageRepos": "Repos verwalten",
|
|
2285
|
+
"manageHint": "Wählen Sie die Repositorys aus, die dieses Board verfolgen soll. Die GitHub-Verbindung wird über den Account geteilt, und jedes Board verknüpft seine eigenen Repos.",
|
|
2286
|
+
"loadingRepos": "Repositorys werden geladen…",
|
|
2287
|
+
"noAvailableRepos": "Die Installation kann noch auf keine Repositorys zugreifen.",
|
|
2288
|
+
"private": "privat",
|
|
2289
|
+
"saveSelection": "Auswahl speichern",
|
|
2290
|
+
"noLinkedRepos": "Noch keine Repositorys verknüpft. Verwenden Sie \"Repos verwalten\", um auszuwählen, welche Repositorys dieses Board verfolgt.",
|
|
2291
|
+
"open": "Öffnen",
|
|
2292
|
+
"protected": "geschützt",
|
|
2293
|
+
"newBranch": "Neuer Branch",
|
|
2294
|
+
"fromSha": "Von SHA",
|
|
2295
|
+
"commitShaPlaceholder": "Commit-SHA",
|
|
2296
|
+
"createBranch": "Branch erstellen",
|
|
2297
|
+
"openPr": "PR öffnen",
|
|
2298
|
+
"repository": "Repository",
|
|
2299
|
+
"chooseRepository": "Repository auswählen",
|
|
2300
|
+
"prTitle": "Titel",
|
|
2301
|
+
"headBranch": "Head-Branch",
|
|
2302
|
+
"baseBranch": "Base-Branch",
|
|
2303
|
+
"openPullRequest": "Pull Request öffnen",
|
|
2304
|
+
"noPulls": "Keine Pull Requests synchronisiert.",
|
|
2305
|
+
"mergePr": "Pull Request mergen",
|
|
2306
|
+
"noIssues": "Keine Issues synchronisiert.",
|
|
2307
|
+
"prState": {
|
|
2308
|
+
"open": "offen",
|
|
2309
|
+
"closed": "geschlossen",
|
|
2310
|
+
"merged": "gemergt"
|
|
2311
|
+
},
|
|
2312
|
+
"issueState": {
|
|
2313
|
+
"open": "offen",
|
|
2314
|
+
"closed": "geschlossen"
|
|
2315
|
+
},
|
|
2316
|
+
"toast": {
|
|
2317
|
+
"disconnected": "GitHub getrennt",
|
|
2318
|
+
"resync": "Neusynchronisierung {status}",
|
|
2319
|
+
"reposUpdated": "Verknüpfte Repositorys aktualisiert",
|
|
2320
|
+
"branchCreated": "Branch {name} erstellt",
|
|
2321
|
+
"prOpened": "Pull Request geöffnet",
|
|
2322
|
+
"prMerged": "PR #{number} gemergt"
|
|
2323
|
+
},
|
|
2324
|
+
"errors": {
|
|
2325
|
+
"disconnect": "Trennen nicht möglich",
|
|
2326
|
+
"resync": "Neusynchronisierung nicht möglich",
|
|
2327
|
+
"loadRepos": "Repositorys konnten nicht geladen werden",
|
|
2328
|
+
"updateRepos": "Repositorys konnten nicht aktualisiert werden",
|
|
2329
|
+
"loadBranches": "Branches konnten nicht geladen werden",
|
|
2330
|
+
"createBranch": "Branch konnte nicht erstellt werden",
|
|
2331
|
+
"openPr": "Pull Request konnte nicht geöffnet werden",
|
|
2332
|
+
"merge": "Mergen nicht möglich"
|
|
2333
|
+
},
|
|
2334
|
+
"confirmDisconnect": {
|
|
2335
|
+
"title": "GitHub trennen?",
|
|
2336
|
+
"body": "Die App verliert den Zugriff auf Ihre Repositorys, bis Sie sie erneut verbinden."
|
|
2337
|
+
}
|
|
2338
|
+
},
|
|
2339
|
+
"addService": {
|
|
2340
|
+
"title": "Einen Service aus einem Repository hinzufügen",
|
|
2341
|
+
"intro": "Wählen Sie ein bestehendes GitHub-Repository, um es als Board-Service hinzuzufügen. Kein Bootstrapping: Das Repo wird unverändert mit einem neuen Service-Frame verknüpft, und Aufgaben, die Sie darauf ausführen, zielen auf dieses Repo.",
|
|
2342
|
+
"connectFirst": "Verbinden Sie diesen Workspace zuerst mit GitHub. Verknüpfen Sie eine Installation, auf der die App bereits ist, oder installieren Sie sie.",
|
|
2343
|
+
"repository": "Repository",
|
|
2344
|
+
"repositoryHint": "Repositorys, auf die die GitHub App zugreifen kann. Ihres nicht dabei? Gewähren Sie der App unten Zugriff und aktualisieren Sie dann.",
|
|
2345
|
+
"repoType": "Repository-Typ",
|
|
2346
|
+
"repoTypeHint": "Was dieses Repo ist: ein Backend-Service, eine Frontend-App, eine gemeinsame Bibliothek oder ein Dokumenten-Repository (nur Docs/Spikes).",
|
|
2347
|
+
"noReposAvailable": "Noch keine Repositorys verfügbar. Gewähren Sie der App unten Zugriff auf eines und aktualisieren Sie dann.",
|
|
2348
|
+
"searchPlaceholder": "Repositorys nach Eigentümer oder Name durchsuchen…",
|
|
2349
|
+
"searchMinChars": "Geben Sie mindestens {min} Zeichen ein, um zu suchen. | Geben Sie mindestens {min} Zeichen ein, um zu suchen.",
|
|
2350
|
+
"noMatches": "Keine Repositorys für {query} gefunden.",
|
|
2351
|
+
"clearSelection": "Auswahl aufheben",
|
|
2352
|
+
"showingCount": "{shown} von {total} Repositorys werden angezeigt.",
|
|
2353
|
+
"repoLabel": {
|
|
2354
|
+
"private": " (privat)",
|
|
2355
|
+
"monorepo": " · Monorepo",
|
|
2356
|
+
"onBoard": " · bereits auf dem Board",
|
|
2357
|
+
"personal": " · persönlich (Ihr Token)"
|
|
2358
|
+
},
|
|
2359
|
+
"monorepoLabel": "Dies ist ein Monorepo (beherbergt mehr als einen Service)",
|
|
2360
|
+
"monorepoDescription": "Fügen Sie mehrere Services aus einem Repo hinzu, jeder an ein Unterverzeichnis gebunden.",
|
|
2361
|
+
"monorepoBrowseHint": "Durchsuchen Sie das Repository und wählen Sie das Verzeichnis des Service aus, den Sie hinzufügen möchten. Agents, die an diesem Service arbeiten, laufen innerhalb dieses Unterverzeichnisses.",
|
|
2362
|
+
"serviceDirectory": "Service-Verzeichnis:",
|
|
2363
|
+
"noDirectorySelected": "Noch kein Verzeichnis ausgewählt.",
|
|
2364
|
+
"addedConfigure": "{title} hinzugefügt, konfigurieren Sie es",
|
|
2365
|
+
"grantAccess": "Der App Zugriff auf ein Repo gewähren",
|
|
2366
|
+
"grantAccessTitle": "Öffnen Sie die Installationseinstellungen der App, um ihr Zugriff auf ein Repository zu gewähren",
|
|
2367
|
+
"refreshList": "Liste aktualisieren",
|
|
2368
|
+
"done": "Fertig",
|
|
2369
|
+
"add": "Service hinzufügen",
|
|
2370
|
+
"addAnother": "Weiteren Service hinzufügen",
|
|
2371
|
+
"toast": {
|
|
2372
|
+
"addedTitle": "Service hinzugefügt",
|
|
2373
|
+
"addedDescription": "{title} ist auf dem Board, konfigurieren Sie es unten.",
|
|
2374
|
+
"addFailedTitle": "Service konnte nicht hinzugefügt werden"
|
|
2375
|
+
}
|
|
2376
|
+
},
|
|
2377
|
+
"repoTree": {
|
|
2378
|
+
"root": "root",
|
|
2379
|
+
"loading": "Wird geladen…",
|
|
2380
|
+
"noSubdirectories": "Keine Unterverzeichnisse hier.",
|
|
2381
|
+
"empty": "Nichts hier.",
|
|
2382
|
+
"select": "Auswählen",
|
|
2383
|
+
"selected": "Ausgewählt",
|
|
2384
|
+
"useThisFolder": "Diesen Ordner verwenden",
|
|
2385
|
+
"errors": {
|
|
2386
|
+
"listDirectory": "Verzeichnis konnte nicht aufgelistet werden"
|
|
2387
|
+
}
|
|
2388
|
+
}
|
|
2389
|
+
},
|
|
2390
|
+
"personalSubscriptions": {
|
|
2391
|
+
"heading": "Persönliche Abonnements (nur zur Einzelnutzung)",
|
|
2392
|
+
"intro": "Claude (Pro/Max), GLM (Z.ai Coding Plan) und ChatGPT (Codex) sind jeweils an Sie als Einzelperson lizenziert, daher werden sie nur für Sie gespeichert und nur Ihre Läufe verwenden sie. Jeder Token ist mit einem persönlichen Passwort verschlüsselt (das nie gespeichert wird), das Sie beim Start eines solchen Laufs eingeben; es wird eine Weile in diesem Browser zwischengespeichert, damit es Sie nicht stört. Das Passwort ist eine reibungsarme Bequemlichkeit und ein Transparenzsignal, dass das System Ihre Zugangsdaten nicht stillschweigend teilt, kein Bollwerk gegen einen Inhaber des Systemschlüssels. Diese Modelle können nicht in wiederkehrenden Zeitplänen verwendet werden.",
|
|
2393
|
+
"vendorField": "Abonnement",
|
|
2394
|
+
"labelField": "Bezeichnung (optional)",
|
|
2395
|
+
"labelPlaceholder": "z. B. mein {vendor}",
|
|
2396
|
+
"defaultLabel": "Mein {vendor}-Abonnement",
|
|
2397
|
+
"passwordField": "Persönliches Passwort (mind. 6 Zeichen)",
|
|
2398
|
+
"passwordPlaceholder": "schützt Ihren Token",
|
|
2399
|
+
"renewsField": "Abonnement verlängert sich am (optional)",
|
|
2400
|
+
"connect": "Verbinden",
|
|
2401
|
+
"replace": "Ersetzen",
|
|
2402
|
+
"expires": "Läuft ab am {date}",
|
|
2403
|
+
"noExpiry": "Kein Ablaufdatum gesetzt",
|
|
2404
|
+
"renewal": {
|
|
2405
|
+
"expired": "Ihr {vendor}-Abonnement ist abgelaufen. Erneuern Sie es und verbinden Sie es erneut, um seine Modelle weiter zu nutzen.",
|
|
2406
|
+
"soon": "Ihr {vendor}-Abonnement verlängert sich in {count} Tag. Aktualisieren Sie es hier nach der Verlängerung. | Ihr {vendor}-Abonnement verlängert sich in {count} Tagen. Aktualisieren Sie es hier nach der Verlängerung."
|
|
2407
|
+
},
|
|
2408
|
+
"toast": {
|
|
2409
|
+
"connected": "{vendor}-Abonnement verbunden",
|
|
2410
|
+
"connectFailed": "Abonnement konnte nicht verbunden werden",
|
|
2411
|
+
"disconnected": "Getrennt",
|
|
2412
|
+
"disconnectFailed": "Trennen nicht möglich"
|
|
2413
|
+
},
|
|
2414
|
+
"vendors": {
|
|
2415
|
+
"claude": {
|
|
2416
|
+
"label": "Claude (Pro/Max)",
|
|
2417
|
+
"tokenLabel": "Claude-Token",
|
|
2418
|
+
"step1": "Installieren Sie Claude Code und melden Sie sich mit Ihrem Claude-Pro/Max-Account an: Führen Sie `claude` einmal aus und schließen Sie die Browser-Anmeldung ab.",
|
|
2419
|
+
"step2": "Erzeugen Sie einen langlebigen Token: Führen Sie `claude setup-token` aus und kopieren Sie ihn.",
|
|
2420
|
+
"step3": "Fügen Sie ihn unten ein und wählen Sie ein persönliches Passwort zu seinem Schutz."
|
|
2421
|
+
},
|
|
2422
|
+
"glm": {
|
|
2423
|
+
"label": "GLM (Z.ai Coding Plan)",
|
|
2424
|
+
"tokenLabel": "Z.ai-API-Schlüssel",
|
|
2425
|
+
"tokenPlaceholder": "Ihr GLM-Coding-Plan-API-Schlüssel",
|
|
2426
|
+
"step1": "Öffnen Sie Ihr Z.ai-GLM-Coding-Plan-Dashboard und erstellen Sie einen API-Schlüssel für den Anthropic-kompatiblen Endpunkt.",
|
|
2427
|
+
"step2": "Der GLM Coding Plan ist an Sie als Einzelperson lizenziert, daher wird er hier pro Benutzer gespeichert (nicht gepoolt).",
|
|
2428
|
+
"step3": "Fügen Sie den Schlüssel unten ein und wählen Sie ein persönliches Passwort zu seinem Schutz."
|
|
2429
|
+
},
|
|
2430
|
+
"codex": {
|
|
2431
|
+
"label": "ChatGPT (Codex)",
|
|
2432
|
+
"tokenLabel": "ChatGPT auth.json",
|
|
2433
|
+
"step1": "Installieren Sie die Codex CLI und melden Sie sich mit Ihrem ChatGPT-Account an: Führen Sie `codex login` aus und schließen Sie den Browser-Ablauf ab.",
|
|
2434
|
+
"step2": "Öffnen Sie die von Codex geschriebene Zugangsdaten-Datei unter ~/.codex/auth.json (unter Windows %USERPROFILE%\\.codex\\auth.json).",
|
|
2435
|
+
"step3": "Kopieren Sie den gesamten Inhalt von auth.json, fügen Sie ihn unten ein und wählen Sie ein persönliches Passwort zu seinem Schutz."
|
|
2436
|
+
}
|
|
2437
|
+
},
|
|
2438
|
+
"confirmDisconnect": {
|
|
2439
|
+
"title": "Dieses Abonnement trennen?",
|
|
2440
|
+
"body": "Ihr \"{vendor}\"-Abonnement wird getrennt. Dies kann nicht rückgängig gemacht werden."
|
|
2441
|
+
}
|
|
2442
|
+
},
|
|
2443
|
+
"observability": {
|
|
2444
|
+
"modelActivity": "Modellaktivität",
|
|
2445
|
+
"viewAllCalls": "Alle Aufrufe anzeigen →",
|
|
2446
|
+
"providedContext": "Bereitgestellter Kontext",
|
|
2447
|
+
"exportJson": "JSON exportieren",
|
|
2448
|
+
"exportHint": "Einen LLM-freundlichen JSON-Export dieses Laufs herunterladen",
|
|
2449
|
+
"closeEsc": "Schließen (Esc)",
|
|
2450
|
+
"loadingActivity": "Modellaktivität wird geladen…",
|
|
2451
|
+
"loadingContext": "Bereitgestellter Kontext wird geladen…",
|
|
2452
|
+
"noCalls": "Für diesen Lauf wurden keine Modellaufrufe aufgezeichnet.",
|
|
2453
|
+
"noContext": "Für diesen Lauf ist kein Agent-Kontext gespeichert. Er wird pro Dispatch erfasst, wenn im Workspace 'Vollständigen Agent-Kontext speichern' aktiviert ist.",
|
|
2454
|
+
"contextError": "Der bereitgestellte Kontext konnte nicht geladen werden.",
|
|
2455
|
+
"summary": {
|
|
2456
|
+
"calls": "Aufrufe",
|
|
2457
|
+
"tokensInOut": "Tokens (ein / aus)",
|
|
2458
|
+
"transportOverhead": "Transport-Overhead",
|
|
2459
|
+
"modelExecution": "Modellausführung",
|
|
2460
|
+
"truncated": "{count} abgeschnitten | {count} abgeschnitten"
|
|
2461
|
+
},
|
|
2462
|
+
"metricsBar": {
|
|
2463
|
+
"calls": "{count} Aufruf | {count} Aufrufe",
|
|
2464
|
+
"promptCompletionTokens": "Prompt-/Completion-Tokens",
|
|
2465
|
+
"cachedTokens": "({tokens} zwischengespeichert)",
|
|
2466
|
+
"cachedTokensHint": "Prompt-Tokens, die aus dem Cache des Providers bedient wurden",
|
|
2467
|
+
"errors": "{count} Fehler | {count} Fehler",
|
|
2468
|
+
"warnings": "{count} Warnung | {count} Warnungen",
|
|
2469
|
+
"outputLimit": "Ausgabelimit",
|
|
2470
|
+
"truncatedCalls": "{count} Aufruf am Limit abgeschnitten | {count} Aufrufe am Limit abgeschnitten",
|
|
2471
|
+
"transportVsExecution": "Transport vs. Ausführung",
|
|
2472
|
+
"transportOverhead": "Transport-/Proxy-Overhead",
|
|
2473
|
+
"modelExecution": "Modellausführung"
|
|
2474
|
+
},
|
|
2475
|
+
"call": {
|
|
2476
|
+
"tokensTitle": "{prompt} Prompt- / {completion} Completion-Tokens",
|
|
2477
|
+
"outputUsedVsLimit": "Ausgabe genutzt vs. Limit",
|
|
2478
|
+
"transportVsExecution": "Transport-Overhead / Modellausführung",
|
|
2479
|
+
"error": "Fehler",
|
|
2480
|
+
"ok": "ok",
|
|
2481
|
+
"messages": "{count} Nachrichten",
|
|
2482
|
+
"tools": "{count} Tools",
|
|
2483
|
+
"streamed": "gestreamt",
|
|
2484
|
+
"buffered": "gepuffert",
|
|
2485
|
+
"maxTokens": "max_tokens {value}",
|
|
2486
|
+
"promptCached": "{cached}/{prompt} Prompt zwischengespeichert",
|
|
2487
|
+
"total": "gesamt {duration}",
|
|
2488
|
+
"prompt": "Prompt",
|
|
2489
|
+
"promptPrefixOmitted": "(nur neue Nachrichten: {count} frühere ausgelassen)",
|
|
2490
|
+
"response": "Antwort",
|
|
2491
|
+
"reasoning": "Reasoning"
|
|
2492
|
+
},
|
|
2493
|
+
"context": {
|
|
2494
|
+
"injectedFiles": "Injizierte Kontextdateien",
|
|
2495
|
+
"bestPracticeFragments": "Best-Practice-Fragmente",
|
|
2496
|
+
"filesCount": "{count} Dateien",
|
|
2497
|
+
"fragmentsCount": "{count} Fragmente",
|
|
2498
|
+
"systemPrompt": "System-Prompt",
|
|
2499
|
+
"userPrompt": "Benutzer-Prompt",
|
|
2500
|
+
"details": "Details"
|
|
2501
|
+
},
|
|
2502
|
+
"webSearch": "Websuche",
|
|
2503
|
+
"loadingSearch": "Websuchen werden geladen…",
|
|
2504
|
+
"noSearch": "Für diesen Lauf wurden keine Websuchen aufgezeichnet. Anfragen werden erfasst, wenn die Websuche läuft und im Workspace 'Vollständigen Agent-Kontext speichern' aktiviert ist.",
|
|
2505
|
+
"search": {
|
|
2506
|
+
"available": "Verfügbar",
|
|
2507
|
+
"unavailable": "Nicht verfügbar",
|
|
2508
|
+
"provider": "Provider",
|
|
2509
|
+
"resultsCount": "{count} Ergebnis | {count} Ergebnisse",
|
|
2510
|
+
"queriesTitle": "Durchgeführte Suchen"
|
|
2511
|
+
}
|
|
2512
|
+
},
|
|
2513
|
+
"auth": {
|
|
2514
|
+
"gate": {
|
|
2515
|
+
"loading": "Wird geladen…"
|
|
2516
|
+
},
|
|
2517
|
+
"localMode": {
|
|
2518
|
+
"continueWithConfigured": "Mit konfiguriertem {provider}-PAT anmelden",
|
|
2519
|
+
"noPatTitle": "Kein Versionsverwaltungs-Token konfiguriert",
|
|
2520
|
+
"noPatBody": "Setzen Sie GITHUB_PAT oder GITLAB_PAT in Ihrer .env, um sich mit einem Personal Access Token anzumelden, und starten Sie dann den Server neu.",
|
|
2521
|
+
"createToken": "Einen {provider}-Token erstellen ↗",
|
|
2522
|
+
"orDivider": "oder",
|
|
2523
|
+
"failed": "Anmeldung fehlgeschlagen. Prüfen Sie, ob der konfigurierte Token gültig ist, und versuchen Sie es erneut."
|
|
2524
|
+
},
|
|
2525
|
+
"signInRequired": {
|
|
2526
|
+
"personalSubscriptions": "Persönliche Abonnements werden in Ihrem Account gespeichert, aber dieses Deployment läuft ohne Anmeldung, sodass sie hier nicht gespeichert werden können. Verwenden Sie stattdessen den Workspace-Pool oder einen Provider-API-Schlüssel.",
|
|
2527
|
+
"userApiKeys": "Ihre persönlichen API-Schlüssel werden in Ihrem Account gespeichert, aber dieses Deployment läuft ohne Anmeldung, sodass sie hier nicht gespeichert werden können. Wechseln Sie den Geltungsbereich auf \"Dieser Workspace\", um einen gemeinsamen Schlüssel hinzuzufügen."
|
|
2528
|
+
},
|
|
2529
|
+
"login": {
|
|
2530
|
+
"appTitle": "Architecture Board",
|
|
2531
|
+
"subtitle": "Melden Sie sich an, um fortzufahren.",
|
|
2532
|
+
"inviteSubtitle": "Nehmen Sie Ihre Einladung an, um fortzufahren.",
|
|
2533
|
+
"forgotSubtitle": "Setzen Sie Ihr Passwort zurück.",
|
|
2534
|
+
"continueWithGithub": "Mit GitHub fortfahren",
|
|
2535
|
+
"continueWithGoogle": "Mit Google fortfahren",
|
|
2536
|
+
"or": "oder",
|
|
2537
|
+
"namePlaceholder": "Name (optional)",
|
|
2538
|
+
"emailPlaceholder": "E-Mail",
|
|
2539
|
+
"passwordPlaceholder": "Passwort",
|
|
2540
|
+
"createAccount": "Account erstellen",
|
|
2541
|
+
"signIn": "Anmelden",
|
|
2542
|
+
"signUp": "Registrieren",
|
|
2543
|
+
"needAccount": "Noch keinen Account? {signUp}",
|
|
2544
|
+
"haveAccount": "Schon einen Account? {signIn}",
|
|
2545
|
+
"forgotPassword": "Passwort vergessen?",
|
|
2546
|
+
"forgotSent": "Falls ein Account für diese E-Mail existiert, ist ein Link zum Zurücksetzen des Passworts unterwegs. Prüfen Sie Ihren Posteingang.",
|
|
2547
|
+
"sendResetLink": "Reset-Link senden",
|
|
2548
|
+
"backToSignIn": "Zurück zur Anmeldung",
|
|
2549
|
+
"signInFailed": "Anmeldung fehlgeschlagen. Prüfen Sie Ihre Angaben und versuchen Sie es erneut.",
|
|
2550
|
+
"genericError": "Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut.",
|
|
2551
|
+
"notConfiguredTitle": "Authentifizierung ist nicht konfiguriert",
|
|
2552
|
+
"notConfiguredBody": "Für dieses Deployment ist keine Anmeldemethode aktiviert, daher können Sie sich nicht anmelden oder auf Ihre Workspaces zugreifen. Ein Administrator muss einen Authentifizierungs-Provider konfigurieren (GitHub- oder Google-OAuth oder E-Mail-/Passwort-Anmeldung).",
|
|
2553
|
+
"patPlaceholder": "{provider} Personal Access Token",
|
|
2554
|
+
"signInWithPat": "Mit {provider}-PAT anmelden"
|
|
2555
|
+
},
|
|
2556
|
+
"resetPassword": {
|
|
2557
|
+
"title": "Passwort zurücksetzen",
|
|
2558
|
+
"subtitle": "Wählen Sie ein neues Passwort für Ihren Account.",
|
|
2559
|
+
"doneBody": "Ihr Passwort wurde zurückgesetzt. Sie können sich jetzt mit Ihrem neuen Passwort anmelden.",
|
|
2560
|
+
"goToSignIn": "Zur Anmeldung",
|
|
2561
|
+
"missingToken": "Diesem Reset-Link fehlt sein Token. Fordern Sie einen neuen Link über den Anmeldebildschirm an.",
|
|
2562
|
+
"backToSignIn": "Zurück zur Anmeldung",
|
|
2563
|
+
"newPasswordPlaceholder": "Neues Passwort",
|
|
2564
|
+
"confirmPasswordPlaceholder": "Neues Passwort bestätigen",
|
|
2565
|
+
"submit": "Passwort zurücksetzen",
|
|
2566
|
+
"errorTooShort": "Das Passwort muss mindestens 8 Zeichen lang sein.",
|
|
2567
|
+
"errorMismatch": "Die Passwörter stimmen nicht überein.",
|
|
2568
|
+
"errorInvalidLink": "Dieser Link zum Zurücksetzen des Passworts ist ungültig oder abgelaufen."
|
|
2569
|
+
},
|
|
2570
|
+
"userMenu": {
|
|
2571
|
+
"mySetup": "Meine Einrichtung",
|
|
2572
|
+
"signOut": "Abmelden"
|
|
2573
|
+
},
|
|
2574
|
+
"mothership": {
|
|
2575
|
+
"signIn": "Über Mothership anmelden",
|
|
2576
|
+
"hint": "Ihre Projekte und Identität leben auf der gehosteten Mothership. Melden Sie sich dort an, um diesen Node zu verbinden.",
|
|
2577
|
+
"error": "Anmeldung über die Mothership nicht möglich. Versuchen Sie es erneut."
|
|
2578
|
+
}
|
|
2579
|
+
},
|
|
2580
|
+
"documents": {
|
|
2581
|
+
"picker": {
|
|
2582
|
+
"searchPlaceholder": "Seiten durchsuchen oder eine URL/ID einfügen…",
|
|
2583
|
+
"refPlaceholder": "Eine Seiten-URL oder -ID einfügen…",
|
|
2584
|
+
"searchFailed": "Suche fehlgeschlagen: {error}",
|
|
2585
|
+
"importedBadge": "importiert",
|
|
2586
|
+
"attachByReference": "{ref} per Referenz anhängen",
|
|
2587
|
+
"noMatches": "Keine passenden Seiten.",
|
|
2588
|
+
"emptySearchable": "Nach Titel suchen oder ein importiertes Dokument auswählen.",
|
|
2589
|
+
"emptyRefOnly": "Fügen Sie eine Seiten-URL oder -ID ein, um sie anzuhängen."
|
|
2590
|
+
},
|
|
2591
|
+
"import": {
|
|
2592
|
+
"title": "Aus einer Dokumentquelle importieren",
|
|
2593
|
+
"connectFirst": "Verbinden Sie zuerst eine Dokumentquelle.",
|
|
2594
|
+
"connectSource": "{source} verbinden",
|
|
2595
|
+
"spawningInto": "Wird in {frame} erzeugt",
|
|
2596
|
+
"sourceLabel": "Quelle",
|
|
2597
|
+
"refLabel": "Seiten-URL oder -ID",
|
|
2598
|
+
"importButton": "Importieren",
|
|
2599
|
+
"importedHeading": "Importierte Dokumente",
|
|
2600
|
+
"previewSpawn": "Vorschau & erzeugen",
|
|
2601
|
+
"noneImported": "Noch keine Dokumente importiert.",
|
|
2602
|
+
"imported": "\"{title}\" importiert",
|
|
2603
|
+
"importFailed": "Import fehlgeschlagen"
|
|
2604
|
+
},
|
|
2605
|
+
"connect": {
|
|
2606
|
+
"title": "Quelle verbinden",
|
|
2607
|
+
"sourceFallback": "Quelle",
|
|
2608
|
+
"intro": "Verbinden Sie {source}, um Anforderungen, RFCs und PRDs zu importieren, und erzeugen Sie dann Board-Struktur oder hängen Sie sie als Agent-Kontext an Aufgaben an.",
|
|
2609
|
+
"disconnect": "Trennen",
|
|
2610
|
+
"connect": "Verbinden",
|
|
2611
|
+
"update": "Verbindung aktualisieren",
|
|
2612
|
+
"connected": "{source} verbunden",
|
|
2613
|
+
"disconnected": "{source} getrennt",
|
|
2614
|
+
"connectFailed": "Verbindung nicht möglich"
|
|
2615
|
+
},
|
|
2616
|
+
"spawn": {
|
|
2617
|
+
"title": "Struktur-Vorschau",
|
|
2618
|
+
"plannerLlm": "KI-generiert",
|
|
2619
|
+
"plannerHeadings": "Aus Überschriften",
|
|
2620
|
+
"intoFrame": "in {frame}",
|
|
2621
|
+
"asTopLevel": "als neue Frames auf oberster Ebene",
|
|
2622
|
+
"buildingPlan": "Plan wird erstellt…",
|
|
2623
|
+
"spawnOntoBoard": "Auf dem Board erzeugen",
|
|
2624
|
+
"planFailed": "Es konnte kein Plan erstellt werden",
|
|
2625
|
+
"spawned": "Struktur erzeugt",
|
|
2626
|
+
"spawnFailed": "Erzeugen fehlgeschlagen",
|
|
2627
|
+
"summary": "{frames} · {modules} · {tasks}",
|
|
2628
|
+
"frameCount": "{count} Frame | {count} Frames",
|
|
2629
|
+
"moduleCount": "{count} Modul | {count} Module",
|
|
2630
|
+
"taskCount": "{count} Aufgabe | {count} Aufgaben"
|
|
2631
|
+
},
|
|
2632
|
+
"taskDocs": {
|
|
2633
|
+
"heading": "Kontextdokumente",
|
|
2634
|
+
"hint": "Dokumente, die dieser Aufgabe als Kontext angehängt sind. Ihr Inhalt wird den Agents gegeben, die an der Aufgabe arbeiten.",
|
|
2635
|
+
"attach": "Anhängen",
|
|
2636
|
+
"importPage": "Eine Seite importieren…",
|
|
2637
|
+
"empty": "Hängen Sie eine Anforderung, ein RFC oder ein PRD an, damit Agents es beim Umsetzen dieser Aufgabe sehen.",
|
|
2638
|
+
"attached": "Dokument angehängt",
|
|
2639
|
+
"attachFailed": "Anhängen nicht möglich"
|
|
2640
|
+
},
|
|
2641
|
+
"templates": {
|
|
2642
|
+
"title": "Dokumentvorlagen & Beispiele",
|
|
2643
|
+
"intro": "Richten Sie eine Dokumentart auf Ihre eigenen Vorlagen- und Beispieldokumente aus. Sie müssen zuerst über die Dokumente-Integration importiert werden. Die Abschnitte einer Vorlage ersetzen das eingebaute Grundgerüst für diese Art; die Beispiele leiten die Autoren-Agents.",
|
|
2644
|
+
"kindLabel": "Dokumentart",
|
|
2645
|
+
"importFirst": "Importieren Sie zuerst ein Dokument — eine Vorlage oder ein Beispiel ist eines Ihrer importierten Dokumente.",
|
|
2646
|
+
"importButton": "Ein Dokument importieren",
|
|
2647
|
+
"templateHeading": "Vorlage",
|
|
2648
|
+
"templateHint": "Überschreibt das eingebaute {kind}-Grundgerüst. Eine Vorlage pro Art.",
|
|
2649
|
+
"templateEmpty": "Die eingebaute Vorlage wird verwendet.",
|
|
2650
|
+
"exemplarsHeading": "Beispiele zum Nacheifern",
|
|
2651
|
+
"exemplarsHint": "Gute Beispiele, die die Autoren-Agents studieren, dem eingebauten Satz hinzugefügt.",
|
|
2652
|
+
"exemplarsEmpty": "Keine Beispiele verknüpft.",
|
|
2653
|
+
"pickLabel": "Importiertes Dokument",
|
|
2654
|
+
"pickPlaceholder": "Ein importiertes Dokument auswählen…",
|
|
2655
|
+
"setTemplate": "Als Vorlage festlegen",
|
|
2656
|
+
"addExemplar": "Beispiel hinzufügen",
|
|
2657
|
+
"remove": "Entfernen",
|
|
2658
|
+
"linkFailed": "Die Dokumentverknüpfung konnte nicht aktualisiert werden",
|
|
2659
|
+
"loadFailed": "Dokumentvorlagen konnten nicht geladen werden"
|
|
2660
|
+
}
|
|
2661
|
+
},
|
|
2662
|
+
"tasks": {
|
|
2663
|
+
"picker": {
|
|
2664
|
+
"searchPlaceholder": "Issues durchsuchen oder eine URL/einen Schlüssel einfügen…",
|
|
2665
|
+
"refPlaceholder": "Eine Issue-URL oder einen -Schlüssel einfügen…",
|
|
2666
|
+
"searchFailed": "Suche fehlgeschlagen: {error}",
|
|
2667
|
+
"imported": "importiert",
|
|
2668
|
+
"attachByReference": "{ref} per Referenz anhängen",
|
|
2669
|
+
"noMatches": "Keine passenden Issues.",
|
|
2670
|
+
"emptySearchable": "Nach Titel suchen oder ein importiertes Issue auswählen.",
|
|
2671
|
+
"emptyRefOnly": "Fügen Sie eine Issue-URL oder einen -Schlüssel ein, um es anzuhängen."
|
|
2672
|
+
},
|
|
2673
|
+
"contextIssues": {
|
|
2674
|
+
"title": "Kontext-Issues",
|
|
2675
|
+
"hint": "Tracker-Issues, die dieser Aufgabe als Kontext angehängt sind. Ihr Inhalt wird den Agents gegeben, die an der Aufgabe arbeiten.",
|
|
2676
|
+
"attach": "Anhängen",
|
|
2677
|
+
"attached": "Issue angehängt",
|
|
2678
|
+
"attachFailed": "Anhängen nicht möglich",
|
|
2679
|
+
"importIssue": "Ein Issue importieren…",
|
|
2680
|
+
"emptyHint": "Hängen Sie ein Jira-Issue an, damit Agents seine Beschreibung und Kommentare beim Umsetzen dieser Aufgabe sehen."
|
|
2681
|
+
},
|
|
2682
|
+
"import": {
|
|
2683
|
+
"titleCreate": "Aufgabe aus Issue erstellen",
|
|
2684
|
+
"titleBrowse": "Tracker-Issues",
|
|
2685
|
+
"connectFirst": "Verbinden oder aktivieren Sie zuerst eine Aufgabenquelle.",
|
|
2686
|
+
"enableSource": "{label} aktivieren",
|
|
2687
|
+
"connectSource": "{label} verbinden",
|
|
2688
|
+
"source": "Quelle",
|
|
2689
|
+
"refLabel": "Issue-Schlüssel oder -URL",
|
|
2690
|
+
"import": "Importieren",
|
|
2691
|
+
"asEpic": "Als Epic",
|
|
2692
|
+
"asEpicTitleReady": "Dieses Epic + seine untergeordneten Elemente als verknüpfte Aufgabengruppe erzeugen",
|
|
2693
|
+
"asEpicTitleNeedsContainer": "Wählen Sie zuerst einen Container für die untergeordneten Aufgaben",
|
|
2694
|
+
"epicChildrenContainer": "Container für Epic-Kinder",
|
|
2695
|
+
"pickContainer": "Einen Frame oder ein Modul auswählen",
|
|
2696
|
+
"searchIssues": "Issues durchsuchen",
|
|
2697
|
+
"searchPlaceholder": "Nach Titel suchen, eine Issue-URL einfügen oder eine Issue-Nummer eingeben…",
|
|
2698
|
+
"createTasksIn": "Aufgaben erstellen in",
|
|
2699
|
+
"needFrameFirst": "Fügen Sie dem Board zuerst einen Service-Frame hinzu, um Aufgaben aus Issues zu erstellen.",
|
|
2700
|
+
"searchFailed": "Suche fehlgeschlagen: {error}",
|
|
2701
|
+
"searchResults": "Suchergebnisse",
|
|
2702
|
+
"createFromIssue": "Eine Aufgabe aus diesem Issue erstellen",
|
|
2703
|
+
"pickContainerFirst": "Wählen Sie zuerst einen Container",
|
|
2704
|
+
"viewOnGitHub": "{id} auf GitHub ansehen",
|
|
2705
|
+
"emptyHint": "Suchen Sie oben oder fügen Sie eine Issue-URL/einen -Schlüssel ein, um daraus eine Aufgabe zu erstellen.",
|
|
2706
|
+
"imported": "\"{title}\" importiert",
|
|
2707
|
+
"importFailed": "Import fehlgeschlagen",
|
|
2708
|
+
"epicSpawned": "Epic \"{title}\" erzeugt",
|
|
2709
|
+
"epicChildren": "{count} untergeordnete Aufgabe erstellt | {count} untergeordnete Aufgaben erstellt",
|
|
2710
|
+
"epicFailed": "Epic konnte nicht erzeugt werden"
|
|
2711
|
+
},
|
|
2712
|
+
"connect": {
|
|
2713
|
+
"title": "Aufgabenquelle",
|
|
2714
|
+
"sourceFallback": "Quelle",
|
|
2715
|
+
"connectedToast": "{label} verbunden",
|
|
2716
|
+
"connectFailed": "Verbindung nicht möglich",
|
|
2717
|
+
"disconnectedToast": "{label} getrennt",
|
|
2718
|
+
"updateFailed": "Aktualisierung nicht möglich",
|
|
2719
|
+
"intro": "{label} ermöglicht es Ihnen, Issues zu importieren und sie als Agent-Kontext an Aufgaben anzuhängen.",
|
|
2720
|
+
"credentialless": "Diese Quelle verwendet die bereits in Ihrem Workspace installierte GitHub App, daher sind keine Zugangsdaten einzugeben.",
|
|
2721
|
+
"installAppHint": "Installieren Sie die GitHub App des Workspace (GitHub-Repos verbinden), um {label} anzubieten.",
|
|
2722
|
+
"connected": "Verbunden.",
|
|
2723
|
+
"connectedTo": "Verbunden mit {label}.",
|
|
2724
|
+
"offerToWorkspace": "Diesem Workspace anbieten",
|
|
2725
|
+
"offerHint": "Wenn deaktiviert, wird {label} von Import und Verknüpfung ausgeblendet.",
|
|
2726
|
+
"disconnect": "Trennen",
|
|
2727
|
+
"updateConnection": "Verbindung aktualisieren",
|
|
2728
|
+
"connect": "Verbinden",
|
|
2729
|
+
"oauthButton": "Mit {label} verbinden",
|
|
2730
|
+
"oauthOr": "oder mit einem API-Schlüssel verbinden"
|
|
2731
|
+
}
|
|
2732
|
+
},
|
|
2733
|
+
"pipeline": {
|
|
2734
|
+
"iterationCap": {
|
|
2735
|
+
"extraRound": "Noch eine Runde",
|
|
2736
|
+
"proceed": "Trotzdem fortfahren",
|
|
2737
|
+
"stopReset": "Aufgabe stoppen & zurücksetzen"
|
|
2738
|
+
},
|
|
2739
|
+
"builder": {
|
|
2740
|
+
"title": "Pipeline-Builder",
|
|
2741
|
+
"agentPalette": "Agenten-Palette",
|
|
2742
|
+
"addAgent": "Agent hinzufügen",
|
|
2743
|
+
"pipeline": "Pipeline",
|
|
2744
|
+
"configureModels": "Modelle konfigurieren",
|
|
2745
|
+
"configureModelsTooltip": "Modell-Presets verwalten (auf welchem Modell jeder Agent läuft)",
|
|
2746
|
+
"namePlaceholder": "Pipeline-Name",
|
|
2747
|
+
"labelPlaceholder": "+ Label",
|
|
2748
|
+
"gatingNeedsEstimator": "Ein Gated-Schritt benötigt davor einen Task Estimator. Fügen Sie einen hinzu, sonst wird die Pipeline nicht gespeichert.",
|
|
2749
|
+
"emptyDraft": "Klicken Sie links auf Agenten, um eine lineare Pipeline zusammenzustellen.",
|
|
2750
|
+
"companionAdd": "{companion} hinzufügen (prüft diesen Schritt, wiederholt ihn unterhalb des Schwellenwerts)",
|
|
2751
|
+
"companionRemove": "{companion} für diesen Schritt entfernen",
|
|
2752
|
+
"disableTooltip": "Diesen Schritt deaktivieren (bleibt in der Pipeline, wird aber beim Lauf übersprungen)",
|
|
2753
|
+
"enableTooltip": "Schritt deaktiviert (wird beim Lauf übersprungen). Zum Aktivieren klicken.",
|
|
2754
|
+
"approvalAddTooltip": "Menschliche Freigabe nach diesem Schritt erforderlich machen",
|
|
2755
|
+
"approvalRemoveTooltip": "Freigabe nach diesem Schritt erforderlich. Klicken, um das Gate zu entfernen.",
|
|
2756
|
+
"consensusEnableTooltip": "Konsens (Multi-Modell-Panel/Debatte/Abstimmung) für diesen Schritt aktivieren",
|
|
2757
|
+
"consensusRevertTooltip": "Konsens aktiviert. Klicken, um zu einem einzelnen Agenten zurückzukehren.",
|
|
2758
|
+
"followUpEnableTooltip": "Follow-up-Companion deaktiviert. Zum Aktivieren klicken (Coder legt offene Punkte / Fragen offen).",
|
|
2759
|
+
"followUpDisableTooltip": "Follow-up-Companion aktiviert. Coder legt offene Punkte / Nebenaufgaben / Fragen offen; zum Deaktivieren klicken.",
|
|
2760
|
+
"testerQualityEnableTooltip": "Test-Qualitäts-Companion deaktiviert. Zum Aktivieren klicken (prüft den Bericht auf Abdeckung und wiederholt den Tester bei Lücken).",
|
|
2761
|
+
"testerQualityDisableTooltip": "Test-Qualitäts-Companion aktiviert. Prüft den Bericht vor der Freigabe auf Abdeckung und wiederholt den Tester bei Lücken; zum Deaktivieren klicken.",
|
|
2762
|
+
"testerQualityLabel": "Test-Qualitäts-Companion",
|
|
2763
|
+
"testerQualityGateTooltip": "Die Qualitätsprüfung nur ausführen, wenn die Aufgabenschätzung einen Schwellenwert überschreitet (benötigt vorher einen Task Estimator)",
|
|
2764
|
+
"moveUp": "Schritt nach oben verschieben",
|
|
2765
|
+
"moveDown": "Schritt nach unten verschieben",
|
|
2766
|
+
"removeStep": "Diesen Schritt aus der Pipeline entfernen",
|
|
2767
|
+
"gateOnEstimate": "Nach Schätzung gaten",
|
|
2768
|
+
"companionGateTooltip": "Diesen Companion nur ausführen, wenn die Aufgabenschätzung einen Schwellenwert überschreitet (benötigt vorher einen Task Estimator)",
|
|
2769
|
+
"consensusGateTooltip": "Konsens nur ausführen, wenn die Aufgabenschätzung einen Schwellenwert überschreitet (sonst läuft der Standard-Agent)",
|
|
2770
|
+
"runWhenAny": "ausführen wenn (beliebig):",
|
|
2771
|
+
"complexityThreshold": "Komplexität ≥",
|
|
2772
|
+
"riskThreshold": "Risiko ≥",
|
|
2773
|
+
"impactThreshold": "Auswirkung ≥",
|
|
2774
|
+
"strategy": "Strategie",
|
|
2775
|
+
"rounds": "Runden",
|
|
2776
|
+
"strategyOption": {
|
|
2777
|
+
"specialist-panel": "Spezialisten-Panel",
|
|
2778
|
+
"debate": "Debatte",
|
|
2779
|
+
"ranked-voting": "Rangbasierte Abstimmung"
|
|
2780
|
+
},
|
|
2781
|
+
"rolePlaceholder": "Rolle",
|
|
2782
|
+
"modelIdPlaceholder": "Modell-ID (optional)",
|
|
2783
|
+
"removeParticipant": "Teilnehmer entfernen (min. 2)",
|
|
2784
|
+
"addParticipant": "Teilnehmer hinzufügen",
|
|
2785
|
+
"savedPipelines": "Gespeicherte Pipelines",
|
|
2786
|
+
"hideArchived": "Archivierte ausblenden",
|
|
2787
|
+
"archivedCount": "Archiviert ({count})",
|
|
2788
|
+
"allLabels": "Alle",
|
|
2789
|
+
"defaultBadge": "Standard",
|
|
2790
|
+
"stepCount": "{count} Schritt | {count} Schritte",
|
|
2791
|
+
"unarchive": "Aus Archiv holen",
|
|
2792
|
+
"archive": "Archivieren (aus der Standardansicht ausblenden)",
|
|
2793
|
+
"cloneDefault": "Diesen Standard in eine bearbeitbare Kopie klonen",
|
|
2794
|
+
"clone": "Klonen",
|
|
2795
|
+
"edit": "Diese Pipeline bearbeiten",
|
|
2796
|
+
"delete": "Diese Pipeline löschen",
|
|
2797
|
+
"confirmDeletePipeline": {
|
|
2798
|
+
"title": "Diese Pipeline löschen?",
|
|
2799
|
+
"body": "\"{name}\" wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
2800
|
+
},
|
|
2801
|
+
"disabledStepTooltip": "Deaktiviert, wird beim Lauf übersprungen",
|
|
2802
|
+
"cancelEdit": "Bearbeitung abbrechen",
|
|
2803
|
+
"clear": "Leeren",
|
|
2804
|
+
"update": "Pipeline aktualisieren",
|
|
2805
|
+
"save": "Pipeline speichern",
|
|
2806
|
+
"addAgentModal": {
|
|
2807
|
+
"title": "Agent hinzufügen",
|
|
2808
|
+
"name": "Name",
|
|
2809
|
+
"namePlaceholder": "z. B. Security Auditor",
|
|
2810
|
+
"description": "Beschreibung",
|
|
2811
|
+
"descriptionPlaceholder": "Was macht dieser Agent?",
|
|
2812
|
+
"linkDoc": "Kontextdokument verknüpfen",
|
|
2813
|
+
"create": "Agent erstellen"
|
|
2814
|
+
},
|
|
2815
|
+
"toast": {
|
|
2816
|
+
"added": "Agent \"{name}\" hinzugefügt",
|
|
2817
|
+
"placeholderTitle": "Platzhalter",
|
|
2818
|
+
"updated": "\"{name}\" aktualisiert",
|
|
2819
|
+
"saved": "\"{name}\" gespeichert",
|
|
2820
|
+
"addOneFirst": "Fügen Sie zuerst mindestens einen Agenten hinzu",
|
|
2821
|
+
"saveFailed": "Pipeline konnte nicht gespeichert werden",
|
|
2822
|
+
"cloned": "\"{name}\" geklont — bearbeite jetzt \"{copy}\"",
|
|
2823
|
+
"cloneFailed": "Pipeline konnte nicht geklont werden",
|
|
2824
|
+
"updateFailed": "Pipeline konnte nicht aktualisiert werden"
|
|
2825
|
+
}
|
|
2826
|
+
},
|
|
2827
|
+
"progress": {
|
|
2828
|
+
"status": {
|
|
2829
|
+
"running": "Läuft",
|
|
2830
|
+
"blocked": "Benötigt Sie",
|
|
2831
|
+
"paused": "Pausiert (Budget)",
|
|
2832
|
+
"done": "Abgeschlossen",
|
|
2833
|
+
"failed": "Fehlgeschlagen"
|
|
2834
|
+
},
|
|
2835
|
+
"state": {
|
|
2836
|
+
"pending": "Ausstehend",
|
|
2837
|
+
"working": "In Arbeit",
|
|
2838
|
+
"waiting_decision": "Benötigt Entscheidung",
|
|
2839
|
+
"done": "Fertig"
|
|
2840
|
+
},
|
|
2841
|
+
"stage": {
|
|
2842
|
+
"incorporating": "Wird eingearbeitet…",
|
|
2843
|
+
"reviewing": "Wird erneut geprüft…",
|
|
2844
|
+
"recommending": "Wird empfohlen…"
|
|
2845
|
+
},
|
|
2846
|
+
"followUp": {
|
|
2847
|
+
"watching": "Beobachtet…",
|
|
2848
|
+
"toDecide": "{count} zu entscheiden",
|
|
2849
|
+
"allDecided": "Alle entschieden"
|
|
2850
|
+
},
|
|
2851
|
+
"agentsComplete": "{completed} / {total} Agenten fertig",
|
|
2852
|
+
"currently": "aktuell {agent}",
|
|
2853
|
+
"percent": "{value}%",
|
|
2854
|
+
"companion": "Companion",
|
|
2855
|
+
"companionTooltip": "Companion eines Producer-Schritts",
|
|
2856
|
+
"companionSuffix": "(Companion)",
|
|
2857
|
+
"stepOf": "Schritt {current} von {total}",
|
|
2858
|
+
"viewDetailsOutput": "Details ansehen und Ausgabe lesen",
|
|
2859
|
+
"viewDetails": "Schrittdetails ansehen",
|
|
2860
|
+
"restartTooltip": "Pipeline ab diesem Schritt neu starten",
|
|
2861
|
+
"restartFromHere": "Ab hier neu starten",
|
|
2862
|
+
"spinningUpContainer": "Container wird gestartet…",
|
|
2863
|
+
"subtasks": "{completed}/{total} Teilaufgaben",
|
|
2864
|
+
"subtasksInProgress": "· {count} in Arbeit",
|
|
2865
|
+
"clickToRead": "Klicken, um die Ausgabe dieses Agenten zu lesen",
|
|
2866
|
+
"reviewApprove": "Vorschlag von {agent} prüfen & freigeben",
|
|
2867
|
+
"resolve": "Klären: {question}"
|
|
2868
|
+
},
|
|
2869
|
+
"health": {
|
|
2870
|
+
"title": "Pipeline-Zustand",
|
|
2871
|
+
"allValid": "Alle Pipelines sind gültig und aktuell.",
|
|
2872
|
+
"invalidHeading": "Ungültige Pipelines",
|
|
2873
|
+
"invalidDescription": "Diese verweisen auf einen fehlenden Agenten oder sind falsch konfiguriert, sodass sie beim Start fehlschlagen (oder falsch laufen) würden. Löschen Sie eine benutzerdefinierte Pipeline oder setzen Sie eine integrierte neu auf, um ihre Katalogdefinition wiederherzustellen.",
|
|
2874
|
+
"builtinBadge": "integriert",
|
|
2875
|
+
"reseed": "Neu aufsetzen",
|
|
2876
|
+
"delete": "Löschen",
|
|
2877
|
+
"updatesHeading": "Updates verfügbar",
|
|
2878
|
+
"updatesDescription": "Eine neuere Version dieser integrierten Pipelines wurde ausgeliefert. Setzen Sie sie neu auf, um sie zu übernehmen (Ihre Labels und der Archivstatus bleiben erhalten).",
|
|
2879
|
+
"reseedAll": "Alle neu aufsetzen ({count})",
|
|
2880
|
+
"dismiss": "Verwerfen",
|
|
2881
|
+
"done": "Fertig",
|
|
2882
|
+
"toast": {
|
|
2883
|
+
"reseedFailed": "Pipeline konnte nicht neu aufgesetzt werden",
|
|
2884
|
+
"deleteFailed": "Pipeline konnte nicht gelöscht werden"
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
},
|
|
2888
|
+
"requirements": {
|
|
2889
|
+
"title": "Anforderungsprüfung",
|
|
2890
|
+
"iteration": "Iteration {current} / {max}",
|
|
2891
|
+
"intro": "Ein KI-Prüfer hat die gesammelten Anforderungen dieses {level} untersucht — die Beschreibung sowie alle verknüpften PRDs und Tracker-Issues — und die folgenden Befunde erhoben. {answer} Sie die relevanten und {dismiss} Sie die irrelevanten, arbeiten Sie sie dann ein; der Prüfer prüft erneut, bis die Anforderungen klar sind.",
|
|
2892
|
+
"levelFallback": "Element",
|
|
2893
|
+
"answerVerb": "Beantworten",
|
|
2894
|
+
"dismissVerb": "verwerfen",
|
|
2895
|
+
"empty": "Noch keine Prüfung. Der Prüfer läuft automatisch als erster Schritt, wenn die Pipeline dieser Aufgabe startet.",
|
|
2896
|
+
"loadingReview": "Prüfung wird geladen…",
|
|
2897
|
+
"reviewing": "Anforderungen werden geprüft…",
|
|
2898
|
+
"settled": "Die Anforderungen sind festgelegt. Das folgende Dokument verwendet jeder nachgelagerte Agentenschritt.",
|
|
2899
|
+
"exceeded": {
|
|
2900
|
+
"heading": "Das {max}-Iterationen-Limit wurde mit noch offenen Befunden erreicht.",
|
|
2901
|
+
"detail": "Führen Sie eine weitere Prüfrunde durch, fahren Sie trotzdem mit den zuletzt eingearbeiteten Anforderungen zur nächsten Phase fort, oder stoppen und setzen Sie die Aufgabe zurück, um die Anforderungen zu überarbeiten und erneut einzureichen."
|
|
2902
|
+
},
|
|
2903
|
+
"working": {
|
|
2904
|
+
"incorporating": "Ihre Antworten werden in ein Anforderungsdokument eingearbeitet… Sie können dies schließen — wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
2905
|
+
"reReviewing": "Die aktualisierten Anforderungen werden erneut geprüft… Sie können dies schließen — wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden."
|
|
2906
|
+
},
|
|
2907
|
+
"severity": {
|
|
2908
|
+
"high": "hoch",
|
|
2909
|
+
"medium": "mittel",
|
|
2910
|
+
"low": "niedrig"
|
|
2911
|
+
},
|
|
2912
|
+
"category": {
|
|
2913
|
+
"gap": "Lücke",
|
|
2914
|
+
"clarification": "Klärung",
|
|
2915
|
+
"assumption": "Annahme",
|
|
2916
|
+
"risk": "Risiko",
|
|
2917
|
+
"question": "Frage"
|
|
2918
|
+
},
|
|
2919
|
+
"itemStatus": {
|
|
2920
|
+
"open": "offen",
|
|
2921
|
+
"answered": "beantwortet",
|
|
2922
|
+
"resolved": "gelöst",
|
|
2923
|
+
"dismissed": "verworfen",
|
|
2924
|
+
"recommend_requested": "Empfehlung angefordert"
|
|
2925
|
+
},
|
|
2926
|
+
"answerLabel": "Antwort",
|
|
2927
|
+
"answerPlaceholder": "Diesen Befund beantworten…",
|
|
2928
|
+
"dismissIrrelevant": "Als irrelevant verwerfen",
|
|
2929
|
+
"markedForRecommendation": "Für Empfehlung markiert",
|
|
2930
|
+
"recommendSomething": "Etwas empfehlen",
|
|
2931
|
+
"recommendationRequested": "Empfehlung angefordert — prüfen Sie den Vorschlag unten.",
|
|
2932
|
+
"reopen": "Erneut öffnen",
|
|
2933
|
+
"recommendedAnswers": "Empfohlene Antworten",
|
|
2934
|
+
"recommendationProgress": "{ready} / {total} bereit",
|
|
2935
|
+
"generatingSuggestion": "Ein fundierter Vorschlag wird generiert…",
|
|
2936
|
+
"currentStandard": "Aktueller Standard: {title}",
|
|
2937
|
+
"accept": "Annehmen",
|
|
2938
|
+
"reject": "Ablehnen",
|
|
2939
|
+
"reRequestPlaceholder": "Nach einer anderen Empfehlung fragen…",
|
|
2940
|
+
"reRequest": "Erneut anfordern",
|
|
2941
|
+
"finalRequirements": "Endgültige Anforderungen",
|
|
2942
|
+
"incorporatedDraft": "Eingearbeitete Anforderungen (Entwurf)",
|
|
2943
|
+
"stats": {
|
|
2944
|
+
"findings": "Befunde",
|
|
2945
|
+
"open": "Offen",
|
|
2946
|
+
"answered": "Beantwortet",
|
|
2947
|
+
"recommendations": "Empfehlungen",
|
|
2948
|
+
"recsGenerating": "Wird generiert",
|
|
2949
|
+
"recsToReview": "Zu prüfen",
|
|
2950
|
+
"model": "Modell"
|
|
2951
|
+
},
|
|
2952
|
+
"actions": {
|
|
2953
|
+
"proceedNothing": "Fortfahren (nichts einzuarbeiten)",
|
|
2954
|
+
"incorporateAnswers": "Antworten einarbeiten",
|
|
2955
|
+
"requestRecommendations": "{count} Empfehlung anfordern | {count} Empfehlung anfordern | {count} Empfehlungen anfordern",
|
|
2956
|
+
"reReview": "Sieht gut aus — erneut prüfen",
|
|
2957
|
+
"reReviewing": "Wird erneut geprüft…",
|
|
2958
|
+
"redoIncorporation": "Einarbeitung wiederholen",
|
|
2959
|
+
"redoWithDirection": "Mit dieser Vorgabe wiederholen"
|
|
2960
|
+
},
|
|
2961
|
+
"help": {
|
|
2962
|
+
"canProceed": "Jeder Befund ist verworfen — fahren Sie ohne Überarbeitung zur nächsten Phase fort.",
|
|
2963
|
+
"canIncorporate": "Fügt Ihre Antworten in ein Dokument im Standardformat zusammen und prüft es dann automatisch erneut.",
|
|
2964
|
+
"answerAll": "Beantworten oder verwerfen Sie jeden Befund, um fortzufahren.",
|
|
2965
|
+
"merged": "Die erneute Prüfung führt den Prüfer gegen dieses Dokument aus. Wenn Sie mit der Zusammenführung unzufrieden sind, wiederholen Sie sie stattdessen mit einem Kommentar."
|
|
2966
|
+
},
|
|
2967
|
+
"redoPlaceholder": "Was soll die Zusammenführung anders machen?",
|
|
2968
|
+
"settledFooter": "Anforderungen festgelegt — die Pipeline wird mit dem Dokument links fortgesetzt.",
|
|
2969
|
+
"toast": {
|
|
2970
|
+
"preparingRecommendations": "{count} Empfehlung wird im Hintergrund vorbereitet | {count} Empfehlung wird im Hintergrund vorbereitet | {count} Empfehlungen werden im Hintergrund vorbereitet",
|
|
2971
|
+
"preparingRecommendationsDescription": "Ihre Antworten sind gespeichert — schließen Sie dies gerne; wir benachrichtigen Sie, wenn sie bereit sind.",
|
|
2972
|
+
"recommendationsReady": "{count} Empfehlung bereit | {count} Empfehlung bereit | {count} Empfehlungen bereit",
|
|
2973
|
+
"incorporating": "Ihre Antworten werden im Hintergrund eingearbeitet",
|
|
2974
|
+
"incorporatingDescription": "Sie sind zurück auf dem Board — wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
2975
|
+
"reviewerSatisfied": "Prüfer ist zufrieden — Pipeline wird fortgesetzt",
|
|
2976
|
+
"iterationLimitReached": "Iterationslimit erreicht — wählen Sie, wie Sie fortfahren",
|
|
2977
|
+
"newFindings": "keine neuen Befunde, auf die zu reagieren ist | {count} neuer Befund, auf den zu reagieren ist | {count} neue Befunde, auf die zu reagieren ist",
|
|
2978
|
+
"proceeding": "Es wird zur nächsten Phase fortgefahren",
|
|
2979
|
+
"taskReset": "Aufgabe zurückgesetzt — bearbeiten Sie die Anforderungen und reichen Sie sie erneut ein",
|
|
2980
|
+
"extraRoundGranted": "Eine weitere Prüfrunde gewährt"
|
|
2981
|
+
},
|
|
2982
|
+
"errors": {
|
|
2983
|
+
"saveAnswer": "Die Antwort konnte nicht gespeichert werden",
|
|
2984
|
+
"updateFinding": "Der Befund konnte nicht aktualisiert werden",
|
|
2985
|
+
"requestRecommendations": "Empfehlungen konnten nicht angefordert werden",
|
|
2986
|
+
"acceptRecommendation": "Die Empfehlung konnte nicht angenommen werden",
|
|
2987
|
+
"rejectRecommendation": "Die Empfehlung konnte nicht abgelehnt werden",
|
|
2988
|
+
"reRequestRecommendation": "Die Empfehlung konnte nicht erneut angefordert werden",
|
|
2989
|
+
"incorporate": "Die Antworten konnten nicht eingearbeitet werden",
|
|
2990
|
+
"reReview": "Die Anforderungen konnten nicht erneut geprüft werden",
|
|
2991
|
+
"proceed": "Es konnte nicht fortgefahren werden",
|
|
2992
|
+
"resolveReview": "Die Prüfung konnte nicht abgeschlossen werden"
|
|
2993
|
+
}
|
|
2994
|
+
},
|
|
2995
|
+
"bootstrap": {
|
|
2996
|
+
"title": "Repository bootstrappen",
|
|
2997
|
+
"repoName": {
|
|
2998
|
+
"error": {
|
|
2999
|
+
"hasSlash": "Geben Sie nur den Repository-Namen ein, ohne das Präfix 'owner/'.",
|
|
3000
|
+
"invalidChars": "Nur Buchstaben, Ziffern, '.', '_' und '-' sind erlaubt.",
|
|
3001
|
+
"tooLong": "Darf höchstens 100 Zeichen lang sein."
|
|
3002
|
+
}
|
|
3003
|
+
},
|
|
3004
|
+
"intro": {
|
|
3005
|
+
"canCreate": "Erstellen Sie ein leeres GitHub-Repository und lassen Sie es dann von einem Bootstrapper-Agenten in einem Sandbox-Container befüllen — entweder durch Anpassen einer Ihrer Referenzarchitekturen oder von Grund auf nach einem freien Prompt. cat-factory pusht den initialen Commit in dieses Repo; für dieses Konto kann es das Repository auch für Sie erstellen.",
|
|
3006
|
+
"manual": "Erstellen Sie ein leeres GitHub-Repository und lassen Sie es dann von einem Bootstrapper-Agenten in einem Sandbox-Container befüllen — entweder durch Anpassen einer Ihrer Referenzarchitekturen oder von Grund auf nach einem freien Prompt. cat-factory pusht den initialen Commit in dieses Repo; Sie erstellen das Repository (ein Klick unten), sodass keine Repo-Erstellungsberechtigung nötig ist."
|
|
3007
|
+
},
|
|
3008
|
+
"github": {
|
|
3009
|
+
"prompt": "Verbinden Sie diesen Workspace mit GitHub, bevor Sie bootstrappen; ein Lauf pusht in ein Repository. Verknüpfen Sie eine Installation, auf der die App bereits ist, oder installieren Sie sie."
|
|
3010
|
+
},
|
|
3011
|
+
"section": {
|
|
3012
|
+
"newRepo": "Neues Repository"
|
|
3013
|
+
},
|
|
3014
|
+
"mode": {
|
|
3015
|
+
"label": "Wie sollen wir beginnen?",
|
|
3016
|
+
"reference": {
|
|
3017
|
+
"label": "Aus einer Referenzarchitektur",
|
|
3018
|
+
"description": "Ein verwaltetes Basis-Repo klonen und an den neuen Service anpassen."
|
|
3019
|
+
},
|
|
3020
|
+
"scratch": {
|
|
3021
|
+
"label": "Von Grund auf",
|
|
3022
|
+
"description": "Ein brandneues Repo aus einem freien Prompt gerüsten, ohne Basis."
|
|
3023
|
+
}
|
|
3024
|
+
},
|
|
3025
|
+
"reference": {
|
|
3026
|
+
"label": "Referenzarchitektur",
|
|
3027
|
+
"description": "Das verwaltete Basis-Repo zum Klonen und Anpassen.",
|
|
3028
|
+
"empty": "Noch keine Referenzarchitekturen. Fügen Sie unten eine hinzu oder wechseln Sie zu 'Von Grund auf'.",
|
|
3029
|
+
"placeholder": "Referenzarchitektur wählen"
|
|
3030
|
+
},
|
|
3031
|
+
"targetRepo": {
|
|
3032
|
+
"label": "Name des Ziel-Repositorys",
|
|
3033
|
+
"namePlaceholder": "payments-service",
|
|
3034
|
+
"descWithOwner": "Erstellen Sie unter {owner} ein neues Repo mit diesem Namen, dann pusht der Bootstrap hinein. Eine vorbefüllte README, .gitignore oder Lizenz ist in Ordnung.",
|
|
3035
|
+
"descNoOwner": "Erstellen Sie ein neues Repo mit diesem Namen, dann pusht der Bootstrap hinein. Eine vorbefüllte README, .gitignore oder Lizenz ist in Ordnung."
|
|
3036
|
+
},
|
|
3037
|
+
"createRepo": {
|
|
3038
|
+
"now": "Repository erstellen",
|
|
3039
|
+
"onGitHub": "Auf GitHub erstellen",
|
|
3040
|
+
"titleNow": "Das Repository jetzt erstellen",
|
|
3041
|
+
"titleGitHub": "GitHubs Seite für neue Repositorys vorausgefüllt öffnen"
|
|
3042
|
+
},
|
|
3043
|
+
"grantAccess": {
|
|
3044
|
+
"label": "Der App Zugriff auf dieses Repo gewähren",
|
|
3045
|
+
"title": "Die Installationseinstellungen der App öffnen, um ihr Zugriff auf das neue Repo zu gewähren"
|
|
3046
|
+
},
|
|
3047
|
+
"repoType": {
|
|
3048
|
+
"label": "Repository-Typ",
|
|
3049
|
+
"help": "Was dieses Repo ist: ein Backend-Service, eine Frontend-App, eine gemeinsame Bibliothek oder ein Dokument-Repository (nur Docs/Spikes)."
|
|
3050
|
+
},
|
|
3051
|
+
"description": {
|
|
3052
|
+
"label": "Beschreibung",
|
|
3053
|
+
"help": "Optionale einzeilige Zusammenfassung für das Repo.",
|
|
3054
|
+
"placeholder": "Verarbeitet Zahlungsabsichten und Rückerstattungen"
|
|
3055
|
+
},
|
|
3056
|
+
"instructions": {
|
|
3057
|
+
"labelReference": "Zusätzliche Anweisungen für den Bootstrapper",
|
|
3058
|
+
"labelScratch": "Was soll der Bootstrapper bauen?",
|
|
3059
|
+
"descReference": "Optional, wird an die Standardanweisungen der Referenzarchitektur angehängt.",
|
|
3060
|
+
"descScratch": "Beschreiben Sie den neuen Service: Stack, Struktur und was er tun soll."
|
|
3061
|
+
},
|
|
3062
|
+
"visibility": {
|
|
3063
|
+
"label": "Sichtbarkeit",
|
|
3064
|
+
"private": "Privates Repository"
|
|
3065
|
+
},
|
|
3066
|
+
"launch": "Repo bootstrappen",
|
|
3067
|
+
"recent": {
|
|
3068
|
+
"title": "Letzte Läufe",
|
|
3069
|
+
"fromArch": "aus {name}",
|
|
3070
|
+
"fromScratch": "von Grund auf",
|
|
3071
|
+
"open": "Öffnen"
|
|
3072
|
+
},
|
|
3073
|
+
"status": {
|
|
3074
|
+
"pending": "ausstehend",
|
|
3075
|
+
"running": "läuft",
|
|
3076
|
+
"succeeded": "erfolgreich",
|
|
3077
|
+
"failed": "fehlgeschlagen"
|
|
3078
|
+
},
|
|
3079
|
+
"arch": {
|
|
3080
|
+
"title": "Referenzarchitekturen",
|
|
3081
|
+
"add": "Hinzufügen",
|
|
3082
|
+
"pickRepo": {
|
|
3083
|
+
"label": "Ein bestehendes GitHub-Repo wählen",
|
|
3084
|
+
"description": "Wählen Sie ein Repo, auf das Sie Zugriff haben, um Owner und Name auszufüllen, oder geben Sie sie unten manuell ein.",
|
|
3085
|
+
"placeholder": "owner/name"
|
|
3086
|
+
},
|
|
3087
|
+
"name": {
|
|
3088
|
+
"label": "Name",
|
|
3089
|
+
"description": "Ein sprechendes Label für diese Basis.",
|
|
3090
|
+
"placeholder": "Service Template"
|
|
3091
|
+
},
|
|
3092
|
+
"repoOwner": "Repo-Owner",
|
|
3093
|
+
"repoOwnerPlaceholder": "acme",
|
|
3094
|
+
"repoName": "Repo-Name",
|
|
3095
|
+
"repoNamePlaceholder": "service-template",
|
|
3096
|
+
"descriptionPlaceholder": "Optionale Zusammenfassung dieser Basis",
|
|
3097
|
+
"defaultInstructions": {
|
|
3098
|
+
"label": "Standardanweisungen für den Bootstrapper",
|
|
3099
|
+
"description": "Wird den Anweisungen pro Lauf vorangestellt, wann immer diese Basis verwendet wird.",
|
|
3100
|
+
"placeholder": "z. B. Struktur beibehalten; Pakete umbenennen, damit sie zum neuen Service passen"
|
|
3101
|
+
}
|
|
3102
|
+
},
|
|
3103
|
+
"toast": {
|
|
3104
|
+
"repoCreated": "Repository erstellt",
|
|
3105
|
+
"repoCreateFailed": "Repository konnte nicht erstellt werden",
|
|
3106
|
+
"failed": "Bootstrap fehlgeschlagen",
|
|
3107
|
+
"failedFallback": "Der Bootstrapper meldete einen Fehler.",
|
|
3108
|
+
"started": "Bootstrapping gestartet",
|
|
3109
|
+
"startedDesc": "Ein Container bootstrappt {repo}; verfolgen Sie den Fortschritt auf dem Board.",
|
|
3110
|
+
"bootstrapFailed": "Bootstrapping fehlgeschlagen",
|
|
3111
|
+
"saveArchFailed": "Referenzarchitektur konnte nicht gespeichert werden",
|
|
3112
|
+
"deleteFailed": "Löschen fehlgeschlagen"
|
|
3113
|
+
}
|
|
3114
|
+
},
|
|
3115
|
+
"fragments": {
|
|
3116
|
+
"panel": {
|
|
3117
|
+
"title": "Prompt-Fragment-Bibliothek"
|
|
3118
|
+
},
|
|
3119
|
+
"intro": {
|
|
3120
|
+
"workspace": "Kuratieren Sie die Best-Practice-Richtlinien, denen Agenten auf diesem Board folgen. Fragmente werden aus dem integrierten Katalog, Ihrem Konto und diesem Board zusammengeführt (spätere Ebenen überschreiben frühere), dann werden die relevanten für jeden Agentenlauf ausgewählt.",
|
|
3121
|
+
"account": "Kuratieren Sie Best-Practice-Richtlinien, die von jedem Board in diesem Konto geteilt werden. Konto-Fragmente werden unterhalb des integrierten Katalogs und über nichts zusammengeführt, und ein Board kann eigene darüber überschreiben oder hinzufügen. Die relevanten werden für jeden Agentenlauf ausgewählt."
|
|
3122
|
+
},
|
|
3123
|
+
"owner": {
|
|
3124
|
+
"workspace": "Dieses Board",
|
|
3125
|
+
"account": "Dieses Konto"
|
|
3126
|
+
},
|
|
3127
|
+
"tier": {
|
|
3128
|
+
"builtin": "Integriert",
|
|
3129
|
+
"account": "Konto",
|
|
3130
|
+
"workspace": "Dieses Board"
|
|
3131
|
+
},
|
|
3132
|
+
"tab": {
|
|
3133
|
+
"catalog": "Aufgelöster Katalog",
|
|
3134
|
+
"documents": "Dokumente",
|
|
3135
|
+
"sources": "Repo-Quellen"
|
|
3136
|
+
},
|
|
3137
|
+
"catalog": {
|
|
3138
|
+
"summary": "{count} Fragment aufgelöst · {builtin} integriert. | {count} Fragmente aufgelöst · {builtin} integriert.",
|
|
3139
|
+
"live": "Live · {source}"
|
|
3140
|
+
},
|
|
3141
|
+
"authored": {
|
|
3142
|
+
"fromRepo": "aus Repo",
|
|
3143
|
+
"empty": {
|
|
3144
|
+
"workspace": "Noch keine board-spezifischen Fragmente. Fügen Sie unten eines hinzu oder überschreiben Sie ein integriertes über dessen ID.",
|
|
3145
|
+
"account": "Noch keine konto-spezifischen Fragmente. Fügen Sie unten eines hinzu oder überschreiben Sie ein integriertes über dessen ID."
|
|
3146
|
+
},
|
|
3147
|
+
"addTitle": "Fragment hinzufügen",
|
|
3148
|
+
"titlePlaceholder": "Titel",
|
|
3149
|
+
"summaryPlaceholder": "Einzeilige Zusammenfassung (vom Selektor verwendet)",
|
|
3150
|
+
"bodyPlaceholder": "Richtlinientext (in den Prompt injiziert)",
|
|
3151
|
+
"tagsPlaceholder": "Tags, kommagetrennt (z. B. backend, db)",
|
|
3152
|
+
"add": "Fragment hinzufügen"
|
|
3153
|
+
},
|
|
3154
|
+
"documents": {
|
|
3155
|
+
"intro": "Verknüpfen Sie eine Confluence-/Notion-Seite oder eine GitHub-Datei als Best-Practice-Fragment. Ihre Richtlinie wird zur Laufzeit aus der Quelle neu aufgelöst: Bearbeiten Sie das Dokument, und der nächste Agentenlauf folgt der neuen Version (kein erneuter Import).",
|
|
3156
|
+
"lastResolved": "zuletzt aufgelöst {date}",
|
|
3157
|
+
"refreshTitle": "Jetzt aus der Quelle neu auflösen",
|
|
3158
|
+
"empty": "Noch keine dokumentgestützten Fragmente. Verknüpfen Sie unten eines.",
|
|
3159
|
+
"linkTitle": "Ein Dokument verknüpfen",
|
|
3160
|
+
"disabledHint": "Erstellen Sie zuerst ein Board mit einer verbundenen Dokumentquelle; Dokument-Fragmente auf Kontoebene werden über eines der Boards dieses Kontos abgerufen.",
|
|
3161
|
+
"connectFirst": "Verbinden Sie zuerst unter Integrationen eine Dokumentquelle (Confluence, Notion oder GitHub).",
|
|
3162
|
+
"refPlaceholder": "Seiten-ID oder URL (z. B. eine Confluence-/Notion-Seite oder GitHub-Datei-URL)",
|
|
3163
|
+
"tagsPlaceholder": "Tags, kommagetrennt (optional)",
|
|
3164
|
+
"link": "Als lebendes Fragment verknüpfen",
|
|
3165
|
+
"githubBrowseHint": "Durchsuchen Sie das Repo und wählen Sie die zu verknüpfende Datei."
|
|
3166
|
+
},
|
|
3167
|
+
"sources": {
|
|
3168
|
+
"metaSynced": "synchronisiert · ref {ref}",
|
|
3169
|
+
"metaNever": "nie synchronisiert · ref {ref}",
|
|
3170
|
+
"changes": "Änderungen",
|
|
3171
|
+
"empty": "Keine verknüpften Richtlinien-Repos. Verknüpfen Sie unten eines, um dessen Markdown-Dateien als Fragmente zu importieren.",
|
|
3172
|
+
"linkTitle": "Ein Richtlinien-Repo verknüpfen",
|
|
3173
|
+
"ownerPlaceholder": "owner",
|
|
3174
|
+
"repoPlaceholder": "repo",
|
|
3175
|
+
"dirPlaceholder": "Verzeichnispfad (z. B. guidelines)",
|
|
3176
|
+
"refPlaceholder": "ref (Standard HEAD)",
|
|
3177
|
+
"link": "Verknüpfen & synchronisieren",
|
|
3178
|
+
"browseHint": "Durchsuchen Sie das Repo und wählen Sie das Verzeichnis mit den Markdown-Richtlinien (oder verknüpfen Sie das gesamte Repo).",
|
|
3179
|
+
"selectedDir": "Verzeichnis:",
|
|
3180
|
+
"wholeRepo": "Gesamtes Repository (Root)."
|
|
3181
|
+
},
|
|
3182
|
+
"toast": {
|
|
3183
|
+
"added": "Fragment hinzugefügt",
|
|
3184
|
+
"addFailed": "Fragment konnte nicht hinzugefügt werden",
|
|
3185
|
+
"removed": "Fragment entfernt",
|
|
3186
|
+
"removeFailed": "Fragment konnte nicht entfernt werden",
|
|
3187
|
+
"documentLinked": "Dokument als lebendes Fragment verknüpft",
|
|
3188
|
+
"linkDocumentFailed": "Dokument konnte nicht verknüpft werden",
|
|
3189
|
+
"refreshed": "Fragment aus der Quelle neu aufgelöst",
|
|
3190
|
+
"refreshFailed": "Fragment konnte nicht aktualisiert werden",
|
|
3191
|
+
"sourceLinked": "Quelle verknüpft & synchronisiert",
|
|
3192
|
+
"linkSourceFailed": "Quelle konnte nicht verknüpft werden",
|
|
3193
|
+
"synced": "Synchronisiert: {updated} aktualisiert, {removed} entfernt",
|
|
3194
|
+
"syncFailed": "Quelle konnte nicht synchronisiert werden",
|
|
3195
|
+
"changesAvailable": "Änderungen verfügbar",
|
|
3196
|
+
"upToDate": "Aktuell",
|
|
3197
|
+
"checkSourceFailed": "Quelle konnte nicht geprüft werden",
|
|
3198
|
+
"sourceUnlinked": "Quelle-Verknüpfung aufgehoben",
|
|
3199
|
+
"unlinkSourceFailed": "Quelle-Verknüpfung konnte nicht aufgehoben werden"
|
|
3200
|
+
},
|
|
3201
|
+
"confirmRemove": {
|
|
3202
|
+
"title": "Dieses Fragment löschen?",
|
|
3203
|
+
"body": "\"{name}\" wird entfernt. Dies kann nicht rückgängig gemacht werden."
|
|
3204
|
+
},
|
|
3205
|
+
"unavailable": "Die Prompt-Fragment-Bibliothek ist für dieses Deployment nicht aktiviert."
|
|
3206
|
+
},
|
|
3207
|
+
"brainstorm": {
|
|
3208
|
+
"title": {
|
|
3209
|
+
"architecture": "Architektur-Brainstorm",
|
|
3210
|
+
"requirements": "Anforderungs-Brainstorm"
|
|
3211
|
+
},
|
|
3212
|
+
"subjectNoun": {
|
|
3213
|
+
"architecture": "Ansatz",
|
|
3214
|
+
"requirements": "Anforderungen"
|
|
3215
|
+
},
|
|
3216
|
+
"docNoun": {
|
|
3217
|
+
"architecture": "technischer Ansatz",
|
|
3218
|
+
"requirements": "Anforderungsrichtung"
|
|
3219
|
+
},
|
|
3220
|
+
"iteration": "Iteration {current} / {max}",
|
|
3221
|
+
"intro": "Ein KI-Partner hat die folgenden {subject}-Optionen vorgeschlagen, jeweils mit ihren Abwägungen. {choose} Sie die gewünschten (und steuern Sie sie) und {dismiss} Sie den Rest, arbeiten Sie sie dann ein; es läuft erneut, bis Sie sich auf einen {doc} einigen.",
|
|
3222
|
+
"introChoose": "Wählen",
|
|
3223
|
+
"introDismiss": "verwerfen",
|
|
3224
|
+
"empty": "Noch kein Brainstorm. Es läuft automatisch, wenn die Pipeline dieser Aufgabe den Brainstorm-Schritt erreicht.",
|
|
3225
|
+
"loading": "Brainstorm wird geladen…",
|
|
3226
|
+
"generating": "Optionen werden generiert…",
|
|
3227
|
+
"settledBanner": "Der {doc} ist festgelegt. Das folgende Dokument verwendet die nächste Phase.",
|
|
3228
|
+
"exceeded": {
|
|
3229
|
+
"heading": "Das {max}-Iterationen-Limit wurde mit noch offenen Optionen erreicht.",
|
|
3230
|
+
"detail": "Führen Sie eine weitere Brainstorm-Runde durch, fahren Sie trotzdem mit der letzten Richtung zur nächsten Phase fort, oder stoppen und setzen Sie die Aufgabe zurück, um sie zu bearbeiten und erneut einzureichen."
|
|
3231
|
+
},
|
|
3232
|
+
"working": {
|
|
3233
|
+
"incorporating": "Ihre Auswahl wird in einen {doc} eingearbeitet… Sie können dies schließen — wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
3234
|
+
"reReviewing": "Der Brainstorm wird auf der aktualisierten Richtung erneut ausgeführt… Sie können dies schließen — wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden."
|
|
3235
|
+
},
|
|
3236
|
+
"severity": {
|
|
3237
|
+
"low": "niedrig",
|
|
3238
|
+
"medium": "mittel",
|
|
3239
|
+
"high": "hoch"
|
|
3240
|
+
},
|
|
3241
|
+
"category": {
|
|
3242
|
+
"gap": "Lücke",
|
|
3243
|
+
"clarification": "Klärung",
|
|
3244
|
+
"assumption": "Annahme",
|
|
3245
|
+
"risk": "Risiko",
|
|
3246
|
+
"question": "Frage"
|
|
3247
|
+
},
|
|
3248
|
+
"itemStatus": {
|
|
3249
|
+
"open": "offen",
|
|
3250
|
+
"answered": "beantwortet",
|
|
3251
|
+
"resolved": "gelöst",
|
|
3252
|
+
"dismissed": "verworfen",
|
|
3253
|
+
"recommend_requested": "Empfehlung angefordert"
|
|
3254
|
+
},
|
|
3255
|
+
"yourChoice": "Ihre Wahl",
|
|
3256
|
+
"replyPlaceholder": {
|
|
3257
|
+
"refine": "Ihre Wahl verfeinern…",
|
|
3258
|
+
"choose": "Diese Option wählen / steuern…"
|
|
3259
|
+
},
|
|
3260
|
+
"saveChoice": "Wahl speichern",
|
|
3261
|
+
"dismiss": "Verwerfen",
|
|
3262
|
+
"reopen": "Erneut öffnen",
|
|
3263
|
+
"docDraft": "{doc} (Entwurf)",
|
|
3264
|
+
"rail": {
|
|
3265
|
+
"options": "Optionen",
|
|
3266
|
+
"open": "Offen",
|
|
3267
|
+
"chosen": "Gewählt",
|
|
3268
|
+
"model": "Modell"
|
|
3269
|
+
},
|
|
3270
|
+
"proceedNothing": "Fortfahren (nichts einzuarbeiten)",
|
|
3271
|
+
"incorporateChoices": "Auswahl einarbeiten",
|
|
3272
|
+
"hint": {
|
|
3273
|
+
"allDismissed": "Jede Option ist verworfen — fahren Sie ohne Richtung zur nächsten Phase fort.",
|
|
3274
|
+
"incorporate": "Fügt Ihre Auswahl in einen {doc} zusammen und führt dann den Brainstorm automatisch erneut aus.",
|
|
3275
|
+
"chooseAll": "Wählen oder verwerfen Sie jede Option, um fortzufahren."
|
|
3276
|
+
},
|
|
3277
|
+
"reRunning": "Wird erneut ausgeführt…",
|
|
3278
|
+
"reRun": "Sieht gut aus — erneut ausführen",
|
|
3279
|
+
"redoIncorporation": "Einarbeitung wiederholen",
|
|
3280
|
+
"redoPlaceholder": "Was soll die Richtung anders machen?",
|
|
3281
|
+
"redoWithDirection": "Mit dieser Vorgabe wiederholen",
|
|
3282
|
+
"mergedHint": "Die erneute Ausführung führt den Agenten gegen diese Richtung aus. Wenn Sie mit der Zusammenführung unzufrieden sind, wiederholen Sie sie stattdessen mit einem Kommentar.",
|
|
3283
|
+
"incorporatedFooter": "Richtung festgelegt — die Pipeline wird mit dem Dokument links fortgesetzt.",
|
|
3284
|
+
"toast": {
|
|
3285
|
+
"saveChoiceError": "Die Wahl konnte nicht gespeichert werden",
|
|
3286
|
+
"updateOptionError": "Die Option konnte nicht aktualisiert werden",
|
|
3287
|
+
"incorporateError": "Die Auswahl konnte nicht eingearbeitet werden",
|
|
3288
|
+
"draftingTitle": "Der {doc} wird im Hintergrund erstellt",
|
|
3289
|
+
"draftingDescription": "Sie sind zurück auf dem Board — wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
3290
|
+
"reReviewSettled": "Richtung festgelegt — Pipeline wird fortgesetzt",
|
|
3291
|
+
"reReviewExceeded": "Iterationslimit erreicht — wählen Sie, wie Sie fortfahren",
|
|
3292
|
+
"reReviewNewOptions": "keine neuen Optionen, auf die zu reagieren ist | eine neue Option, auf die zu reagieren ist | {count} neue Optionen, auf die zu reagieren ist",
|
|
3293
|
+
"reReviewError": "Der Brainstorm konnte nicht erneut ausgeführt werden",
|
|
3294
|
+
"proceeding": "Es wird zur nächsten Phase fortgefahren",
|
|
3295
|
+
"proceedError": "Es konnte nicht fortgefahren werden",
|
|
3296
|
+
"taskReset": "Aufgabe zurückgesetzt — bearbeiten Sie sie und reichen Sie sie erneut ein",
|
|
3297
|
+
"extraRoundGranted": "Eine weitere Brainstorm-Runde gewährt",
|
|
3298
|
+
"resolveError": "Der Brainstorm konnte nicht abgeschlossen werden"
|
|
3299
|
+
}
|
|
3300
|
+
},
|
|
3301
|
+
"clarity": {
|
|
3302
|
+
"title": "Bug-Report-Triage",
|
|
3303
|
+
"iteration": "Iteration {current} / {max}",
|
|
3304
|
+
"intro": "Ein KI-Prüfer hat den Bug-Report dieses {level} auf Behebbarkeit triagiert — die Beschreibung sowie jeglichen verknüpften Kontext — und die folgenden Fragen erhoben. {answer} Sie die relevanten und {dismiss} Sie die irrelevanten, arbeiten Sie sie dann ein; der Prüfer prüft erneut, bis der Bug-Report klar genug zum Beheben ist.",
|
|
3305
|
+
"itemFallback": "Element",
|
|
3306
|
+
"introAnswer": "Beantworten",
|
|
3307
|
+
"introDismiss": "verwerfen",
|
|
3308
|
+
"empty": "Noch keine Prüfung. Der Prüfer läuft automatisch als erster Schritt, wenn die Pipeline dieser Aufgabe startet.",
|
|
3309
|
+
"loadingReview": "Prüfung wird geladen…",
|
|
3310
|
+
"triaging": "Bug-Report wird triagiert…",
|
|
3311
|
+
"converged": "Der Bug-Report ist geklärt. Der folgende Bericht verwendet jeder nachgelagerte Agentenschritt.",
|
|
3312
|
+
"capHeading": "Das {max}-Iterationen-Limit wurde mit noch offenen Befunden erreicht.",
|
|
3313
|
+
"capDetail": "Führen Sie eine weitere Prüfrunde durch, fahren Sie trotzdem mit dem zuletzt geklärten Bug-Report zur nächsten Phase fort, oder stoppen und setzen Sie die Aufgabe zurück, um den Bug-Report zu überarbeiten und erneut einzureichen.",
|
|
3314
|
+
"incorporatingStage": "Ihre Antworten werden in einen geklärten Bug-Report eingearbeitet… Sie können dies schließen, wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
3315
|
+
"reReviewingStage": "Der aktualisierte Bug-Report wird erneut geprüft… Sie können dies schließen, wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
3316
|
+
"answerLabel": "Antwort",
|
|
3317
|
+
"answerPlaceholder": "Diesen Befund beantworten…",
|
|
3318
|
+
"dismissIrrelevant": "Als irrelevant verwerfen",
|
|
3319
|
+
"reopen": "Erneut öffnen",
|
|
3320
|
+
"docHeading": "Geklärter Bug-Report",
|
|
3321
|
+
"docHeadingDraft": "Geklärter Bug-Report (Entwurf)",
|
|
3322
|
+
"rail": {
|
|
3323
|
+
"findings": "Befunde",
|
|
3324
|
+
"open": "Offen",
|
|
3325
|
+
"answered": "Beantwortet",
|
|
3326
|
+
"model": "Modell"
|
|
3327
|
+
},
|
|
3328
|
+
"proceedNothing": "Fortfahren (nichts einzuarbeiten)",
|
|
3329
|
+
"incorporateAnswers": "Antworten einarbeiten",
|
|
3330
|
+
"hint": {
|
|
3331
|
+
"proceed": "Jeder Befund ist verworfen, fahren Sie ohne Überarbeitung zur nächsten Phase fort.",
|
|
3332
|
+
"incorporate": "Fügt Ihre Antworten in einen geklärten Bug-Report zusammen und prüft ihn dann automatisch erneut.",
|
|
3333
|
+
"answerAll": "Beantworten oder verwerfen Sie jeden Befund, um fortzufahren."
|
|
3334
|
+
},
|
|
3335
|
+
"reReviewing": "Wird erneut geprüft…",
|
|
3336
|
+
"looksGoodReReview": "Sieht gut aus — erneut prüfen",
|
|
3337
|
+
"redoIncorporation": "Einarbeitung wiederholen",
|
|
3338
|
+
"redoPlaceholder": "Was soll die Zusammenführung anders machen?",
|
|
3339
|
+
"redoWithDirection": "Mit dieser Vorgabe wiederholen",
|
|
3340
|
+
"redoHint": "Die erneute Prüfung führt den Prüfer gegen diesen Bericht aus. Wenn Sie mit der Zusammenführung unzufrieden sind, wiederholen Sie sie stattdessen mit einem Kommentar.",
|
|
3341
|
+
"incorporatedFooter": "Bug-Report geklärt, die Pipeline wird mit dem Bericht links fortgesetzt.",
|
|
3342
|
+
"severity": {
|
|
3343
|
+
"low": "niedrig",
|
|
3344
|
+
"medium": "mittel",
|
|
3345
|
+
"high": "hoch"
|
|
3346
|
+
},
|
|
3347
|
+
"category": {
|
|
3348
|
+
"gap": "Lücke",
|
|
3349
|
+
"clarification": "Klärung",
|
|
3350
|
+
"assumption": "Annahme",
|
|
3351
|
+
"risk": "Risiko",
|
|
3352
|
+
"question": "Frage"
|
|
3353
|
+
},
|
|
3354
|
+
"itemStatus": {
|
|
3355
|
+
"open": "offen",
|
|
3356
|
+
"answered": "beantwortet",
|
|
3357
|
+
"resolved": "gelöst",
|
|
3358
|
+
"dismissed": "verworfen",
|
|
3359
|
+
"recommend_requested": "Empfehlung angefordert"
|
|
3360
|
+
},
|
|
3361
|
+
"toast": {
|
|
3362
|
+
"clarifyingTitle": "Der Bug-Report wird im Hintergrund geklärt",
|
|
3363
|
+
"clarifyingDescription": "Sie sind zurück auf dem Board, wir benachrichtigen Sie nur, wenn weitere Eingaben benötigt werden.",
|
|
3364
|
+
"reReviewSatisfied": "Prüfer ist zufrieden — Pipeline wird fortgesetzt",
|
|
3365
|
+
"reReviewExceeded": "Iterationslimit erreicht — wählen Sie, wie Sie fortfahren",
|
|
3366
|
+
"reReviewNewFindings": "keine neuen Befunde, auf die zu reagieren ist | ein neuer Befund, auf den zu reagieren ist | {count} neue Befunde, auf die zu reagieren ist",
|
|
3367
|
+
"proceeding": "Es wird zur nächsten Phase fortgefahren",
|
|
3368
|
+
"taskReset": "Aufgabe zurückgesetzt — bearbeiten Sie den Bug-Report und reichen Sie ihn erneut ein",
|
|
3369
|
+
"extraRoundGranted": "Eine weitere Prüfrunde gewährt"
|
|
3370
|
+
},
|
|
3371
|
+
"error": {
|
|
3372
|
+
"saveAnswer": "Die Antwort konnte nicht gespeichert werden",
|
|
3373
|
+
"updateFinding": "Der Befund konnte nicht aktualisiert werden",
|
|
3374
|
+
"incorporate": "Die Antworten konnten nicht eingearbeitet werden",
|
|
3375
|
+
"reReview": "Der Bug-Report konnte nicht erneut geprüft werden",
|
|
3376
|
+
"proceed": "Es konnte nicht fortgefahren werden",
|
|
3377
|
+
"resolve": "Die Prüfung konnte nicht abgeschlossen werden"
|
|
3378
|
+
}
|
|
3379
|
+
},
|
|
3380
|
+
"initiative": {
|
|
3381
|
+
"create": {
|
|
3382
|
+
"title": "Initiative erstellen",
|
|
3383
|
+
"inFrame": "Neue Initiative in {frame}",
|
|
3384
|
+
"titleField": "Titel",
|
|
3385
|
+
"titlePlaceholder": "z. B. Die API auf das neue Auth-Modell migrieren",
|
|
3386
|
+
"goalField": "Ziel",
|
|
3387
|
+
"goalPlaceholder": "Beschreiben Sie das Ziel, die Einschränkungen und den groben Umfang. Der Planer verfeinert dies zu einem mehrphasigen Plan.",
|
|
3388
|
+
"hint": "Es läuft noch nichts: Führen Sie nach dem Erstellen die Initiative-Planning-Pipeline auf dem Block aus. Sie analysiert die Codebasis und entwirft den mehrphasigen Plan zu Ihrer Freigabe.",
|
|
3389
|
+
"submit": "Initiative erstellen",
|
|
3390
|
+
"failedTitle": "Die Initiative konnte nicht erstellt werden"
|
|
3391
|
+
},
|
|
3392
|
+
"status": {
|
|
3393
|
+
"planning": "Planung",
|
|
3394
|
+
"awaiting_approval": "Warten auf Freigabe",
|
|
3395
|
+
"executing": "Wird ausgeführt",
|
|
3396
|
+
"paused": "Pausiert",
|
|
3397
|
+
"done": "Fertig",
|
|
3398
|
+
"cancelled": "Abgebrochen"
|
|
3399
|
+
},
|
|
3400
|
+
"itemStatus": {
|
|
3401
|
+
"pending": "Ausstehend",
|
|
3402
|
+
"in_progress": "In Arbeit",
|
|
3403
|
+
"pr_open": "PR offen",
|
|
3404
|
+
"done": "Fertig",
|
|
3405
|
+
"blocked": "Blockiert",
|
|
3406
|
+
"skipped": "Übersprungen"
|
|
3407
|
+
},
|
|
3408
|
+
"card": {
|
|
3409
|
+
"kind": "Initiative",
|
|
3410
|
+
"progress": "{done}/{total} Elemente fertig",
|
|
3411
|
+
"openTracker": "Tracker öffnen"
|
|
3412
|
+
},
|
|
3413
|
+
"tracker": {
|
|
3414
|
+
"title": "Initiative-Tracker",
|
|
3415
|
+
"subtitle": "Phasen, Arbeitselemente, Entscheidungen und Fortschritt dieser Initiative",
|
|
3416
|
+
"empty": "Keine Initiative für diesen Block gefunden.",
|
|
3417
|
+
"goal": "Ziel",
|
|
3418
|
+
"constraints": "Einschränkungen",
|
|
3419
|
+
"nonGoals": "Nicht-Ziele",
|
|
3420
|
+
"analysis": "Codebasis-Analyse",
|
|
3421
|
+
"noPlan": "Noch kein Plan. Führen Sie die Initiative-Planning-Pipeline aus, um den mehrphasigen Plan zu entwerfen.",
|
|
3422
|
+
"phase": "Phase: {title}",
|
|
3423
|
+
"colItem": "Element",
|
|
3424
|
+
"colStatus": "Status",
|
|
3425
|
+
"colPr": "PR",
|
|
3426
|
+
"dependsOn": "Hängt ab von: {items}",
|
|
3427
|
+
"prLink": "PR",
|
|
3428
|
+
"policy": "Ausführungsrichtlinie",
|
|
3429
|
+
"maxConcurrent": "Max. gleichzeitige Aufgaben: {count}",
|
|
3430
|
+
"defaultPipeline": "Standard-Pipeline:",
|
|
3431
|
+
"axisComplexity": "Komplexität >= {value}",
|
|
3432
|
+
"axisRisk": "Risiko >= {value}",
|
|
3433
|
+
"axisImpact": "Auswirkung >= {value}",
|
|
3434
|
+
"axisNever": "trifft nie zu (keine Schwellenwerte)",
|
|
3435
|
+
"decisions": "Entscheidungen",
|
|
3436
|
+
"deviations": "Abweichungen",
|
|
3437
|
+
"followUps": "Follow-ups",
|
|
3438
|
+
"caveats": "Bekannte Vorbehalte"
|
|
3439
|
+
},
|
|
3440
|
+
"inspector": {
|
|
3441
|
+
"runPlanning": "Planung ausführen",
|
|
3442
|
+
"answerPlanning": "Planungsfragen beantworten",
|
|
3443
|
+
"pause": "Pausieren",
|
|
3444
|
+
"resume": "Fortsetzen",
|
|
3445
|
+
"cancel": "Initiative abbrechen",
|
|
3446
|
+
"hint": "Die Planning-Pipeline erkundet die Codebasis, entwirft den mehrphasigen Plan zur Freigabe und committet dann das Tracker-Dokument ins Repository."
|
|
3447
|
+
},
|
|
3448
|
+
"planning": {
|
|
3449
|
+
"title": "Die Initiative planen",
|
|
3450
|
+
"subtitle": "Beantworten Sie die Fragen des Planers, damit er die Initiative eingrenzen kann",
|
|
3451
|
+
"intro": "Der Planer grenzt diese Initiative ein. Beantworten Sie seine Fragen, um Ziel und Einschränkungen zu formen, dann fahren Sie fort — oder gehen Sie mit dem, was er hat, zur Planung über.",
|
|
3452
|
+
"empty": "Keine Initiative für diesen Block gefunden.",
|
|
3453
|
+
"converged": "Keine Fragen ausstehend. Der Planer hat, was er braucht, und entwirft den Plan.",
|
|
3454
|
+
"answerPlaceholder": "Ihre Antwort",
|
|
3455
|
+
"hint": "Fortfahren lässt den Planer Rückfragen stellen; Übergehen plant mit den bisherigen Antworten.",
|
|
3456
|
+
"proceed": "Zur Planung übergehen",
|
|
3457
|
+
"continue": "Fortfahren"
|
|
3458
|
+
},
|
|
3459
|
+
"followUpStatus": {
|
|
3460
|
+
"open": "Offen",
|
|
3461
|
+
"promoted": "Hochgestuft",
|
|
3462
|
+
"dismissed": "Verworfen"
|
|
3463
|
+
},
|
|
3464
|
+
"curation": {
|
|
3465
|
+
"promote": "Zu Element hochstufen",
|
|
3466
|
+
"promoteConfirm": "Element erstellen",
|
|
3467
|
+
"dismiss": "Verwerfen",
|
|
3468
|
+
"retry": "Erneut versuchen",
|
|
3469
|
+
"skip": "Überspringen",
|
|
3470
|
+
"edit": "Bearbeiten",
|
|
3471
|
+
"save": "Speichern",
|
|
3472
|
+
"cancel": "Abbrechen",
|
|
3473
|
+
"phaseField": "Phase",
|
|
3474
|
+
"itemTitlePlaceholder": "Element-Titel (Standard ist der des Follow-ups)",
|
|
3475
|
+
"maxConcurrentField": "Max. gleichzeitige Aufgaben",
|
|
3476
|
+
"defaultPipelineField": "Standard-Pipeline",
|
|
3477
|
+
"failed": "Die Initiative konnte nicht aktualisiert werden"
|
|
3478
|
+
}
|
|
3479
|
+
},
|
|
3480
|
+
"app": {
|
|
3481
|
+
"loading": "Wird geladen…",
|
|
3482
|
+
"loadingBoard": "Board wird geladen…",
|
|
3483
|
+
"backendUnreachable": "Backend nicht erreichbar",
|
|
3484
|
+
"reconnecting": "Verbindung wird wiederhergestellt…",
|
|
3485
|
+
"offline": "Keine Live-Updates"
|
|
3486
|
+
},
|
|
3487
|
+
"language": {
|
|
3488
|
+
"switcher": "Sprache",
|
|
3489
|
+
"warning": {
|
|
3490
|
+
"title": "Inoffizielle Übersetzung",
|
|
3491
|
+
"body": "Diese Übersetzung stammt aus der Community und kann fehlerhaft sein. Einen Fehler entdeckt? Bitte melde ihn oder reiche eine Korrektur unter {repoLink} ein.",
|
|
3492
|
+
"repoLinkLabel": "das cat-factory-Repository",
|
|
3493
|
+
"dismiss": "Schließen"
|
|
3494
|
+
}
|
|
3495
|
+
},
|
|
3496
|
+
"common": {
|
|
3497
|
+
"save": "Speichern",
|
|
3498
|
+
"cancel": "Abbrechen",
|
|
3499
|
+
"retry": "Erneut versuchen",
|
|
3500
|
+
"copy": "Kopieren",
|
|
3501
|
+
"copied": "In die Zwischenablage kopiert",
|
|
3502
|
+
"reveal": "Anzeigen",
|
|
3503
|
+
"hide": "Verbergen",
|
|
3504
|
+
"delete": "Löschen",
|
|
3505
|
+
"remove": "Entfernen",
|
|
3506
|
+
"confirm": {
|
|
3507
|
+
"defaultTitle": "Bist du sicher?",
|
|
3508
|
+
"confirm": "Bestätigen",
|
|
3509
|
+
"irreversible": "Dies kann nicht rückgängig gemacht werden.",
|
|
3510
|
+
"reconnectHint": "Du musst die Verbindung wiederherstellen, bevor du es erneut verwenden kannst.",
|
|
3511
|
+
"titles": {
|
|
3512
|
+
"disconnect": "{name} trennen?",
|
|
3513
|
+
"remove": "{name} entfernen?",
|
|
3514
|
+
"revoke": "{name} widerrufen?",
|
|
3515
|
+
"clear": "{name} leeren?",
|
|
3516
|
+
"destroy": "{name} zerstören?"
|
|
3517
|
+
},
|
|
3518
|
+
"reconfigureHint": "Du kannst es später erneut einrichten."
|
|
3519
|
+
},
|
|
3520
|
+
"block": "Block",
|
|
3521
|
+
"actionFailed": "Aktion fehlgeschlagen",
|
|
3522
|
+
"close": "Schließen",
|
|
3523
|
+
"disconnect": "Trennen",
|
|
3524
|
+
"copyFailed": "Kopieren in die Zwischenablage nicht möglich",
|
|
3525
|
+
"revoke": "Widerrufen",
|
|
3526
|
+
"clear": "Leeren",
|
|
3527
|
+
"destroy": "Zerstören",
|
|
3528
|
+
"toast": {
|
|
3529
|
+
"disconnected": "{name} getrennt",
|
|
3530
|
+
"removed": "{name} entfernt",
|
|
3531
|
+
"revoked": "{name} widerrufen",
|
|
3532
|
+
"cleared": "{name} geleert",
|
|
3533
|
+
"destroyed": "{name} zerstört"
|
|
3534
|
+
},
|
|
3535
|
+
"undo": "Rückgängig",
|
|
3536
|
+
"back": "Zurück",
|
|
3537
|
+
"next": "Weiter",
|
|
3538
|
+
"done": "Fertig"
|
|
3539
|
+
},
|
|
3540
|
+
"nav": {
|
|
3541
|
+
"menu": "Navigationsmenü",
|
|
3542
|
+
"openMenu": "Menü öffnen",
|
|
3543
|
+
"closeMenu": "Menü schließen",
|
|
3544
|
+
"commandBar": "Suchen oder einen Befehl ausführen…",
|
|
3545
|
+
"create": "Erstellen",
|
|
3546
|
+
"buildPipeline": "Eine Pipeline erstellen",
|
|
3547
|
+
"repositories": "Repositories",
|
|
3548
|
+
"addFromRepo": "Aus vorhandenem Repo hinzufügen",
|
|
3549
|
+
"bootstrapRepo": "Repo bootstrappen",
|
|
3550
|
+
"integrations": "Integrationen",
|
|
3551
|
+
"infrastructure": "Infrastruktur",
|
|
3552
|
+
"sandbox": "Sandbox",
|
|
3553
|
+
"kaizen": "Kaizen",
|
|
3554
|
+
"workspaceContext": "Workspace-Kontext",
|
|
3555
|
+
"contextFragments": "Kontextfragmente",
|
|
3556
|
+
"configuration": "Konfiguration",
|
|
3557
|
+
"workspaceSettings": "Workspace-Einstellungen",
|
|
3558
|
+
"modelConfiguration": "Modellkonfiguration",
|
|
3559
|
+
"accountSettings": "Kontoeinstellungen",
|
|
3560
|
+
"environmentSetup": "Umgebungseinrichtung"
|
|
3561
|
+
},
|
|
3562
|
+
"errors": {
|
|
3563
|
+
"action": {
|
|
3564
|
+
"retryFailed": "Wiederholung fehlgeschlagen",
|
|
3565
|
+
"startFailed": "Start fehlgeschlagen",
|
|
3566
|
+
"mergeFailed": "Zusammenführen fehlgeschlagen",
|
|
3567
|
+
"restartFailed": "Neustart fehlgeschlagen"
|
|
3568
|
+
},
|
|
3569
|
+
"conflict": {
|
|
3570
|
+
"title": {
|
|
3571
|
+
"dependencies_unmet": "Durch Abhängigkeiten blockiert",
|
|
3572
|
+
"task_limit_reached": "Parallelitätslimit erreicht",
|
|
3573
|
+
"tester_infra_unsupported": "Testinfrastruktur nicht konfiguriert",
|
|
3574
|
+
"agent_backend_unconfigured": "Agent-Backend nicht konfiguriert",
|
|
3575
|
+
"run_not_retryable": "Lauf kann nicht wiederholt werden",
|
|
3576
|
+
"no_pr_to_merge": "Kein PR zum Zusammenführen",
|
|
3577
|
+
"github_not_connected": "GitHub nicht verbunden",
|
|
3578
|
+
"bootstrap_not_retryable": "Bootstrap kann nicht wiederholt werden",
|
|
3579
|
+
"bootstrap_reference_missing": "Referenzarchitektur ist nicht mehr vorhanden",
|
|
3580
|
+
"provision_type_unhandled": "Kein Handler für diesen Bereitstellungstyp",
|
|
3581
|
+
"preset_unsatisfiable": "Modell-Preset kann diese Pipeline nicht ausführen",
|
|
3582
|
+
"visual_pipeline_no_frontend": "Kein Frontend zum Testen",
|
|
3583
|
+
"deployer_required_before_tester": "Füge einen Deployer vor dem Tester hinzu"
|
|
3584
|
+
},
|
|
3585
|
+
"fallbackMessage": "Diese Aktion steht im Konflikt mit dem aktuellen Zustand.",
|
|
3586
|
+
"providersUnconfigured": {
|
|
3587
|
+
"title": "Kein KI-Anbieter für dieses Modell",
|
|
3588
|
+
"body": "Für {models} ist kein Anbieter konfiguriert. Füge einen Anbieterschlüssel hinzu, verbinde ein Abonnement oder aktiviere Cloudflare AI, um es auszuführen.",
|
|
3589
|
+
"action": "KI konfigurieren"
|
|
3590
|
+
},
|
|
3591
|
+
"binaryStorageUnconfigured": {
|
|
3592
|
+
"title": "Kein Speicher für diese Pipeline",
|
|
3593
|
+
"body": "Diese Pipeline enthält einen Agenten, der Binärspeicher benötigt (der UI-Tester lädt seine Screenshots hoch), aber für dieses Konto ist kein Inhaltsspeicher konfiguriert. Konfiguriere Inhaltsspeicher, um sie auszuführen.",
|
|
3594
|
+
"action": "Speicher konfigurieren"
|
|
3595
|
+
}
|
|
3596
|
+
}
|
|
3597
|
+
},
|
|
3598
|
+
"slack": {
|
|
3599
|
+
"panel": {
|
|
3600
|
+
"title": "Slack-Benachrichtigungen",
|
|
3601
|
+
"intro": "Board-Benachrichtigungen (Merge-Reviews, Pipeline-Abschlüsse, CI-Fehler) an Slack senden. Die Verbindung wird kontoweit geteilt; das Routing erfolgt pro Board."
|
|
3602
|
+
},
|
|
3603
|
+
"connect": {
|
|
3604
|
+
"addToSlack": "Zu Slack hinzufügen",
|
|
3605
|
+
"orPasteToken": "...oder ein Bot-Token einfügen (xoxb-...)",
|
|
3606
|
+
"connect": "Verbinden"
|
|
3607
|
+
},
|
|
3608
|
+
"connected": {
|
|
3609
|
+
"label": "Verbunden mit {team}",
|
|
3610
|
+
"disconnect": "Trennen"
|
|
3611
|
+
},
|
|
3612
|
+
"routing": {
|
|
3613
|
+
"heading": "Routing",
|
|
3614
|
+
"channelPlaceholder": "#channel oder Channel-ID",
|
|
3615
|
+
"mentionMembers": "Zugeordnete Kontomitglieder per {'@'} erwähnen",
|
|
3616
|
+
"save": "Routing speichern"
|
|
3617
|
+
},
|
|
3618
|
+
"members": {
|
|
3619
|
+
"heading": "Mitgliederzuordnung (Benutzer-ID zu Slack-Mitglieds-ID)",
|
|
3620
|
+
"hint": "{product}-Mitarbeiter werden bei Anforderungs-Review-Befunden erwähnt; alle anderen nur, wenn sie die Aufgabe erstellt haben.",
|
|
3621
|
+
"productLabel": "Product",
|
|
3622
|
+
"userIdPlaceholder": "Benutzer-ID (usr_...)",
|
|
3623
|
+
"slackIdPlaceholder": "Slack-Mitglieds-ID (U...)",
|
|
3624
|
+
"add": "Mitglied hinzufügen",
|
|
3625
|
+
"save": "Zuordnung speichern"
|
|
3626
|
+
},
|
|
3627
|
+
"routable": {
|
|
3628
|
+
"merge_review": "Merge-Review",
|
|
3629
|
+
"pipeline_complete": "Pipeline abgeschlossen",
|
|
3630
|
+
"ci_failed": "CI fehlgeschlagen",
|
|
3631
|
+
"test_failed": "Tests fehlgeschlagen",
|
|
3632
|
+
"requirement_review": "Anforderungs-Review",
|
|
3633
|
+
"clarity_review": "Klarheits-Review",
|
|
3634
|
+
"release_regression": "Release-Regression",
|
|
3635
|
+
"human_test_ready": "Bereit für manuelle Tests",
|
|
3636
|
+
"visual_confirmation_ready": "Bereit für visuelle Bestätigung",
|
|
3637
|
+
"initiative": "Initiativen-Updates"
|
|
3638
|
+
},
|
|
3639
|
+
"role": {
|
|
3640
|
+
"engineering": "Engineering",
|
|
3641
|
+
"product": "Product"
|
|
3642
|
+
},
|
|
3643
|
+
"toast": {
|
|
3644
|
+
"connected": "Slack verbunden",
|
|
3645
|
+
"routingSaved": "Routing gespeichert",
|
|
3646
|
+
"mapSaved": "Mitgliederzuordnung gespeichert"
|
|
3647
|
+
},
|
|
3648
|
+
"error": {
|
|
3649
|
+
"loadSettings": "Slack-Einstellungen konnten nicht geladen werden",
|
|
3650
|
+
"startOAuth": "Slack-OAuth konnte nicht gestartet werden",
|
|
3651
|
+
"connect": "Slack konnte nicht verbunden werden",
|
|
3652
|
+
"disconnect": "Slack konnte nicht getrennt werden",
|
|
3653
|
+
"saveRouting": "Routing konnte nicht gespeichert werden",
|
|
3654
|
+
"saveMap": "Mitgliederzuordnung konnte nicht gespeichert werden"
|
|
3655
|
+
},
|
|
3656
|
+
"confirmDisconnect": {
|
|
3657
|
+
"title": "Slack trennen?",
|
|
3658
|
+
"body": "Slack-Benachrichtigungen werden gestoppt, bis du die Verbindung wiederherstellst."
|
|
3659
|
+
}
|
|
3660
|
+
},
|
|
3661
|
+
"docInterview": {
|
|
3662
|
+
"title": "Das Dokument verfeinern",
|
|
3663
|
+
"subtitle": "Beantworte die Fragen des Interviewers, damit er das Dokument formen kann",
|
|
3664
|
+
"intro": "Der Interviewer verfeinert dieses Dokument, bevor es geschrieben wird. Beantworte seine Fragen, um Umfang, Zielgruppe und Struktur zu formen, und fahre dann fort – oder gehe mit dem vorhandenen Stand direkt zum Entwurf über.",
|
|
3665
|
+
"empty": "Kein Interview für diesen Block gefunden.",
|
|
3666
|
+
"brief": "Autoren-Briefing",
|
|
3667
|
+
"converged": "Es stehen keine Fragen aus. Der Interviewer hat, was er braucht, und das Dokument wird entworfen.",
|
|
3668
|
+
"answerPlaceholder": "Deine Antwort",
|
|
3669
|
+
"hint": "Mit \"Fortfahren\" kann der Interviewer Nachfragen stellen; mit \"Weiter zum Entwurf\" wird mit den bisherigen Antworten entworfen.",
|
|
3670
|
+
"proceed": "Weiter zum Entwurf",
|
|
3671
|
+
"continue": "Fortfahren",
|
|
3672
|
+
"status": {
|
|
3673
|
+
"awaiting": "Warten auf Antworten",
|
|
3674
|
+
"done": "Fertig"
|
|
3675
|
+
}
|
|
3676
|
+
},
|
|
3677
|
+
"gates": {
|
|
3678
|
+
"subtitle": {
|
|
3679
|
+
"humanReview": "Wartet auf ein manuelles Code-Review am PR und lässt den Fixer bei Kommentaren erneut laufen",
|
|
3680
|
+
"ci": "Sperrt den PR auf grüne CI und lässt den CI-Fixer bei Fehlern erneut laufen",
|
|
3681
|
+
"conflicts": "Sperrt den PR auf ein sauberes Merge und lässt den Resolver bei Konflikten erneut laufen",
|
|
3682
|
+
"docQuality": "Prüft die Struktur des entworfenen Dokuments und lässt den Doc-Fixer bei Problemen erneut laufen"
|
|
3683
|
+
},
|
|
3684
|
+
"status": {
|
|
3685
|
+
"passed": "Bestanden",
|
|
3686
|
+
"gaveUp": "Aufgegeben",
|
|
3687
|
+
"fixing": "Wird behoben",
|
|
3688
|
+
"failing": "Fehlerhaft",
|
|
3689
|
+
"pending": "Ausstehend",
|
|
3690
|
+
"checking": "Wird geprüft"
|
|
3691
|
+
},
|
|
3692
|
+
"conflict": {
|
|
3693
|
+
"mergeable": "Zusammenführbar",
|
|
3694
|
+
"computing": "Zusammenführbarkeit wird berechnet…",
|
|
3695
|
+
"conflicts": "Konflikte mit Basis",
|
|
3696
|
+
"unknown": "Unbekannt"
|
|
3697
|
+
},
|
|
3698
|
+
"noActivity": "Noch keine Gate-Aktivität.",
|
|
3699
|
+
"noActivityHint": "Die Vorprüfung läuft, sobald der PR geöffnet ist. Während sie pollt, zeigt der Schritt seinen Live-Status auf dem Board.",
|
|
3700
|
+
"passedCi": "CI ist grün.",
|
|
3701
|
+
"passedConflicts": "Der PR lässt sich sauber mit seiner Basis zusammenführen.",
|
|
3702
|
+
"humanReview": {
|
|
3703
|
+
"approvals": "{approved} / {required} Freigabe | {approved} / {required} Freigaben",
|
|
3704
|
+
"suffixFixing": "· Fixer bearbeitet Kommentare…",
|
|
3705
|
+
"suffixFailing": "· zu bearbeitende Review-Kommentare",
|
|
3706
|
+
"suffixAwaiting": "· wartet auf Review",
|
|
3707
|
+
"reviewPr": "Pull Request auf GitHub prüfen",
|
|
3708
|
+
"requestFixHeading": "Eine Korrektur anfordern",
|
|
3709
|
+
"requestFixDescription": "Beschreibe eine Änderung, die der Fixer jetzt am PR-Branch vornehmen soll (zusätzlich zu etwaigen Review-Kommentaren, die er automatisch bearbeitet).",
|
|
3710
|
+
"requestFixPlaceholder": "z. B. benenne den Helfer um und füge einen Unit-Test für den Fall leerer Eingabe hinzu",
|
|
3711
|
+
"requestFix": "Korrektur anfordern"
|
|
3712
|
+
},
|
|
3713
|
+
"ci": {
|
|
3714
|
+
"failingChecks": "Fehlgeschlagene Checks",
|
|
3715
|
+
"openOnGithub": "{name} auf GitHub öffnen",
|
|
3716
|
+
"conclusionFallback": "Fehler",
|
|
3717
|
+
"failureFallback": "CI hat für diesen Commit keinen Fehler gemeldet."
|
|
3718
|
+
},
|
|
3719
|
+
"conflicts": {
|
|
3720
|
+
"mergeability": "Zusammenführbarkeit",
|
|
3721
|
+
"viewPr": "Pull Request auf GitHub ansehen"
|
|
3722
|
+
},
|
|
3723
|
+
"docQuality": {
|
|
3724
|
+
"findings": "Dokumentprobleme",
|
|
3725
|
+
"findingsFallback": "Das Dokument hat die strukturellen Prüfungen bestanden.",
|
|
3726
|
+
"viewPr": "Pull Request auf GitHub ansehen"
|
|
3727
|
+
},
|
|
3728
|
+
"attemptsHeading": "{helper}-Versuche",
|
|
3729
|
+
"attempt": "Versuch {number}",
|
|
3730
|
+
"attemptInstructions": "Übergeben an {helper}",
|
|
3731
|
+
"attemptReport": "{helper}-Bericht",
|
|
3732
|
+
"outcome": {
|
|
3733
|
+
"completed": "abgeschlossen",
|
|
3734
|
+
"failed": "fehlgeschlagen"
|
|
3735
|
+
},
|
|
3736
|
+
"sidebar": {
|
|
3737
|
+
"state": "Zustand",
|
|
3738
|
+
"fixRounds": "{count} Korrekturrunde | {count} Korrekturrunden",
|
|
3739
|
+
"attempts": "{attempts}/{max} Versuch | {attempts}/{max} Versuche",
|
|
3740
|
+
"suffixRunning": "· läuft…",
|
|
3741
|
+
"suffixNotNeeded": "· noch nicht nötig",
|
|
3742
|
+
"gatedCommit": "Gesperrter Commit",
|
|
3743
|
+
"footer": "Ein Gate führt eine programmatische Vorprüfung aus und startet den {helper} nur, wenn sie fehlschlägt; eine grüne Prüfung fährt fort, ohne dass etwas gestartet wird."
|
|
3744
|
+
}
|
|
3745
|
+
},
|
|
3746
|
+
"consensus": {
|
|
3747
|
+
"titlePrefix": "Konsens",
|
|
3748
|
+
"participantCount": "keine Teilnehmer | ein Teilnehmer | {count} Teilnehmer",
|
|
3749
|
+
"loading": "Konsens-Sitzung wird geladen…",
|
|
3750
|
+
"empty": "Für diesen Schritt wurde noch keine Konsens-Sitzung ausgeführt.",
|
|
3751
|
+
"failed": "Konsens fehlgeschlagen: {error}",
|
|
3752
|
+
"unknownError": "unbekannter Fehler",
|
|
3753
|
+
"synthesizedResult": "Synthetisiertes Ergebnis",
|
|
3754
|
+
"confidence": "Konfidenz {pct}",
|
|
3755
|
+
"panel": "Panel",
|
|
3756
|
+
"topScore": "Höchste {label} {pct}",
|
|
3757
|
+
"expert": "Experte {letter}",
|
|
3758
|
+
"participant": "Teilnehmer",
|
|
3759
|
+
"strategy": {
|
|
3760
|
+
"specialistPanel": "Fachpanel",
|
|
3761
|
+
"debate": "Debatte",
|
|
3762
|
+
"rankedVoting": "Rangbasierte Abstimmung"
|
|
3763
|
+
},
|
|
3764
|
+
"round": {
|
|
3765
|
+
"heading": "Runde {n}",
|
|
3766
|
+
"contributions": "Beiträge",
|
|
3767
|
+
"draft": "Unabhängige Entwürfe",
|
|
3768
|
+
"critique": "Kritik & Überarbeitung",
|
|
3769
|
+
"score": "Bewertung"
|
|
3770
|
+
},
|
|
3771
|
+
"status": {
|
|
3772
|
+
"running": "Läuft",
|
|
3773
|
+
"synthesizing": "Wird synthetisiert",
|
|
3774
|
+
"done": "Fertig",
|
|
3775
|
+
"failed": "Fehlgeschlagen"
|
|
3776
|
+
}
|
|
3777
|
+
},
|
|
3778
|
+
"spec": {
|
|
3779
|
+
"title": "Anforderungen",
|
|
3780
|
+
"loading": "Spezifikation wird geladen…",
|
|
3781
|
+
"error": "Die Spezifikation konnte nicht geladen werden. Versuche, dieses Fenster erneut zu öffnen.",
|
|
3782
|
+
"overview": "Übersicht",
|
|
3783
|
+
"noFeatureGroups": "Keine Feature-Gruppen",
|
|
3784
|
+
"noSummary": "Keine Service-Zusammenfassung.",
|
|
3785
|
+
"noGherkinForGroup": "Keine Gherkin-Szenarien für diese Gruppe.",
|
|
3786
|
+
"noRequirements": "Keine Anforderungen in dieser Gruppe.",
|
|
3787
|
+
"domainRules": "Domänenregeln",
|
|
3788
|
+
"ruleRationale": " — {rationale}",
|
|
3789
|
+
"moduleHint": "keine Module. Wähle links eine Feature-Gruppe, um ihre Anforderungen anzuzeigen. | 1 Modul. Wähle links eine Feature-Gruppe, um ihre Anforderungen anzuzeigen. | {count} Module. Wähle links eine Feature-Gruppe, um ihre Anforderungen anzuzeigen.",
|
|
3790
|
+
"moduleHintGherkin": "keine Module. Wähle links eine Feature-Gruppe, um ihre Anforderungen anzuzeigen, oder wechsle zu den Gherkin-Szenarien. | 1 Modul. Wähle links eine Feature-Gruppe, um ihre Anforderungen anzuzeigen, oder wechsle zu den Gherkin-Szenarien. | {count} Module. Wähle links eine Feature-Gruppe, um ihre Anforderungen anzuzeigen, oder wechsle zu den Gherkin-Szenarien.",
|
|
3791
|
+
"mode": {
|
|
3792
|
+
"structured": "Strukturiert",
|
|
3793
|
+
"gherkin": "Gherkin",
|
|
3794
|
+
"gherkinTooltip": "Gherkin-Szenarien",
|
|
3795
|
+
"gherkinNone": "Noch keine Szenarien auf main"
|
|
3796
|
+
},
|
|
3797
|
+
"empty": {
|
|
3798
|
+
"title": "Noch keine Spezifikation",
|
|
3799
|
+
"description": "Dieser Service hat keine Spezifikation auf seinem Standard-Branch. Eine Spezifikation wird erstellt, während Aufgaben ihre Pipelines durchlaufen; sobald sie auf main landet, erscheint sie hier mit ihren Gherkin-Szenarien."
|
|
3800
|
+
},
|
|
3801
|
+
"priority": {
|
|
3802
|
+
"must": "Muss",
|
|
3803
|
+
"should": "Sollte",
|
|
3804
|
+
"could": "Könnte"
|
|
3805
|
+
},
|
|
3806
|
+
"kind": {
|
|
3807
|
+
"functional": "Funktional",
|
|
3808
|
+
"nonfunctional": "Nicht-funktional",
|
|
3809
|
+
"constraint": "Einschränkung"
|
|
3810
|
+
},
|
|
3811
|
+
"acceptance": {
|
|
3812
|
+
"given": "Angenommen",
|
|
3813
|
+
"when": "Wenn",
|
|
3814
|
+
"then": "Dann"
|
|
3815
|
+
}
|
|
3816
|
+
},
|
|
3817
|
+
"followUp": {
|
|
3818
|
+
"title": "Folgeaufgaben",
|
|
3819
|
+
"titleWithBlock": "Folgeaufgaben — {title}",
|
|
3820
|
+
"subtitle": "Vorausschauende Folgeaufgaben und Fragen, die der Coder aufgeworfen hat. Die Pipeline wird fortgesetzt, sobald jeder Punkt entschieden ist.",
|
|
3821
|
+
"badge": {
|
|
3822
|
+
"toDecide": "{count} zu entscheiden | {count} zu entscheiden | {count} zu entscheiden",
|
|
3823
|
+
"allDecided": "Alle entschieden"
|
|
3824
|
+
},
|
|
3825
|
+
"empty": {
|
|
3826
|
+
"title": "Noch keine Folgeaufgaben.",
|
|
3827
|
+
"hint": "Während der Coder arbeitet, streamt er lose Enden, Nebenaufgaben und Fragen hierher. Sie erscheinen live, sodass du handeln kannst, bevor der Coder überhaupt fertig ist."
|
|
3828
|
+
},
|
|
3829
|
+
"suggested": "Vorgeschlagen:",
|
|
3830
|
+
"viewIssue": "Issue ansehen",
|
|
3831
|
+
"yourAnswer": "Deine Antwort:",
|
|
3832
|
+
"answerPlaceholder": "Beantworte diese Frage – sie fließt in den nächsten Durchlauf des Coders ein…",
|
|
3833
|
+
"status": {
|
|
3834
|
+
"pending": "Braucht eine Entscheidung",
|
|
3835
|
+
"filed": "Als Issue eingereicht",
|
|
3836
|
+
"queued": "An Coder gesendet",
|
|
3837
|
+
"answered": "Beantwortet",
|
|
3838
|
+
"dismissed": "Verworfen"
|
|
3839
|
+
},
|
|
3840
|
+
"actions": {
|
|
3841
|
+
"answerAndSend": "Antworten & zurücksenden",
|
|
3842
|
+
"dismiss": "Verwerfen",
|
|
3843
|
+
"fileAsIssue": "Als Issue einreichen",
|
|
3844
|
+
"sendToCoder": "An Coder senden"
|
|
3845
|
+
},
|
|
3846
|
+
"footer": {
|
|
3847
|
+
"summary": "{count} Punkt · {undecided} unentschieden | {count} Punkte · {undecided} unentschieden",
|
|
3848
|
+
"loops": "Genutzte Coder-Durchläufe: {loops} / {max}"
|
|
3849
|
+
}
|
|
3850
|
+
},
|
|
3851
|
+
"humanTest": {
|
|
3852
|
+
"title": "Manuelles Testen",
|
|
3853
|
+
"titleWithBlock": "Manuelles Testen — {title}",
|
|
3854
|
+
"subtitle": "Die Änderung in einer Live-Umgebung validieren",
|
|
3855
|
+
"notStarted": "Dieser Schritt hat noch nicht begonnen.",
|
|
3856
|
+
"confirm": "Sieht gut aus – fortfahren",
|
|
3857
|
+
"phase": {
|
|
3858
|
+
"provisioning": "Umgebung wird bereitgestellt…",
|
|
3859
|
+
"awaitingHuman": "Warten auf deine Validierung",
|
|
3860
|
+
"fixing": "Fixer bearbeitet deine Befunde…",
|
|
3861
|
+
"resolvingConflicts": "Konflikte mit main werden aufgelöst…",
|
|
3862
|
+
"passed": "Bestanden"
|
|
3863
|
+
},
|
|
3864
|
+
"envStatus": {
|
|
3865
|
+
"provisioning": "Wird bereitgestellt…",
|
|
3866
|
+
"ready": "Bereit",
|
|
3867
|
+
"failed": "Fehlgeschlagen",
|
|
3868
|
+
"expired": "Abgelaufen",
|
|
3869
|
+
"tearingDown": "Wird abgebaut…",
|
|
3870
|
+
"tornDown": "Zerstört"
|
|
3871
|
+
},
|
|
3872
|
+
"environment": {
|
|
3873
|
+
"heading": "Ephemere Umgebung",
|
|
3874
|
+
"noUrl": "Noch keine URL.",
|
|
3875
|
+
"expires": "Läuft ab {date}",
|
|
3876
|
+
"none": "Keine Live-Umgebung."
|
|
3877
|
+
},
|
|
3878
|
+
"actions": {
|
|
3879
|
+
"recreate": "Neu erstellen",
|
|
3880
|
+
"destroy": "Zerstören",
|
|
3881
|
+
"pullMain": "main pullen + neu bereitstellen"
|
|
3882
|
+
},
|
|
3883
|
+
"fix": {
|
|
3884
|
+
"heading": "Ein Problem gefunden?",
|
|
3885
|
+
"cancel": "Abbrechen",
|
|
3886
|
+
"requestFix": "Eine Korrektur anfordern",
|
|
3887
|
+
"placeholder": "Beschreibe, was schiefgelaufen ist – der Fixer-Agent erhält dies als Kontext, dann wird die Umgebung für erneute Tests neu aufgebaut.",
|
|
3888
|
+
"send": "An Fixer senden"
|
|
3889
|
+
},
|
|
3890
|
+
"history": {
|
|
3891
|
+
"heading": "Verlauf (keine Runden) | Verlauf (eine Runde) | Verlauf ({count} Runden)",
|
|
3892
|
+
"fixRequested": "Korrektur angefordert",
|
|
3893
|
+
"pulledMain": "main gepullt"
|
|
3894
|
+
},
|
|
3895
|
+
"roundOutcome": {
|
|
3896
|
+
"completed": "abgeschlossen",
|
|
3897
|
+
"failed": "fehlgeschlagen",
|
|
3898
|
+
"inProgress": "in Bearbeitung"
|
|
3899
|
+
},
|
|
3900
|
+
"envNoun": "die Testumgebung",
|
|
3901
|
+
"destroyFailed": "Die Umgebung konnte nicht zerstört werden"
|
|
3902
|
+
},
|
|
3903
|
+
"testing": {
|
|
3904
|
+
"title": "Testbericht",
|
|
3905
|
+
"subtitle": "Exploratives Testen + Regressionstests der Änderung",
|
|
3906
|
+
"badge": {
|
|
3907
|
+
"greenlit": "Freigegeben",
|
|
3908
|
+
"needsFixes": "Korrekturen nötig"
|
|
3909
|
+
},
|
|
3910
|
+
"fixerAttempts": "Fixer-Versuche",
|
|
3911
|
+
"fixCount": "{attempts}/{max} Korrektur",
|
|
3912
|
+
"fixingSuffix": "· wird behoben…",
|
|
3913
|
+
"fixerTimeline": {
|
|
3914
|
+
"attempt": "Versuch {n}",
|
|
3915
|
+
"completed": "Abgeschlossen",
|
|
3916
|
+
"failed": "Fehlgeschlagen",
|
|
3917
|
+
"addressed": "Wird bearbeitet"
|
|
3918
|
+
},
|
|
3919
|
+
"quality": {
|
|
3920
|
+
"heading": "Abdeckungs-Review",
|
|
3921
|
+
"reruns": "Qualitätsgetriebene Tester-Wiederholungen",
|
|
3922
|
+
"rerunCount": "{attempts}/{max} Wiederholungen",
|
|
3923
|
+
"exceeded": "Budget aufgebraucht",
|
|
3924
|
+
"adequate": "Abdeckung ausreichend",
|
|
3925
|
+
"inadequate": "Abdeckungslücken gefunden",
|
|
3926
|
+
"gaps": "Zu schließende Lücken"
|
|
3927
|
+
},
|
|
3928
|
+
"empty": {
|
|
3929
|
+
"title": "Noch kein Testbericht.",
|
|
3930
|
+
"hint": "Der Bericht erscheint, sobald der Tester einen Durchlauf abgeschlossen hat. Während er läuft, zeigt der Schritt seinen Live-Fortschritt auf dem Board."
|
|
3931
|
+
},
|
|
3932
|
+
"scenariosOutcomes": "Szenarien & Ergebnisse",
|
|
3933
|
+
"otherChecks": "Weitere Checks",
|
|
3934
|
+
"checks": "Checks",
|
|
3935
|
+
"screenshotCount": "{count} Screenshot | {count} Screenshots",
|
|
3936
|
+
"checkCount": "{count} Check | {count} Checks",
|
|
3937
|
+
"concernCount": "{count} Bedenken | {count} Bedenken",
|
|
3938
|
+
"noDiscreteCheck": "Für dieses Szenario wurde kein einzelner Check erfasst.",
|
|
3939
|
+
"severity": {
|
|
3940
|
+
"critical": "kritisch",
|
|
3941
|
+
"high": "hoch",
|
|
3942
|
+
"medium": "mittel",
|
|
3943
|
+
"low": "niedrig"
|
|
3944
|
+
},
|
|
3945
|
+
"status": {
|
|
3946
|
+
"passed": "Bestanden",
|
|
3947
|
+
"failed": "Fehlgeschlagen",
|
|
3948
|
+
"skipped": "Übersprungen"
|
|
3949
|
+
},
|
|
3950
|
+
"shot": {
|
|
3951
|
+
"failed": "Fehlgeschlagen",
|
|
3952
|
+
"failedToLoad": "Laden fehlgeschlagen",
|
|
3953
|
+
"loading": "Wird geladen…"
|
|
3954
|
+
},
|
|
3955
|
+
"screenshotAlt": "{view} (Screenshot)",
|
|
3956
|
+
"screenshots": "Screenshots",
|
|
3957
|
+
"verdict": {
|
|
3958
|
+
"heading": "Urteil",
|
|
3959
|
+
"safe": "Freigabe unbedenklich",
|
|
3960
|
+
"withheld": "Zurückgehalten"
|
|
3961
|
+
},
|
|
3962
|
+
"outcomes": {
|
|
3963
|
+
"heading": "Ergebnisse",
|
|
3964
|
+
"passed": "Bestanden",
|
|
3965
|
+
"failed": "Fehlgeschlagen",
|
|
3966
|
+
"skipped": "Übersprungen",
|
|
3967
|
+
"concerns": "Bedenken",
|
|
3968
|
+
"blocking": "({count} blockierend) | ({count} blockierend)"
|
|
3969
|
+
},
|
|
3970
|
+
"environment": "Umgebung",
|
|
3971
|
+
"infrastructure": "Infrastruktur",
|
|
3972
|
+
"standup": {
|
|
3973
|
+
"up": "Abhängigkeiten gestartet",
|
|
3974
|
+
"failed": "Abhängigkeiten konnten nicht gestartet werden",
|
|
3975
|
+
"took": "Dauerte {seconds}s",
|
|
3976
|
+
"showLogs": "Stand-up-Logs anzeigen",
|
|
3977
|
+
"hideLogs": "Stand-up-Logs verbergen"
|
|
3978
|
+
},
|
|
3979
|
+
"readyBanner": "Testumgebung ist bereit. Der Tester beginnt mit seiner Arbeit.",
|
|
3980
|
+
"footer": "Szenarien sind die Bereiche, die der Tester zum Prüfen gewählt hat (seine Akzeptanzszenarien aus der Spezifikation). Ergebnisse und Bedenken werden nach Name darunter gruppiert."
|
|
3981
|
+
},
|
|
3982
|
+
"visualConfirm": {
|
|
3983
|
+
"ariaLabel": "Visuelle Bestätigung",
|
|
3984
|
+
"title": "Visuelle Bestätigung",
|
|
3985
|
+
"titleWithBlock": "Visuelle Bestätigung — {title}",
|
|
3986
|
+
"subtitle": "Die UI mit den Referenzdesigns vergleichen",
|
|
3987
|
+
"notStarted": "Dieser Schritt hat noch nicht begonnen.",
|
|
3988
|
+
"noScreenshots": "Es wurden keine Screenshots erfasst. Prüfe die Änderung manuell oder lade unten eine Referenz hoch.",
|
|
3989
|
+
"noteIssue": "Ein Problem mit {view} vermerken",
|
|
3990
|
+
"noted": "vermerkt",
|
|
3991
|
+
"notePlaceholder": "Was sieht bei {view} falsch aus?",
|
|
3992
|
+
"reviewedManually": "Ich habe dies manuell geprüft",
|
|
3993
|
+
"recapture": "Neu erfassen",
|
|
3994
|
+
"approve": "Freigeben – fortfahren",
|
|
3995
|
+
"phase": {
|
|
3996
|
+
"awaiting_human": "Warten auf deine Prüfung",
|
|
3997
|
+
"fixing": "Fixer bearbeitet deine Befunde…",
|
|
3998
|
+
"approved": "Freigegeben"
|
|
3999
|
+
},
|
|
4000
|
+
"outcome": {
|
|
4001
|
+
"completed": "abgeschlossen",
|
|
4002
|
+
"failed": "fehlgeschlagen",
|
|
4003
|
+
"inProgress": "in Bearbeitung"
|
|
4004
|
+
},
|
|
4005
|
+
"lightbox": {
|
|
4006
|
+
"actualLabel": "{view} — tatsächlich",
|
|
4007
|
+
"actualAlt": "{view} (tatsächlich)",
|
|
4008
|
+
"referenceLabel": "{view} — Referenz",
|
|
4009
|
+
"referenceAlt": "{view} (Referenz)"
|
|
4010
|
+
},
|
|
4011
|
+
"upload": {
|
|
4012
|
+
"heading": "Ein Referenzdesign hochladen",
|
|
4013
|
+
"viewPlaceholder": "Ansichtsname (z. B. login)",
|
|
4014
|
+
"tipReady": "Tipp: Ziehe ein Bild direkt auf ein Paar oben, um dessen Referenz festzulegen.",
|
|
4015
|
+
"tipNeedView": "Gib zuerst einen Ansichtsnamen ein und wähle dann eine Datei. Oder ziehe ein Bild direkt auf ein Paar oben."
|
|
4016
|
+
},
|
|
4017
|
+
"requestFix": {
|
|
4018
|
+
"heading": "Eine Korrektur anfordern",
|
|
4019
|
+
"placeholder": "Alles Weitere, das der Fixer wissen sollte (zusätzlich zu etwaigen ansichtsbezogenen Notizen oben).",
|
|
4020
|
+
"foldedHint": "Ansichtsbezogene Notizen werden automatisch eingebunden.",
|
|
4021
|
+
"send": "An Fixer senden"
|
|
4022
|
+
},
|
|
4023
|
+
"history": {
|
|
4024
|
+
"heading": "Verlauf (keine Runden) | Verlauf ({count} Runde) | Verlauf ({count} Runden)",
|
|
4025
|
+
"fixRequested": "Korrektur angefordert"
|
|
4026
|
+
}
|
|
4027
|
+
},
|
|
4028
|
+
"focus": {
|
|
4029
|
+
"board": "Board",
|
|
4030
|
+
"typeSubtitle": "{type} · Fokusansicht",
|
|
4031
|
+
"runPipeline": "Pipeline ausführen",
|
|
4032
|
+
"rerunPipeline": "Pipeline erneut ausführen",
|
|
4033
|
+
"noPipelineRunning": "Keine Pipeline läuft",
|
|
4034
|
+
"emptyPipelineHint": "Führe eine Pipeline aus, um die Agenten zu visualisieren, die an diesem Block arbeiten.",
|
|
4035
|
+
"description": "Beschreibung",
|
|
4036
|
+
"overallProgress": "Gesamtfortschritt",
|
|
4037
|
+
"dependencies": "Abhängigkeiten",
|
|
4038
|
+
"noDependencies": "Keine"
|
|
4039
|
+
},
|
|
4040
|
+
"environments": {
|
|
4041
|
+
"title": "Ephemere Umgebung",
|
|
4042
|
+
"status": {
|
|
4043
|
+
"provisioning": "Wird hochgefahren…",
|
|
4044
|
+
"ready": "Läuft",
|
|
4045
|
+
"failed": "Fehlgeschlagen",
|
|
4046
|
+
"expired": "Abgelaufen",
|
|
4047
|
+
"tearing_down": "Wird heruntergefahren…",
|
|
4048
|
+
"torn_down": "Heruntergefahren"
|
|
4049
|
+
},
|
|
4050
|
+
"expires": "Läuft ab {date}",
|
|
4051
|
+
"empty": "Keine ephemere Umgebung für diesen Lauf.",
|
|
4052
|
+
"provisionTypeLabel": "Bereitstellungstyp:",
|
|
4053
|
+
"engineLabel": "Engine:",
|
|
4054
|
+
"provisionType": {
|
|
4055
|
+
"kubernetes": "Kubernetes",
|
|
4056
|
+
"docker-compose": "Docker Compose",
|
|
4057
|
+
"custom": "Benutzerdefiniert",
|
|
4058
|
+
"infraless": "Keine Infrastruktur"
|
|
4059
|
+
},
|
|
4060
|
+
"engine": {
|
|
4061
|
+
"local-docker": "Lokales Docker",
|
|
4062
|
+
"local-k3s": "Lokales k3s",
|
|
4063
|
+
"remote-kubernetes": "Remote-Kubernetes",
|
|
4064
|
+
"remote-custom": "Remote benutzerdefiniert (HTTP)",
|
|
4065
|
+
"none": "Keine"
|
|
4066
|
+
}
|
|
4067
|
+
},
|
|
4068
|
+
"provisioning": {
|
|
4069
|
+
"title": "Bereitstellungs-Logs",
|
|
4070
|
+
"refresh": "Aktualisieren",
|
|
4071
|
+
"empty": "Noch keine Bereitstellungsversuche aufgezeichnet.",
|
|
4072
|
+
"operation": {
|
|
4073
|
+
"provision": "Hochfahren",
|
|
4074
|
+
"teardown": "Abbauen",
|
|
4075
|
+
"status": "Statusprüfung",
|
|
4076
|
+
"dispatch": "Hochfahren",
|
|
4077
|
+
"release": "Abbauen",
|
|
4078
|
+
"poll-failure": "Health-Check"
|
|
4079
|
+
},
|
|
4080
|
+
"outcome": {
|
|
4081
|
+
"success": "Erfolg",
|
|
4082
|
+
"failure": "Fehler"
|
|
4083
|
+
}
|
|
4084
|
+
},
|
|
4085
|
+
"kaizen": {
|
|
4086
|
+
"title": "Kaizen",
|
|
4087
|
+
"subtitle": "Kontinuierliche Verbesserung durch Bewertung von Agentenläufen",
|
|
4088
|
+
"refresh": "Aktualisieren",
|
|
4089
|
+
"notConfigured": "Kaizen ist für dieses Deployment nicht konfiguriert.",
|
|
4090
|
+
"grading": {
|
|
4091
|
+
"title": "Kaizen-Bewertung"
|
|
4092
|
+
},
|
|
4093
|
+
"status": {
|
|
4094
|
+
"scheduled": "Geplant",
|
|
4095
|
+
"grading": "Wird bewertet…",
|
|
4096
|
+
"failed": "Fehlgeschlagen",
|
|
4097
|
+
"graded": "Bewertet"
|
|
4098
|
+
},
|
|
4099
|
+
"gradeValue": "{grade}/5",
|
|
4100
|
+
"scheduledHint": "Eine Kaizen-Bewertung ist für diesen Schritt eingeplant. Sie läuft nach dem Lauf im Hintergrund.",
|
|
4101
|
+
"recommendations": "Empfehlungen",
|
|
4102
|
+
"noImprovements": "Reibungslose Interaktion, nichts zu verbessern.",
|
|
4103
|
+
"gradedBy": "Bewertet von {model}",
|
|
4104
|
+
"failedFallback": "Die Bewertung konnte nicht abgeschlossen werden.",
|
|
4105
|
+
"promptVersion": "v{version}",
|
|
4106
|
+
"verifiedCombos": {
|
|
4107
|
+
"title": "Verifizierte Kombinationen",
|
|
4108
|
+
"count": "({count})",
|
|
4109
|
+
"hint": "Eine Kombination aus Prompt + Agent + Modell, die fünfmal in Folge mit 4 oder 5 und ohne Empfehlungen bewertet wurde. Diese werden nicht mehr bewertet.",
|
|
4110
|
+
"empty": "Noch keine Kombinationen.",
|
|
4111
|
+
"progress": "{count}/5",
|
|
4112
|
+
"modelPrompt": "{model} · Prompt v{version}"
|
|
4113
|
+
},
|
|
4114
|
+
"history": {
|
|
4115
|
+
"title": "Bewertungsverlauf",
|
|
4116
|
+
"col": {
|
|
4117
|
+
"when": "Wann",
|
|
4118
|
+
"agent": "Agent",
|
|
4119
|
+
"model": "Modell",
|
|
4120
|
+
"grade": "Note",
|
|
4121
|
+
"recommendations": "Empfehlungen"
|
|
4122
|
+
},
|
|
4123
|
+
"empty": "Noch keine Bewertungen."
|
|
4124
|
+
}
|
|
4125
|
+
},
|
|
4126
|
+
"recurring": {
|
|
4127
|
+
"runEvery": "Ausführen alle",
|
|
4128
|
+
"hours": "Stunden",
|
|
4129
|
+
"allowedDays": "Erlaubte Tage",
|
|
4130
|
+
"allowedDaysHelp": "Alle deaktiviert lassen, um an jedem Tag auszuführen.",
|
|
4131
|
+
"weekday": {
|
|
4132
|
+
"sun": "So",
|
|
4133
|
+
"mon": "Mo",
|
|
4134
|
+
"tue": "Di",
|
|
4135
|
+
"wed": "Mi",
|
|
4136
|
+
"thu": "Do",
|
|
4137
|
+
"fri": "Fr",
|
|
4138
|
+
"sat": "Sa"
|
|
4139
|
+
},
|
|
4140
|
+
"windowToggle": "Nur innerhalb eines Tageszeitfensters (z. B. Geschäftszeiten)",
|
|
4141
|
+
"to": "bis",
|
|
4142
|
+
"timezone": "Zeitzone"
|
|
4143
|
+
},
|
|
4144
|
+
"media": {
|
|
4145
|
+
"compare": {
|
|
4146
|
+
"mode": {
|
|
4147
|
+
"sideBySide": "Nebeneinander",
|
|
4148
|
+
"overlay": "Überlagerung",
|
|
4149
|
+
"swipe": "Wischen",
|
|
4150
|
+
"diff": "Differenz"
|
|
4151
|
+
},
|
|
4152
|
+
"actual": "Tatsächlich",
|
|
4153
|
+
"reference": "Referenz",
|
|
4154
|
+
"actualAlt": "{view} (tatsächlich)",
|
|
4155
|
+
"referenceAlt": "{view} (Referenz)",
|
|
4156
|
+
"replace": "Ersetzen",
|
|
4157
|
+
"failedToLoad": "Laden fehlgeschlagen",
|
|
4158
|
+
"loading": "Wird geladen…",
|
|
4159
|
+
"notCaptured": "Nicht erfasst",
|
|
4160
|
+
"dropHint": "Ablegen oder klicken, um eine Referenz hinzuzufügen",
|
|
4161
|
+
"diffHint": "Identische Pixel erscheinen schwarz; Unterschiede leuchten auf."
|
|
4162
|
+
},
|
|
4163
|
+
"lightbox": {
|
|
4164
|
+
"ariaLabel": "Screenshot: {label}",
|
|
4165
|
+
"ariaLabelFallback": "Screenshot-Viewer",
|
|
4166
|
+
"fallbackTitle": "Screenshot",
|
|
4167
|
+
"counter": "{current} / {total}",
|
|
4168
|
+
"zoomOut": "Verkleinern (-)",
|
|
4169
|
+
"zoomIn": "Vergrößern (+)",
|
|
4170
|
+
"reset": "Zurücksetzen (0)",
|
|
4171
|
+
"close": "Schließen (Esc)",
|
|
4172
|
+
"prev": "Zurück (←)",
|
|
4173
|
+
"next": "Weiter (→)",
|
|
4174
|
+
"failed": "Bild konnte nicht geladen werden.",
|
|
4175
|
+
"loading": "Wird geladen…"
|
|
4176
|
+
}
|
|
4177
|
+
},
|
|
4178
|
+
"sandbox": {
|
|
4179
|
+
"title": "Sandbox: Prompt- und Modelltests",
|
|
4180
|
+
"description": "Prompt-Versionen und Modelle gegen bewertete Fixtures testen, bewertet durch ein Judge-Modell.",
|
|
4181
|
+
"unavailable": {
|
|
4182
|
+
"title": "Die Sandbox ist für dieses Deployment nicht aktiviert.",
|
|
4183
|
+
"body": "Sie benötigt eine eigene Datenbank (eine dedizierte {db} auf Cloudflare oder das {schema}-Postgres-Schema auf Node). Stelle sie bereit und lade neu."
|
|
4184
|
+
},
|
|
4185
|
+
"error": {
|
|
4186
|
+
"title": "Die Sandbox konnte nicht geladen werden."
|
|
4187
|
+
},
|
|
4188
|
+
"deploymentDefault": "Deployment-Standard",
|
|
4189
|
+
"defaultRunName": "{kind}-Sandbox-Lauf",
|
|
4190
|
+
"baseline": "Baseline",
|
|
4191
|
+
"versionLabel": "v{version}",
|
|
4192
|
+
"tab": {
|
|
4193
|
+
"experiments": "Experimente",
|
|
4194
|
+
"prompts": "Prompts",
|
|
4195
|
+
"fixtures": "Fixtures"
|
|
4196
|
+
},
|
|
4197
|
+
"builder": {
|
|
4198
|
+
"title": "Neues Experiment",
|
|
4199
|
+
"agent": "Agent",
|
|
4200
|
+
"promptVersions": "Prompt-Versionen",
|
|
4201
|
+
"models": "Modelle",
|
|
4202
|
+
"noModels": "Keine auswählbaren Modelle. Konfiguriere einen Anbieterschlüssel oder aktiviere Cloudflare AI.",
|
|
4203
|
+
"fixtures": "Fixtures",
|
|
4204
|
+
"noFixtures": "Keine Fixtures für diesen Agenten.",
|
|
4205
|
+
"judgeModel": "Judge-Modell",
|
|
4206
|
+
"judgeModelHint": "bewertet jede Zelle",
|
|
4207
|
+
"nameLabel": "Name (optional)",
|
|
4208
|
+
"cellCount": "{count} Zelle | {count} Zellen",
|
|
4209
|
+
"maxCells": "(max. {max})",
|
|
4210
|
+
"run": "Ausführen"
|
|
4211
|
+
},
|
|
4212
|
+
"experimentStatus": {
|
|
4213
|
+
"draft": "Entwurf",
|
|
4214
|
+
"running": "läuft",
|
|
4215
|
+
"done": "fertig",
|
|
4216
|
+
"failed": "fehlgeschlagen"
|
|
4217
|
+
},
|
|
4218
|
+
"results": {
|
|
4219
|
+
"col": {
|
|
4220
|
+
"prompt": "Prompt",
|
|
4221
|
+
"model": "Modell",
|
|
4222
|
+
"fixture": "Fixture",
|
|
4223
|
+
"score": "Punktzahl",
|
|
4224
|
+
"objective": "Objektiv"
|
|
4225
|
+
},
|
|
4226
|
+
"failed": "fehlgeschlagen",
|
|
4227
|
+
"past": "Vergangene Experimente",
|
|
4228
|
+
"empty": "Noch keine Experimente."
|
|
4229
|
+
},
|
|
4230
|
+
"prompts": {
|
|
4231
|
+
"forkTitle": "In einen Kandidaten forken",
|
|
4232
|
+
"editTitle": "Bearbeiten / versionieren",
|
|
4233
|
+
"forkOf": "Fork · {name}",
|
|
4234
|
+
"newVersionOf": "Neue Version von · {name}",
|
|
4235
|
+
"saveVersion": "Neue Version speichern",
|
|
4236
|
+
"hint": "Wähle einen Prompt, um eine ausgelieferte Baseline zu forken oder einen Kandidaten zu versionieren. Jedes Speichern hängt eine unveränderliche Version an, die du testen kannst."
|
|
4237
|
+
},
|
|
4238
|
+
"fixtureKind": {
|
|
4239
|
+
"requirements": "Anforderungen",
|
|
4240
|
+
"clarity": "Klarheit",
|
|
4241
|
+
"architecture": "Architektur",
|
|
4242
|
+
"code-review": "Code-Review",
|
|
4243
|
+
"repo-feature": "Repo-Feature",
|
|
4244
|
+
"repo-bug": "Repo-Bug"
|
|
4245
|
+
},
|
|
4246
|
+
"fixtureOrigin": {
|
|
4247
|
+
"builtin": "integriert",
|
|
4248
|
+
"custom": "benutzerdefiniert"
|
|
4249
|
+
},
|
|
4250
|
+
"fixtures": {
|
|
4251
|
+
"expectations": "{count} bewertete Erwartung | {count} bewertete Erwartungen",
|
|
4252
|
+
"empty": "Keine Fixtures."
|
|
4253
|
+
},
|
|
4254
|
+
"toast": {
|
|
4255
|
+
"running": "Experiment läuft…",
|
|
4256
|
+
"complete": "Experiment abgeschlossen",
|
|
4257
|
+
"runFailed": "Das Experiment konnte nicht ausgeführt werden",
|
|
4258
|
+
"versionSaved": "Neue Version gespeichert",
|
|
4259
|
+
"saveFailed": "Die Version konnte nicht gespeichert werden",
|
|
4260
|
+
"archiveFailed": "Archivierung nicht möglich"
|
|
4261
|
+
}
|
|
4262
|
+
},
|
|
4263
|
+
"mergePreset": {
|
|
4264
|
+
"health": {
|
|
4265
|
+
"title": "Merge-Preset-Updates",
|
|
4266
|
+
"allValid": "Alle integrierten Merge-Presets sind auf dem neuesten Stand.",
|
|
4267
|
+
"newHeading": "Neue Presets verfügbar",
|
|
4268
|
+
"newDescription": "Neue integrierte Merge-Presets sind verfügbar. Füge sie zur Bibliothek dieses Boards hinzu.",
|
|
4269
|
+
"add": "Hinzufügen",
|
|
4270
|
+
"updatesHeading": "Updates verfügbar",
|
|
4271
|
+
"updatesDescription": "Eine neuere Version dieser integrierten Merge-Presets ist verfügbar. Führe ein erneutes Seeding durch, um sie zu übernehmen (Standard und Reihenfolge bleiben erhalten).",
|
|
4272
|
+
"versionAvailable": "Version {from} → {to} verfügbar.",
|
|
4273
|
+
"reseed": "Erneut seeden",
|
|
4274
|
+
"reseedAll": "Alle aktualisieren ({count})",
|
|
4275
|
+
"dismiss": "Schließen",
|
|
4276
|
+
"done": "Fertig",
|
|
4277
|
+
"toast": {
|
|
4278
|
+
"reseedFailed": "Merge-Preset konnte nicht erneut geseedet werden"
|
|
4279
|
+
}
|
|
4280
|
+
}
|
|
4281
|
+
},
|
|
4282
|
+
"environmentWizard": {
|
|
4283
|
+
"title": "Eine Testumgebung einrichten",
|
|
4284
|
+
"subtitle": "Erkenne, prüfe und speichere ein Docker-Compose-Rezept, damit der Deployer es bereitstellt.",
|
|
4285
|
+
"recommended": "empfohlen",
|
|
4286
|
+
"steps": {
|
|
4287
|
+
"pick": "Service auswählen",
|
|
4288
|
+
"review": "Rezept prüfen",
|
|
4289
|
+
"preflight": "Preflight",
|
|
4290
|
+
"save": "Speichern"
|
|
4291
|
+
},
|
|
4292
|
+
"pick": {
|
|
4293
|
+
"intro": "Wähle den Service, für den eine Docker-Compose-Umgebung eingerichtet werden soll.",
|
|
4294
|
+
"empty": "Noch keine Services. Füge zuerst einen Service hinzu."
|
|
4295
|
+
},
|
|
4296
|
+
"review": {
|
|
4297
|
+
"detectHint": "Aus dem Repository erkannt. Es wird nichts angewendet, bis du speicherst.",
|
|
4298
|
+
"detect": "Erneut erkennen",
|
|
4299
|
+
"noRepo": "Dieser Service hat kein verknüpftes Repository, daher kann die Erkennung nicht laufen.",
|
|
4300
|
+
"detectError": "Erkennung fehlgeschlagen. Prüfe die Repository-Verbindung und versuche es erneut.",
|
|
4301
|
+
"provenanceTitle": "Woher jedes Feld stammt",
|
|
4302
|
+
"service": "Bereitgestellter Compose-Service",
|
|
4303
|
+
"servicePlaceholder": "z. B. app",
|
|
4304
|
+
"port": "Bereitgestellter Port",
|
|
4305
|
+
"composeFiles": "Compose-Dateien",
|
|
4306
|
+
"profiles": "Profile",
|
|
4307
|
+
"seedDumps": "Seed-Dumps",
|
|
4308
|
+
"seedAdd": "Seed-Schritt hinzufügen",
|
|
4309
|
+
"seedAdded": "Hinzugefügt",
|
|
4310
|
+
"rawEditor": "Rohes Rezept bearbeiten",
|
|
4311
|
+
"rawApply": "Anwenden"
|
|
4312
|
+
},
|
|
4313
|
+
"analysis": {
|
|
4314
|
+
"title": "Tiefenanalyse",
|
|
4315
|
+
"hint": "Führe den Umgebungsanalysten aus, um Einrichtungsschritte und Health-Gates aus dem Repo zu entwerfen.",
|
|
4316
|
+
"run": "Analyse ausführen",
|
|
4317
|
+
"unavailable": "Die Tiefenanalyse benötigt ein verknüpftes Repository und die Analyse-Pipeline.",
|
|
4318
|
+
"failed": "Der Analyselauf ist fehlgeschlagen.",
|
|
4319
|
+
"apply": "Analysten-Entwurf anwenden"
|
|
4320
|
+
},
|
|
4321
|
+
"field": {
|
|
4322
|
+
"composeFiles": "Compose-Dateien",
|
|
4323
|
+
"composeProfiles": "Profile",
|
|
4324
|
+
"envFiles": "Env-Dateien",
|
|
4325
|
+
"externalNetworks": "Externe Netzwerke",
|
|
4326
|
+
"sharedStackRefs": "Gemeinsame Stacks",
|
|
4327
|
+
"prerequisites": "Preflights",
|
|
4328
|
+
"setupSteps": "Einrichtungsschritte",
|
|
4329
|
+
"healthGate": "Health-Gate",
|
|
4330
|
+
"teardownSteps": "Abbau-Schritte"
|
|
4331
|
+
},
|
|
4332
|
+
"origin": {
|
|
4333
|
+
"detector": "erkannt",
|
|
4334
|
+
"analyst": "Analyst",
|
|
4335
|
+
"both": "erkannt + Analyst"
|
|
4336
|
+
},
|
|
4337
|
+
"preflight": {
|
|
4338
|
+
"intro": "Prüfe die Voraussetzungen der Maschine vor der Bereitstellung.",
|
|
4339
|
+
"run": "Prüfungen ausführen",
|
|
4340
|
+
"none": "Dieses Rezept deklariert keine Preflight-Prüfungen.",
|
|
4341
|
+
"unavailable": "Preflight-Prüfungen laufen auf der lokalen Maschine und sind für dieses Deployment nicht verfügbar.",
|
|
4342
|
+
"optional": "optional"
|
|
4343
|
+
},
|
|
4344
|
+
"save": {
|
|
4345
|
+
"handlerLabel": "Handler-Label",
|
|
4346
|
+
"handlerHint": "Der Docker-Compose-Handler des Workspaces, den der Deployer zum Bereitstellen dieses Stacks verwendet.",
|
|
4347
|
+
"summary": "Speichert ein Docker-Compose-Rezept auf \"{frame}\" (stellt Service \"{service}\" bereit) und registriert den Workspace-Handler.",
|
|
4348
|
+
"saved": "Gespeichert. Der Deployer stellt diesen Stack bereit, wenn eine Pipeline ihn ausführt.",
|
|
4349
|
+
"save": "Konfiguration speichern"
|
|
4350
|
+
},
|
|
4351
|
+
"trial": {
|
|
4352
|
+
"hint": "Optional diese Umgebung jetzt bereitstellen, um das Rezept zu testen.",
|
|
4353
|
+
"run": "Testbereitstellung"
|
|
4354
|
+
}
|
|
4355
|
+
},
|
|
4356
|
+
"palette": {
|
|
4357
|
+
"hint": "Klicke auf einen Agenten, um ihn an die Pipeline anzuhängen.",
|
|
4358
|
+
"customAgents": "Benutzerdefinierte Agenten"
|
|
4359
|
+
}
|
|
4360
|
+
}
|