[translations] ./manage rename shell functions to integrate weblate

Functions implemented to run *Weblate* workflows should use prefix 'weblate.':

- 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)::

       remote weblate https://weblate.bubu1.eu/git/searxng/searxng/

- babel.weblate.to.translations     --> weblate.to.translations

  Update 'translations' branch of SearXNG (origin) with last additions from
  Weblate.

- 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)

- babel.master.to.translations      --> weblate.push.translations

  Push *translation changes* from SearXNG (origin) to Weblate's
  counterpart (weblate).

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2021-08-16 11:30:53 +02:00
parent 0dc8d244c5
commit 97355672cd
6 changed files with 26 additions and 17 deletions

View file

@ -127,7 +127,7 @@ jobs:
id: update id: update
run: | run: |
git restore utils/brand.env git restore utils/brand.env
make V=1 babel.master.to.translations make V=1 weblate.push.translations
dockers: dockers:
name: Docker name: Docker

View file

@ -36,7 +36,7 @@ jobs:
git config --global user.name "searxng-bot" git config --global user.name "searxng-bot"
- name: Merge and push transation updates - name: Merge and push transation updates
run: | run: |
make V=1 babel.translations.to.master make V=1 weblate.translations.commit
- name: Create Pull Request - name: Create Pull Request
id: cpr id: cpr
uses: peter-evans/create-pull-request@v3 uses: peter-evans/create-pull-request@v3

View file

@ -77,7 +77,7 @@ test.shell:
# wrap ./manage script # wrap ./manage script
MANAGE += buildenv 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 += data.all data.languages data.useragents data.osm_keys_tags
MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean
MANAGE += docker.build docker.push docker.buildx MANAGE += docker.build docker.push docker.buildx

View file

@ -49,12 +49,12 @@ only the
SearXNG's PR workflow to be in sync with Weblate 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 For each commit on the ``master`` branch of SearXNG *origin* the GitHub job
:origin:`babel / Update translations branch :origin:`babel / Update translations branch
<.github/workflows/integration.yml>` checks for updated translations. <.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 Every Friday, the GitHub workflow :origin:`babel / create PR for additons from
weblate <.github/workflows/translations-update.yml>` creates a PR with the weblate <.github/workflows/translations-update.yml>` creates a PR with the
updated translation files: updated translation files:

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

27
manage
View file

@ -123,7 +123,8 @@ buildenv() {
TRANSLATIONS_WORKTREE="$CACHE/translations" TRANSLATIONS_WORKTREE="$CACHE/translations"
babel.setup.translations.worktree() { weblate.translations.worktree() {
# Create git worktree ${TRANSLATIONS_WORKTREE} and checkout branch # Create git worktree ${TRANSLATIONS_WORKTREE} and checkout branch
# 'translations' from Weblate's counterpart (weblate) of the SearXNG # 'translations' from Weblate's counterpart (weblate) of the SearXNG
# (origin). # (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 # Update 'translations' branch of SearXNG (origin) with last additions from
# Weblate. # Weblate.
@ -168,7 +170,8 @@ babel.weblate.to.translations() {
pyenv.cmd wlc commit pyenv.cmd wlc commit
# get the translations in a worktree # get the translations in a worktree
babel.setup.translations.worktree weblate.translations.worktree
pushd "${TRANSLATIONS_WORKTREE}" pushd "${TRANSLATIONS_WORKTREE}"
git remote update weblate git remote update weblate
git merge weblate/translations git merge weblate/translations
@ -178,7 +181,8 @@ babel.weblate.to.translations() {
dump_return $? dump_return $?
} }
babel.translations.to.master() { weblate.translations.commit() {
# Update 'translations' branch of SearXNG (origin) with last additions from # Update 'translations' branch of SearXNG (origin) with last additions from
# Weblate. Copy the changes to the master branch, compile translations and # Weblate. Copy the changes to the master branch, compile translations and
# create a commit in the local branch (master) # create a commit in the local branch (master)
@ -187,12 +191,17 @@ babel.translations.to.master() {
( set -e ( set -e
# lock change on weblate # lock change on weblate
pyenv.cmd wlc lock 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') existing_commit_hash=$(cd "${TRANSLATIONS_WORKTREE}"; git log -n1 --pretty=format:'%h')
# pull weblate commits # pull weblate commits
babel.weblate.to.translations weblate.to.translations
# copy the changes to the master branch # copy the changes to the master branch
cp -rv --preserve=mode,timestamps "${TRANSLATIONS_WORKTREE}/searx/translations" "searx" cp -rv --preserve=mode,timestamps "${TRANSLATIONS_WORKTREE}/searx/translations" "searx"
# compile translations # compile translations
build_msg BABEL 'compile translation catalogs into binary MO files' build_msg BABEL 'compile translation catalogs into binary MO files'
pyenv.cmd pybabel compile --statistics \ pyenv.cmd pybabel compile --statistics \
@ -211,7 +220,7 @@ babel.translations.to.master() {
dump_return $exitcode dump_return $exitcode
} }
babel.master.to.translations() { weblate.push.translations() {
# Push *translation changes* from SearXNG (origin) to Weblate's counterpart # Push *translation changes* from SearXNG (origin) to Weblate's counterpart
# (weblate). # (weblate).
@ -235,7 +244,7 @@ babel.master.to.translations() {
pyenv.cmd wlc lock pyenv.cmd wlc lock
# get translations branch in git worktree (TRANSLATIONS_WORKTREE) # get translations branch in git worktree (TRANSLATIONS_WORKTREE)
babel.setup.translations.worktree weblate.translations.worktree
# update messages.pot in the master branch # update messages.pot in the master branch
build_msg BABEL 'extract messages from source files and generate POT file' build_msg BABEL 'extract messages from source files and generate POT file'
@ -258,7 +267,7 @@ babel.master.to.translations() {
popd popd
# merge weblate commits into the translations branch # merge weblate commits into the translations branch
babel.weblate.to.translations weblate.to.translations
# restore messages.pot in the translations branch # restore messages.pot in the translations branch
pushd "${TRANSLATIONS_WORKTREE}" pushd "${TRANSLATIONS_WORKTREE}"