Skip to content

Commit 619cab1

Browse files
feat(i18n): update translations (#2106)
Co-authored-by: aadamgough <aadamgough@users.noreply.github.com>
1 parent 72776f4 commit 619cab1

File tree

26 files changed

+563
-234
lines changed

26 files changed

+563
-234
lines changed

apps/docs/content/docs/de/blocks/human-in-the-loop.mdx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ title: Human in the Loop
55
import { Callout } from 'fumadocs-ui/components/callout'
66
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
77
import { Image } from '@/components/ui/image'
8+
import { Video } from '@/components/ui/video'
89

910
Der Human in the Loop Block pausiert die Workflow-Ausführung und wartet auf menschliches Eingreifen, bevor er fortfährt. Verwenden Sie ihn, um Genehmigungspunkte hinzuzufügen, Feedback zu sammeln oder zusätzliche Eingaben an kritischen Entscheidungspunkten einzuholen.
1011

@@ -76,7 +77,7 @@ Definiert die Felder, die Genehmigende bei der Antwort ausfüllen. Diese Daten w
7677
}
7778
```
7879

79-
Greifen Sie in nachfolgenden Blöcken mit `<blockId.resumeInput.fieldName>` auf Fortsetzungsdaten zu.
80+
Greifen Sie in nachgelagerten Blöcken auf Wiederaufnahmedaten mit `<blockId.resumeInput.fieldName>` zu.
8081

8182
## Genehmigungsmethoden
8283

@@ -174,8 +175,14 @@ Zugriff über `<blockId.resumeInput.fieldName>`.
174175
<approval1.resumeInput.approved> === true
175176
```
176177

178+
Das Beispiel unten zeigt ein Genehmigungsportal, wie es von einem Genehmiger gesehen wird, nachdem der Workflow angehalten wurde. Genehmiger können die Daten überprüfen und Eingaben als Teil der Workflow-Wiederaufnahme bereitstellen. Auf das Genehmigungsportal kann direkt über die eindeutige URL, `<blockId.url>`, zugegriffen werden.
179+
180+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
181+
<Video src="hitl-resume.mp4" width={700} height={450} />
182+
</div>
183+
177184
## Verwandte Blöcke
178185

179186
- **[Bedingung](/blocks/condition)** - Verzweigung basierend auf Genehmigungsentscheidungen
180-
- **[Variablen](/blocks/variables)** - Speicherung von Genehmigungsverlauf und Metadaten
187+
- **[Variablen](/blocks/variables)** - Speichern von Genehmigungsverlauf und Metadaten
181188
- **[Antwort](/blocks/response)** - Rückgabe von Workflow-Ergebnissen an API-Aufrufer

apps/docs/content/docs/de/connections/basics.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ title: Grundlagen
44

55
import { Callout } from 'fumadocs-ui/components/callout'
66
import { Step, Steps } from 'fumadocs-ui/components/steps'
7+
import { Video } from '@/components/ui/video'
78

89
## Wie Verbindungen funktionieren
910

@@ -28,7 +29,11 @@ Verbindungen sind die Pfade, die den Datenfluss zwischen Blöcken in Ihrem Workf
2829
</Step>
2930
</Steps>
3031

31-
### Verbindungsfluss
32+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
33+
<Video src="connections-build.mp4" width={700} height={450} />
34+
</div>
35+
36+
### Verbindungsablauf
3237

3338
Der Datenfluss durch Verbindungen folgt diesen Prinzipien:
3439

apps/docs/content/docs/de/copilot/index.mdx

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ Diese kontextbezogenen Informationen helfen Copilot, genauere und relevantere Un
7171
</Card>
7272
</Cards>
7373

74+
<div className="flex justify-center">
75+
<Image
76+
src="/static/copilot/copilot-mode.png"
77+
alt="Copilot-Modusauswahl-Oberfläche"
78+
width={600}
79+
height={400}
80+
className="my-6"
81+
/>
82+
</div>
83+
7484
## Tiefenebenen
7585

7686
<Cards>
@@ -82,7 +92,7 @@ Diese kontextbezogenen Informationen helfen Copilot, genauere und relevantere Un
8292
</span>
8393
}
8494
>
85-
<div className="m-0 text-sm">Am schnellsten und günstigsten. Ideal für kleine Änderungen, einfache Workflows und geringfügige Anpassungen.</div>
95+
<div className="m-0 text-sm">Am schnellsten und günstigsten. Ideal für kleine Änderungen, einfache Arbeitsabläufe und geringfügige Anpassungen.</div>
8696
</Card>
8797
<Card
8898
title={
@@ -102,7 +112,7 @@ Diese kontextbezogenen Informationen helfen Copilot, genauere und relevantere Un
102112
</span>
103113
}
104114
>
105-
<div className="m-0 text-sm">Mehr Denkleistung für umfangreichere Workflows und komplexe Änderungen bei gleichzeitiger Leistungsfähigkeit.</div>
115+
<div className="m-0 text-sm">Mehr Denkleistung für umfangreichere Arbeitsabläufe und komplexe Änderungen bei gleichzeitiger Leistungsfähigkeit.</div>
106116
</Card>
107117
<Card
108118
title={
@@ -118,7 +128,7 @@ Diese kontextbezogenen Informationen helfen Copilot, genauere und relevantere Un
118128

119129
### Modusauswahl-Oberfläche
120130

121-
Du kannst einfach zwischen verschiedenen Denkmodi über den Modusauswähler in der Copilot-Oberfläche wechseln:
131+
Du kannst einfach zwischen verschiedenen Denkmodi über die Modusauswahl in der Copilot-Oberfläche wechseln:
122132

123133
<Image
124134
src="/static/copilot/copilot-models.png"
@@ -140,22 +150,22 @@ Wähle deinen Modus basierend auf der Komplexität deiner Aufgabe - verwende Sch
140150

141151
Die Copilot-Nutzung wird pro Token vom zugrundeliegenden LLM abgerechnet:
142152

143-
- **Eingabe-Tokens**: werden zum Basistarif des Anbieters berechnet (**zum Selbstkostenpreis**)
144-
- **Ausgabe-Tokens**: werden mit dem **1,5-fachen** des Basisausgabepreises des Anbieters berechnet
153+
- **Eingabe-Tokens**: werden zum Basispreis des Anbieters berechnet (**zum Selbstkostenpreis**)
154+
- **Ausgabe-Tokens**: werden mit dem **1,5-fachen** des Basis-Ausgabepreises des Anbieters berechnet
145155

146156
```javascript
147157
copilotCost = (inputTokens × inputPrice + outputTokens × (outputPrice × 1.5)) / 1,000,000
148158
```
149159

150160
| Komponente | Angewendeter Tarif |
151161
|------------|------------------------|
152-
| Input | inputPrice |
153-
| Output | outputPrice × 1,5 |
162+
| Eingabe | inputPrice |
163+
| Ausgabe | outputPrice × 1,5 |
154164

155165
<Callout type="warning">
156-
Die angezeigten Preise spiegeln die Tarife vom 4. September 2025 wider. Überprüfen Sie die Anbieterdokumentation für aktuelle Preise.
166+
Die angezeigten Preise spiegeln die Tarife vom 4. September 2025 wider. Überprüfen Sie die Anbieter-Dokumentation für aktuelle Preise.
157167
</Callout>
158168

159169
<Callout type="info">
160-
Modellpreise werden pro Million Token berechnet. Die Berechnung teilt durch 1.000.000, um die tatsächlichen Kosten zu ermitteln. Siehe <a href="/execution/costs">die Seite zur Kostenberechnung</a> für Hintergründe und Beispiele.
170+
Modellpreise werden pro Million Tokens angegeben. Die Berechnung teilt durch 1.000.000, um die tatsächlichen Kosten zu ermitteln. Siehe <a href="/execution/costs">die Seite zur Kostenberechnung</a> für Hintergründe und Beispiele.
161171
</Callout>

apps/docs/content/docs/de/introduction/index.mdx

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ title: Einführung
55
import { Card, Cards } from 'fumadocs-ui/components/card'
66
import { Callout } from 'fumadocs-ui/components/callout'
77
import { Image } from '@/components/ui/image'
8+
import { Video } from '@/components/ui/video'
89

910
Sim ist ein Open-Source-Tool zur visuellen Workflow-Erstellung für die Entwicklung und Bereitstellung von KI-Agenten-Workflows. Entwerfen Sie intelligente Automatisierungssysteme mit einer No-Code-Oberfläche – verbinden Sie KI-Modelle, Datenbanken, APIs und Business-Tools über eine intuitive Drag-and-Drop-Oberfläche. Ob Sie Chatbots entwickeln, Geschäftsprozesse automatisieren oder komplexe Datenpipelines orchestrieren – Sim bietet die Werkzeuge, um Ihre KI-Workflows zum Leben zu erwecken.
1011

@@ -32,19 +33,27 @@ Verwandeln Sie Rohdaten in umsetzbare Erkenntnisse. Extrahieren Sie Informatione
3233
**API-Integrations-Workflows**
3334
Orchestieren Sie komplexe Interaktionen zwischen mehreren Diensten. Erstellen Sie einheitliche API-Endpunkte, implementieren Sie anspruchsvolle Geschäftslogik und bauen Sie ereignisgesteuerte Automatisierungssysteme.
3435

36+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
37+
<Video src="introduction/chat-workflow.mp4" width={700} height={450} />
38+
</div>
39+
3540
## Wie es funktioniert
3641

3742
**Visueller Workflow-Editor**
38-
Entwerfen Sie Workflows mit einer intuitiven Drag-and-Drop-Oberfläche. Verbinden Sie KI-Modelle, Datenbanken, APIs und Drittanbieterdienste über eine visuelle No-Code-Schnittstelle, die komplexe Automatisierungslogik leicht verständlich und wartbar macht.
43+
Entwerfen Sie Workflows mit einer intuitiven Drag-and-Drop-Oberfläche. Verbinden Sie KI-Modelle, Datenbanken, APIs und Dienste von Drittanbietern über eine visuelle No-Code-Schnittstelle, die komplexe Automatisierungslogik leicht verständlich und wartbar macht.
3944

4045
**Modulares Blocksystem**
4146
Bauen Sie mit spezialisierten Komponenten: Verarbeitungsblöcke (KI-Agenten, API-Aufrufe, benutzerdefinierte Funktionen), Logikblöcke (bedingte Verzweigungen, Schleifen, Router) und Ausgabeblöcke (Antworten, Evaluatoren). Jeder Block übernimmt eine bestimmte Aufgabe in Ihrem Workflow.
4247

4348
**Flexible Ausführungsauslöser**
44-
Starten Sie Workflows über verschiedene Kanäle, darunter Chat-Schnittstellen, REST-APIs, Webhooks, geplante Cron-Jobs oder externe Ereignisse von Plattformen wie Slack und GitHub.
49+
Starten Sie Workflows über mehrere Kanäle, einschließlich Chat-Schnittstellen, REST-APIs, Webhooks, geplante Cron-Jobs oder externe Ereignisse von Plattformen wie Slack und GitHub.
4550

4651
**Echtzeit-Zusammenarbeit**
47-
Ermöglichen Sie Ihrem Team die gemeinsame Entwicklung. Mehrere Benutzer können Workflows gleichzeitig bearbeiten, mit Live-Updates und granularen Berechtigungskontrollen.
52+
Ermöglichen Sie Ihrem Team, gemeinsam zu arbeiten. Mehrere Benutzer können Workflows gleichzeitig bearbeiten, mit Live-Updates und detaillierten Berechtigungskontrollen.
53+
54+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
55+
<Video src="introduction/build-workflow.mp4" width={700} height={450} />
56+
</div>
4857

4958
## Integrationen
5059

@@ -57,7 +66,28 @@ Sim bietet native Integrationen mit über 80 Diensten in verschiedenen Kategorie
5766
- **Suche & Daten**: Google Search, Perplexity, Firecrawl, Exa AI
5867
- **Datenbanken**: PostgreSQL, MySQL, Supabase, Pinecone, Qdrant
5968

60-
Für benutzerdefinierte Integrationen nutzen Sie unsere [MCP (Model Context Protocol) Unterstützung](/mcp), um beliebige externe Dienste oder Tools anzubinden.
69+
Für benutzerdefinierte Integrationen nutzen Sie unsere [MCP (Model Context Protocol)-Unterstützung](/mcp), um beliebige externe Dienste oder Tools anzubinden.
70+
71+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
72+
<Video src="introduction/integrations-sidebar.mp4" width={700} height={450} />
73+
</div>
74+
75+
## KI-gesteuerter Copilot
76+
77+
**Fragen stellen & Anleitung erhalten**
78+
Der Copilot beantwortet Fragen zu Sim, erklärt Ihre Workflows und gibt Verbesserungsvorschläge. Verwenden Sie das `@` Symbol, um auf Workflows, Blöcke, Dokumentation, Wissen und Protokolle für kontextbezogene Unterstützung zu verweisen.
79+
80+
**Workflows erstellen & bearbeiten**
81+
Wechseln Sie in den Agent-Modus, damit der Copilot Änderungen direkt auf Ihrer Arbeitsfläche vorschlagen und anwenden kann. Fügen Sie Blöcke hinzu, konfigurieren Sie Einstellungen, verbinden Sie Variablen und strukturieren Sie Workflows mit natürlichsprachlichen Befehlen um.
82+
83+
**Adaptive Reasoning-Stufen**
84+
Wählen Sie zwischen den Modi Schnell, Auto, Erweitert oder Behemoth, je nach Komplexität der Aufgabe. Beginnen Sie mit Schnell für einfache Fragen und steigern Sie sich bis zu Behemoth für komplexe architektonische Änderungen und tiefgehendes Debugging.
85+
86+
Erfahren Sie mehr über [Copilot-Funktionen](/copilot) und wie Sie die Produktivität mit KI-Unterstützung maximieren können.
87+
88+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
89+
<Video src="introduction/copilot-workflow.mp4" width={700} height={450} />
90+
</div>
6191

6292
## Bereitstellungsoptionen
6393

@@ -75,7 +105,7 @@ Bereit, Ihren ersten KI-Workflow zu erstellen?
75105
<Card title="Erste Schritte" href="/getting-started">
76106
Erstellen Sie Ihren ersten Workflow in 10 Minuten
77107
</Card>
78-
<Card title="Workflow-Bausteine" href="/blocks">
108+
<Card title="Workflow-Blöcke" href="/blocks">
79109
Erfahren Sie mehr über die Bausteine
80110
</Card>
81111
<Card title="Tools & Integrationen" href="/tools">

apps/docs/content/docs/de/triggers/index.mdx

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,21 @@ description: Trigger sind die grundlegenden Möglichkeiten, um Sim-Workflows zu
44
---
55

66
import { Card, Cards } from 'fumadocs-ui/components/card'
7+
import { Image } from '@/components/ui/image'
78

8-
## Kern-Auslöser
9+
<div className="flex justify-center">
10+
<Image
11+
src="/static/blocks/triggers.png"
12+
alt="Triggers-Übersicht"
13+
width={500}
14+
height={350}
15+
className="my-6"
16+
/>
17+
</div>
918

10-
Verwende den Start-Block für alles, was vom Editor, von Deploy-to-API oder von Deploy-to-Chat-Erfahrungen ausgeht. Andere Trigger bleiben für ereignisgesteuerte Workflows verfügbar:
19+
## Kern-Trigger
20+
21+
Verwende den Start-Block für alles, was aus dem Editor, deploy-to-API oder deploy-to-chat Erfahrungen stammt. Andere Trigger bleiben für ereignisgesteuerte Workflows verfügbar:
1122

1223
<Cards>
1324
<Card title="Start" href="/triggers/start">
@@ -23,30 +34,30 @@ Verwende den Start-Block für alles, was vom Editor, von Deploy-to-API oder von
2334

2435
## Schneller Vergleich
2536

26-
| Auslöser | Startbedingung |
37+
| Trigger | Startbedingung |
2738
|---------|-----------------|
28-
| **Start** | Editor läuft, Deploy-to-API-Anfragen oder Chat-Nachrichten |
29-
| **Schedule** | Timer, der im Zeitplanblock verwaltet wird |
39+
| **Start** | Editor-Ausführungen, deploy-to-API Anfragen oder Chat-Nachrichten |
40+
| **Schedule** | Timer, der im Schedule-Block verwaltet wird |
3041
| **Webhook** | Bei eingehender HTTP-Anfrage |
3142

32-
> Der Start-Block stellt immer `input`, `conversationId` und `files`Felder bereit. Füge benutzerdefinierte Felder zum Eingabeformat für zusätzliche strukturierte Daten hinzu.
43+
> Der Start-Block stellt immer `input`, `conversationId` und `files` Felder bereit. Füge benutzerdefinierte Felder zum Eingabeformat für zusätzliche strukturierte Daten hinzu.
3344
3445
## Verwendung von Triggern
3546

36-
1. Platziere den Start-Block im Startslot (oder einen alternativen Trigger wie Webhook/Schedule).
37-
2. Konfiguriere alle erforderlichen Schema- oder Authentifizierungseinstellungen.
47+
1. Platziere den Start-Block im Start-Slot (oder einen alternativen Trigger wie Webhook/Schedule).
48+
2. Konfiguriere alle erforderlichen Schema- oder Auth-Einstellungen.
3849
3. Verbinde den Block mit dem Rest des Workflows.
3950

40-
> Bereitstellungen unterstützen jeden Trigger. Aktualisiere den Workflow, stelle ihn erneut bereit, und alle Trigger-Einstiegspunkte übernehmen den neuen Snapshot. Erfahre mehr unter [Ausführung → Bereitstellungs-Snapshots](/execution).
51+
> Bereitstellungen steuern jeden Trigger. Aktualisiere den Workflow, stelle ihn erneut bereit, und alle Trigger-Einstiegspunkte übernehmen den neuen Snapshot. Erfahre mehr unter [Ausführung → Bereitstellungs-Snapshots](/execution).
4152
42-
## Manuelle Ausführungspriorität
53+
## Priorität bei manueller Ausführung
4354

44-
Wenn Sie im Editor auf **Ausführen** klicken, wählt Sim automatisch aus, welcher Auslöser basierend auf der folgenden Prioritätsreihenfolge ausgeführt wird:
55+
Wenn du im Editor auf **Run** klickst, wählt Sim automatisch aus, welcher Trigger basierend auf der folgenden Prioritätsreihenfolge ausgeführt wird:
4556

4657
1. **Start-Block** (höchste Priorität)
47-
2. **Zeitplan-Auslöser**
48-
3. **Externe Auslöser** (Webhooks, Integrationen wie Slack, Gmail, Airtable usw.)
58+
2. **Schedule-Trigger**
59+
3. **Externe Trigger** (Webhooks, Integrationen wie Slack, Gmail, Airtable usw.)
4960

50-
Wenn Ihr Workflow mehrere Auslöser hat, wird der Auslöser mit der höchsten Priorität ausgeführt. Wenn Sie beispielsweise sowohl einen Start-Block als auch einen Webhook-Auslöser haben, wird durch Klicken auf Ausführen der Start-Block ausgeführt.
61+
Wenn dein Workflow mehrere Trigger hat, wird der Trigger mit der höchsten Priorität ausgeführt. Wenn du beispielsweise sowohl einen Start-Block als auch einen Webhook-Trigger hast, wird beim Klicken auf Run der Start-Block ausgeführt.
5162

52-
**Externe Auslöser mit Mock-Payloads**: Wenn externe Auslöser (Webhooks und Integrationen) manuell ausgeführt werden, generiert Sim automatisch Mock-Payloads basierend auf der erwarteten Datenstruktur des Auslösers. Dies stellt sicher, dass nachgelagerte Blöcke während des Tests Variablen korrekt auflösen können.
63+
**Externe Auslöser mit Mock-Payloads**: Wenn externe Auslöser (Webhooks und Integrationen) manuell ausgeführt werden, generiert Sim automatisch Mock-Payloads basierend auf der erwarteten Datenstruktur des Auslösers. Dies stellt sicher, dass nachgelagerte Blöcke während des Testens Variablen korrekt auflösen können.

apps/docs/content/docs/es/blocks/human-in-the-loop.mdx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ title: Human in the Loop
55
import { Callout } from 'fumadocs-ui/components/callout'
66
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
77
import { Image } from '@/components/ui/image'
8+
import { Video } from '@/components/ui/video'
89

910
El bloque Human in the Loop pausa la ejecución del flujo de trabajo y espera la intervención humana antes de continuar. Úsalo para añadir puntos de aprobación, recopilar comentarios o reunir información adicional en puntos críticos de decisión.
1011

@@ -76,7 +77,7 @@ Define los campos que los aprobadores completan al responder. Estos datos estar
7677
}
7778
```
7879

79-
Accede a los datos de reanudación en bloques posteriores usando `<blockId.resumeInput.fieldName>`.
80+
Accede a los datos del resumen en bloques posteriores usando `<blockId.resumeInput.fieldName>`.
8081

8182
## Métodos de aprobación
8283

@@ -174,8 +175,14 @@ Accede usando `<blockId.resumeInput.fieldName>`.
174175
<approval1.resumeInput.approved> === true
175176
```
176177

178+
El ejemplo a continuación muestra un portal de aprobación como lo ve un aprobador después de que el flujo de trabajo se pausa. Los aprobadores pueden revisar los datos y proporcionar entradas como parte de la reanudación del flujo de trabajo. Se puede acceder al portal de aprobación directamente a través de la URL única, `<blockId.url>`.
179+
180+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
181+
<Video src="hitl-resume.mp4" width={700} height={450} />
182+
</div>
183+
177184
## Bloques relacionados
178185

179-
- **[Condición](/blocks/condition)** - Ramifica basado en decisiones de aprobación
180-
- **[Variables](/blocks/variables)** - Almacena historial de aprobaciones y metadatos
181-
- **[Respuesta](/blocks/response)** - Devuelve resultados del flujo de trabajo a los llamantes de API
186+
- **[Condición](/blocks/condition)** - Ramificación basada en decisiones de aprobación
187+
- **[Variables](/blocks/variables)** - Almacenar historial de aprobación y metadatos
188+
- **[Respuesta](/blocks/response)** - Devolver resultados del flujo de trabajo a los solicitantes de API

apps/docs/content/docs/es/connections/basics.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ title: Conceptos básicos
44

55
import { Callout } from 'fumadocs-ui/components/callout'
66
import { Step, Steps } from 'fumadocs-ui/components/steps'
7+
import { Video } from '@/components/ui/video'
78

89
## Cómo funcionan las conexiones
910

@@ -28,11 +29,15 @@ Las conexiones son las vías que permiten que los datos fluyan entre bloques en
2829
</Step>
2930
</Steps>
3031

32+
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
33+
<Video src="connections-build.mp4" width={700} height={450} />
34+
</div>
35+
3136
### Flujo de conexión
3237

3338
El flujo de datos a través de las conexiones sigue estos principios:
3439

35-
1. **Flujo direccional**: Los datos siempre fluyen de las salidas a las entradas
40+
1. **Flujo direccional**: Los datos siempre fluyen desde las salidas hacia las entradas
3641
2. **Orden de ejecución**: Los bloques se ejecutan en orden según sus conexiones
3742
3. **Transformación de datos**: Los datos pueden transformarse al pasar entre bloques
3843
4. **Rutas condicionales**: Algunos bloques (como Router y Condition) pueden dirigir el flujo a diferentes rutas

0 commit comments

Comments
 (0)