# studio.translate.ollama Translate-Hook-Plugin für F∆I Studio. Routet `translate`- Aufrufe durch einen konfigurierten Ollama-`/api/chat`-Endpunkt — so wird Server-gelieferter englischer Text (MCP-Tool- Beschreibungen, n8n-Endpunkt-Namen, `[EN]`-gebadgete Strings) in die aktive Studio-Sprache übersetzt, just-in-time. ## Capability - `studio.translate.ollama@0.1.0` ## Implementierter Hook - `translate(text, from_locale, to_locale) -> string` Die anderen beiden Studio-Plugin-Hooks (`theme`, `output-view`) liefern `PluginError::Declined` — dieses Plugin übersetzt nur. ## Konfiguration Liest zwei Umgebungsvariablen, die der Operator dem Plugin über die `env:`-Berechtigung verfügbar macht: | Variable | Default | | ----------------- | ------------------------------------ | | `OLLAMA_ENDPOINT` | `http://localhost:11434/api/chat` | | `OLLAMA_MODEL` | `qwen2.5:14b` | Für andere Endpunkte (z.B. remote Inferenz-Node): `OLLAMA_ENDPOINT` vor `fai serve` setzen und den Host in den `net:`-Berechtigungen unten ergänzen. ## Berechtigungen ```yaml permissions: - "net: localhost" - "net: 127.0.0.1" - "net: ollama" ``` Operator:innen mit nicht-Loopback-Endpunkt erweitern ihre Operator-Policy-Ceiling um den Upstream-Host. ## Wie der System-Prompt arbeitet Das Plugin sendet zwei Nachrichten an das Modell: einen festen System-Prompt, der die Ausgabe auf NUR die Übersetzung einschränkt (keine Anführungszeichen, kein Kommentar, keine Erklärung), und eine User-Message mit dem Quelltext. Der Sprach-Hinweis steht im System-Prompt — das Modell behandelt ihn als Anweisung, nicht als zu übersetzenden Inhalt. So bleibt der Translate-Hook-Vertrag ehrlich: der Caller erwartet einen reinen String zurück, keine markdown-umrahmte LLM-Antwort. ## Grenzen in v0.1.0 - Kein Glossar / keine Terminologie-Liste — das Modell stützt sich auf sein Allgemeinwissen. - Kein Batching. Jeder Aufruf ist ein HTTP-Request. - Kein Caching. Studios Plugin-Host könnte in einer späteren Iteration einen pro-Aufruf-Cache ergänzen. ## Build ```bash cargo build --release --target wasm32-wasip2 # Ausgabe: target/wasm32-wasip2/release/studio_translate_ollama.wasm ```