Settings — Translation
This page configures what translates and how. Translation is off by default and stays a Beta feature — turn it on once you’ve verified your backend works, and start with a small batch before unleashing it on a whole library.
Feature gate
Section titled “Feature gate”| Setting | Default | Values | Effect |
|---|---|---|---|
| Translation enabled | off | toggle | Master switch. When off, every translation control in the UI is hidden or disabled. |
| Source language | en | ISO 639-1 | Language Sublarr translates from. |
| Target language | de | ISO 639-1 | Language Sublarr translates to. |
| Source language name | English | string | Used in LLM prompts (some prompts work better with full names). |
| Target language name | German | string | Same. |
Backends
Section titled “Backends”Sublarr ships 12 backends. Configure each in the Backends tab; the pipeline picks the active one per translation job. Cost tracking, queue dashboard, per-backend concurrency, and context-windowing are shared across all backends.
| Backend | Type | Self-Hosted | API key | Best for |
|---|---|---|---|---|
| Ollama | LLM | yes | no | Full local control, custom prompts, GPU acceleration. |
| OpenAI-compatible | LLM | both | yes | GPT-4 endpoints or local OpenAI-shaped servers. |
| OpenAI ChatGPT | LLM API | no | yes | GPT-4o / GPT-4-turbo via the official endpoint. |
| Anthropic Claude | LLM API | no | yes | High-quality long-context translation. |
| Google Gemini | LLM API | no | yes | Fast Gemini 2.x with native multilingual support. |
| DeepSeek | LLM API | no | yes | Cost-effective, strong on Chinese. |
| Mistral | LLM API | no | yes | EU-hosted LLM, GDPR-friendly. |
| DeepL | NMT | no | yes | Best quality for European languages. |
| Google Translate | NMT | no | yes | Broad coverage, fast, paid per char. |
| LibreTranslate | NMT | yes | optional | Self-hosted, privacy-focused. |
| Azure Translator | NMT | no | yes | Enterprise NMT with regional endpoints. |
| MyMemory | NMT | no | optional | Free tier; useful as zero-cost fallback only. |
Per-backend fields
Section titled “Per-backend fields”Each backend’s edit panel exposes:
| Field | Effect |
|---|---|
| Enabled | Backend toggle. Disabled backends aren’t tried. |
| Endpoint URL | Override default endpoint. Useful for self-hosted or proxied installs. |
| API key / token | Credential. Multi-key pool supported via API Keys. |
| Model | Which model the backend should use (LLM-only). Pre-populated from the backend’s known good defaults. |
| Price (per 1M units) | Used for cost tracking. Defaults reflect public pricing at the time the backend was added — verify against your invoice. |
| Concurrency | How many parallel jobs this backend can serve. |
| Test | Sends a fixed sample translation; reports success and latency. |
Fallback chains
Section titled “Fallback chains”Configure backup backends in case your primary fails. Example:
- Primary: Ollama (local, fast, free).
- Fallback 1: DeepL (cloud, high quality, fast).
- Fallback 2: LibreTranslate (self-hosted backup).
A failed primary triggers automatic re-queue on the next backend in the chain. The job ID stays the same so cost tracking, queue position, and notifications all carry through.
Workers and concurrency
Section titled “Workers and concurrency”| Setting | Default | Values | Effect |
|---|---|---|---|
| Concurrent translations | 2 | 1–8 | Per-Sublarr-instance cap on simultaneous jobs. |
| Batch size (cues per request) | 15 | 5–50 | Cues per LLM call. Larger = fewer round trips, but bigger context — risk hitting the model’s limit. |
| Request timeout (s) | 90 | 30–600 | Per-LLM-call timeout. |
| Max retries | 3 | 1–10 | Retries on transient failure before giving up. |
| Backoff base (s) | 5 | 1–60 | First retry waits this; doubles each subsequent. |
| Temperature | 0.3 | 0.0–2.0 | LLM sampling temperature. Lower = more deterministic; higher = more creative. |
Series context
Section titled “Series context”When translating an episode, Sublarr can include adjacent cues (and optionally past episodes’ summaries) in the prompt for coherence:
| Setting | Default | Values | Effect |
|---|---|---|---|
| Use episode context | on | toggle | Inject N previous + N next cues into the prompt around each batch. |
| Lookback cues | 10 | 0–50 | Number of previous cues. |
| Lookahead cues | 5 | 0–50 | Number of upcoming cues. |
| Use series context | off | toggle | Carry a brief series summary across episodes (Beta). |
| Context episodes | 2 | 0–10 | How many previous episodes to summarise into context. |
| Auto-glossary | on | toggle | Inject the matching glossary entries on every job (see Glossary). |
Prompt template
Section titled “Prompt template”| Field | Default | Effect |
|---|---|---|
| Prompt template | empty (auto-generated) | Override the system prompt. Empty = Sublarr generates from source/target language names. Use only if you know what you’re doing. |
Cost & memory
Section titled “Cost & memory”The Cost & Memory tab on this page jumps to the dedicated Cost & Memory view — per-job spend log, translation memory hit rate, and TM management.
Live queue
Section titled “Live queue”The Queue tab opens the Translation Queue — live job dashboard with cancellation and retry. Use it to watch jobs in flight and to debug the few that fail.
Configuring Ollama (default backend)
Section titled “Configuring Ollama (default backend)”The recommended starting setup if you have a capable host:
- Install Ollama on the host that runs Sublarr (or a reachable LAN host).
- Pull a general-purpose model:
ollama pull qwen2.5:14b-instruct(orllama3.1:8b-instructfor lighter machines). - In Sublarr: Settings → Translation → Backends → Ollama.
- Set Endpoint URL to your Ollama instance (default
http://localhost:11434). - Set Model to the pulled model name.
- Click Test — the response should be the test translation.