@ -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}"