#!/bin/bash # SPDX-FileCopyrightText: 2024 Slavi Pantaleev # SPDX-FileCopyrightText: 2024 Suguru Hirahara # # SPDX-License-Identifier: AGPL-3.0-or-later # This script builds the translated result (translated project) for a given language in the `translations//` directory. set -euxo pipefail if [ $# -ne 1 ]; then echo "Usage: $0 " 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/translations/${LANGUAGE} ]; then rm -rf ${base_path}/i18n/translations/${LANGUAGE} fi # Make sure the `translations/` directory exists if [ ! -d ${base_path}/i18n/translations ]; then mkdir -p ${base_path}/i18n/translations fi # Relocate the built result to translations/ mv ${base_path}/i18n/translated-result-build-${LANGUAGE} ${base_path}/i18n/translations/${LANGUAGE}