Locales
Locale plugins add language translations to Overseer. A locale is a Fluent Translation List (.ftl) file that overrides the app’s built-in English strings, packaged in a plugin.
Creating a locale
Create a plugin directory in your Plugins directory with a manifest.json and an .ftl file.
Directory structure
@myname/elvish/
manifest.json
main.ftlManifest
{
"id": "@myname/elvish",
"name": "Elvish",
"version": "1.0.0",
"author": "Your Name",
"locales": [
{
"id": "elvish",
"label": "Elvish",
"src": { "$ref": "main.ftl" }
}
]
}Each locale entry has:
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for this locale. |
label | string | Display name in Settings > Language. |
src | object | Reference to the FTL file: { "$ref": "filename.ftl" }. |
FTL file
Fluent files use key = Value syntax. Each key corresponds to a UI string in Overseer:
app-name = Overseer
main-menu-settings = Elen síla lúmenn' omentielvo
main-menu-plugins = Hérincë
main-menu-undo = Entuluva
main-menu-redo = EnquantuvaRestart Overseer. Your locale appears in Settings > Language.
Discovering translation keys
A setting to display translation keys in the UI is planned for a future release. This will let you see exactly which keys correspond to which UI elements, making it straightforward to build translations.
Partial translations
You don’t need to translate every string. Include only the keys you want to override – anything not in your file falls back to the English default.
For example, to translate only the main menu into German:
main-menu-edit-session = Sitzung bearbeiten
main-menu-duplicate = Duplizieren
main-menu-save-as-preset = Als Vorlage speichern
main-menu-delete-session = Sitzung löschen
main-menu-settings = Einstellungen
main-menu-plugins = ErweiterungenFluent syntax
Basic messages
key = ValueVariables
Some strings include variables passed by the application. Use { $variableName } to insert them:
error-pdf-load = Failed to load PDF: { $error }Multiline values
Indent continuation lines with spaces:
long-message =
This is a longer message
that spans multiple lines.For the full Fluent syntax specification, see projectfluent.org.