Translation takes place on

Translations which has been added by translators on the UI are committed to Weblate’s counterpart of the SearXNG origin repository which is located at

There is no need to clone this repository, SearXNG’s PR workflow to be in sync with Weblate take care of the synchronization with the origin. To avoid merging commits from the counterpart directly on the master branch of SearXNG origin, a pull request (PR) is created by this workflow.

Weblate monitors the translations branch, not the master branch. This branch is an orphan branch, decoupled from the master branch (we already know orphan branches from the gh-pages). The translations branch contains only the

  • translation/messages.pot and the

  • translation/*/messages.po files, nothing else.


Fig. 3 SearXNG’s PR workflow to be in sync with Weblate

Sync from origin to weblate: using make weblate.push.translations

For each commit on the master branch of SearXNG origin the GitHub job babel / Update translations branch checks for updated translations.

Sync from weblate to origin: using make weblate.translations.commit

Every Friday, the GitHub workflow babel / create PR for additions from weblate creates a PR with the updated translation files:

  • translation/messages.pot,

  • translation/*/messages.po and

  • translation/*/


All weblate integration is done by GitHub workflows, but if you want to use wlc, copy this content into wlc configuration in your HOME ~/.config/weblate

[keys] = APIKEY

Replace APIKEY by your API key.