Translate GlossBoss

GlossBoss supports app UI translations with gettext .po files. If you want to help translate the interface or add another language, this page summarizes the workflow and links back to the repository docs.

Where app translations live

app.en.po is the source catalog and required fallback language for the app. Other UI languages should keep the same msgid keys, even if some msgstr values are still untranslated.

Update an existing language

  1. Edit the relevant app.<language>.po file.
  2. Keep placeholders like {count} and {format} unchanged.
  3. Run the local validation commands before opening a pull request.
  4. In the app, open Settings → Display and switch the interface language to review it.

Add a new UI string

  1. Add the string in code with t('Your new string').
  2. Use msgid('...') for module-scope strings that are translated later.
  3. Run bun run i18n:extract to update app.pot and merge all app.*.po files.
  4. Review the generated entries: English keeps msgstr = msgid, while other languages get empty msgstr values that still need translation.

Add a new language

  1. Run bun run i18n:add-lang de or create a new file such as src/lib/app-language/locales/app.de.po.
  2. Set the PO header Language: de or use the matching filename.
  3. Use bun run i18n:extract after adding new UI strings so the catalog stays current.
  4. The app discovers the new locale automatically in Settings → Display.

Repository docs

For the contributor checklist and pull request expectations, read the repository guides: