2024-12-20 08:37:38 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2024-12-20 10:58:05 +01:00
|
|
|
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev <slavi@devture.com>
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
|
2024-12-20 08:37:38 +01:00
|
|
|
# This script builds the translated result (translated project) for a given language in the `translated/<language>/` directory.
|
|
|
|
|
|
|
|
set -euxo pipefail
|
|
|
|
|
|
|
|
if [ $# -ne 1 ]; then
|
|
|
|
echo "Usage: $0 <language>"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
LANGUAGE=$1
|
|
|
|
|
|
|
|
base_path="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
|
|
|
|
|
|
if [ ! -f ${base_path}/i18n/locales/${LANGUAGE}/LC_MESSAGES/README.po ]; then
|
|
|
|
echo "Locales for ${LANGUAGE} not found. Please run the `sync-translation-templates-to-locales.sh` script first."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Prepare a clean build directory
|
|
|
|
if [ -d ${base_path}/i18n/translated-result-build-${LANGUAGE} ]; then
|
|
|
|
rm -rf ${base_path}/i18n/translated-result-build-${LANGUAGE}
|
|
|
|
fi
|
|
|
|
mkdir -p ${base_path}/i18n/translated-result-build-${LANGUAGE}
|
|
|
|
|
|
|
|
# Build the translated documentation
|
|
|
|
sphinx-build \
|
|
|
|
-b markdown \
|
|
|
|
-D language="${LANGUAGE}" \
|
|
|
|
${base_path}/ \
|
|
|
|
${base_path}/i18n/translated-result-build-${LANGUAGE}
|
|
|
|
|
|
|
|
# Clean up .mo files produced during the build.
|
|
|
|
# We don't commit them to the repository anyway, so they can be left alone,
|
|
|
|
# but we'd rather keep things clean anyway.
|
|
|
|
find ${base_path}/i18n/locales/${LANGUAGE} -type f -name '*.mo' -delete
|
|
|
|
|
|
|
|
# Clean up the build directory
|
|
|
|
rm -rf ${base_path}/i18n/translated-result-build-${LANGUAGE}/.doctrees
|
|
|
|
|
|
|
|
# Copy assets
|
|
|
|
cp -r ${base_path}/docs/assets ${base_path}/i18n/translated-result-build-${LANGUAGE}/docs/assets/
|
|
|
|
|
|
|
|
# Remove the old result directory for this language
|
|
|
|
if [ -d ${base_path}/i18n/translated/${LANGUAGE} ]; then
|
|
|
|
rm -rf ${base_path}/i18n/translated/${LANGUAGE}
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Make sure the `translated/` directory exists
|
|
|
|
if [ ! -d ${base_path}/i18n/translated ]; then
|
|
|
|
mkdir -p ${base_path}/i18n/translated
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Relocate the built result to translated/<language>
|
|
|
|
mv ${base_path}/i18n/translated-result-build-${LANGUAGE} ${base_path}/i18n/translated/${LANGUAGE}
|