diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 886df3b2f..84ce51a04 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -127,7 +127,7 @@ jobs: id: update run: | git restore utils/brand.env - make V=1 babel.master.to.translations + make V=1 weblate.push.translations dockers: name: Docker diff --git a/.github/workflows/translations-update.yml b/.github/workflows/translations-update.yml index 2db9c3d78..c3120ce1e 100644 --- a/.github/workflows/translations-update.yml +++ b/.github/workflows/translations-update.yml @@ -36,7 +36,7 @@ jobs: git config --global user.name "searxng-bot" - name: Merge and push transation updates run: | - make V=1 babel.translations.to.master + make V=1 weblate.translations.commit - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v3 diff --git a/Makefile b/Makefile index cee1e4b97..88edef5cf 100644 --- a/Makefile +++ b/Makefile @@ -77,7 +77,7 @@ test.shell: # wrap ./manage script MANAGE += buildenv -MANAGE += babel.translations.to.master babel.master.to.translations +MANAGE += weblate.translations.commit weblate.push.translations MANAGE += data.all data.languages data.useragents data.osm_keys_tags MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean MANAGE += docker.build docker.push docker.buildx diff --git a/docs/dev/translation.rst b/docs/dev/translation.rst index c0e3c3851..922c29c54 100644 --- a/docs/dev/translation.rst +++ b/docs/dev/translation.rst @@ -49,12 +49,12 @@ only the SearXNG's PR workflow to be in sync with Weblate -Sync from *origin* to *weblate*: ``make babel.master.to.translations`` +Sync from *origin* to *weblate*: using ``make weblate.push.translations`` For each commit on the ``master`` branch of SearXNG *origin* the GitHub job :origin:`babel / Update translations branch <.github/workflows/integration.yml>` checks for updated translations. -Sync from *weblate* to *origin*: ``make babel.translations.to.master`` +Sync from *weblate* to *origin*: using ``make weblate.translations.commit`` Every Friday, the GitHub workflow :origin:`babel / create PR for additons from weblate <.github/workflows/translations-update.yml>` creates a PR with the updated translation files: diff --git a/docs/dev/translation.svg b/docs/dev/translation.svg index a4f26b86b..70400cca7 100644 Binary files a/docs/dev/translation.svg and b/docs/dev/translation.svg differ diff --git a/manage b/manage index 45523323f..a855512f5 100755 --- a/manage +++ b/manage @@ -123,7 +123,8 @@ buildenv() { TRANSLATIONS_WORKTREE="$CACHE/translations" -babel.setup.translations.worktree() { +weblate.translations.worktree() { + # Create git worktree ${TRANSLATIONS_WORKTREE} and checkout branch # 'translations' from Weblate's counterpart (weblate) of the SearXNG # (origin). @@ -147,7 +148,8 @@ babel.setup.translations.worktree() { ) } -babel.weblate.to.translations() { +weblate.to.translations() { + # Update 'translations' branch of SearXNG (origin) with last additions from # Weblate. @@ -168,7 +170,8 @@ babel.weblate.to.translations() { pyenv.cmd wlc commit # get the translations in a worktree - babel.setup.translations.worktree + weblate.translations.worktree + pushd "${TRANSLATIONS_WORKTREE}" git remote update weblate git merge weblate/translations @@ -178,7 +181,8 @@ babel.weblate.to.translations() { dump_return $? } -babel.translations.to.master() { +weblate.translations.commit() { + # Update 'translations' branch of SearXNG (origin) with last additions from # Weblate. Copy the changes to the master branch, compile translations and # create a commit in the local branch (master) @@ -187,12 +191,17 @@ babel.translations.to.master() { ( set -e # lock change on weblate pyenv.cmd wlc lock - babel.setup.translations.worktree + + # get translations branch in git worktree (TRANSLATIONS_WORKTREE) + weblate.translations.worktree existing_commit_hash=$(cd "${TRANSLATIONS_WORKTREE}"; git log -n1 --pretty=format:'%h') + # pull weblate commits - babel.weblate.to.translations + weblate.to.translations + # copy the changes to the master branch cp -rv --preserve=mode,timestamps "${TRANSLATIONS_WORKTREE}/searx/translations" "searx" + # compile translations build_msg BABEL 'compile translation catalogs into binary MO files' pyenv.cmd pybabel compile --statistics \ @@ -211,7 +220,7 @@ babel.translations.to.master() { dump_return $exitcode } -babel.master.to.translations() { +weblate.push.translations() { # Push *translation changes* from SearXNG (origin) to Weblate's counterpart # (weblate). @@ -235,7 +244,7 @@ babel.master.to.translations() { pyenv.cmd wlc lock # get translations branch in git worktree (TRANSLATIONS_WORKTREE) - babel.setup.translations.worktree + weblate.translations.worktree # update messages.pot in the master branch build_msg BABEL 'extract messages from source files and generate POT file' @@ -258,7 +267,7 @@ babel.master.to.translations() { popd # merge weblate commits into the translations branch - babel.weblate.to.translations + weblate.to.translations # restore messages.pot in the translations branch pushd "${TRANSLATIONS_WORKTREE}"