Glossary
The Glossary is a list of source-language terms paired with their preferred target-language renderings. Sublarr injects matching entries into the LLM prompt for every translation job, so a name that gets translated one way in episode 1 doesn’t drift in episode 14. There are two scopes — global (applies to every job) and per-series (applies only to that series).
When to use it
Section titled “When to use it”| Scenario | Add to glossary? |
|---|---|
| Recurring character name that the LLM pronounces inconsistently | Yes — per-series |
| Place name with multiple valid translations | Yes — global |
| Idiomatic phrase that needs a fixed rendering | Yes — global |
| One-off line that came out wrong | No — fix in the editor instead |
| Whole sentence transformations | No — glossary is per-term, not per-line |
Where it lives
Section titled “Where it lives”| Surface | Scope | When applied |
|---|---|---|
| Settings → Translation → Glossary | Global | Every translation job that has glossary injection enabled. |
| Series detail → Translation → Glossary | Per-series | Only jobs for that series. Layered on top of the global list. |
| Subtitle Editor → Translation tab → Glossary toggle | Per-job | Disable glossary for a single run without removing entries. |
Entry shape
Section titled “Entry shape”Each entry has three fields:
| Field | Effect |
|---|---|
| Source term | The string the LLM will look for in the source-language cue. Case-insensitive match by default. |
| Target term | What it must be translated to. |
| Notes | Free-text comment shown to admins (not sent to the LLM). Useful for “Variant of X” reminders. |
How injection works
Section titled “How injection works”When a translation job runs:
- Sublarr collects matching entries from the global + per-series lists.
- The matched entries are appended to the system prompt as a “Required terminology” section.
- The LLM is instructed to use the listed renderings verbatim, and to ignore entries that don’t appear in the cue.
The entry budget is capped (default 40) to keep prompts within context limits. If a series has more matching entries than the cap, Sublarr picks the most-recently-edited subset.
Per-series cascade
Section titled “Per-series cascade”The series-level list augments the global list — it does not replace it. If a term appears in both, the series rendering wins. To explicitly override a global entry for one series, add the same source term with the new target term to the series list.
Auto-build from existing translations
Section titled “Auto-build from existing translations”The glossary supports an “auto-extract” pass that reads through your existing translated files and proposes glossary entries based on repeated patterns:
- Open Settings → Translation → Glossary → Auto-extract.
- Pick a series and the language pair.
- Sublarr scans existing translated
.srtfiles, finds proper-noun candidates, and presents them as suggestions. - Review, edit, and accept entries one at a time.
Backup and export
Section titled “Backup and export”Both the global and per-series glossary are stored in the database and included in Settings → System → Backup. The export format is YAML for human-readable diffs:
global: - source: Kyoto target: Kyōto - source: Senpai target: Senpaiseries: "Frieren: Beyond Journey's End": - source: Himmel target: Himmel # Keep German as-isCommon pitfalls
Section titled “Common pitfalls”| Symptom | Likely cause | Fix |
|---|---|---|
| Term still translates inconsistently | Source-term casing differs in the cue (e.g. Senpai vs senpai) | Add both casings or enable the case-insensitive flag. |
| LLM ignores the glossary | Glossary toggle disabled for that job | Re-run with the toggle on. |
| Translation degraded after adding many entries | Prompt budget exceeded | Lower the per-job cap or split global entries into per-series lists. |