matrix-docker-ansible-deploy/i18n/bin/sync-translation-templates-to-locales.sh
Suguru Hirahara 1636c49134
Start adopting REUSE on files for a brand new subproject (translation)
REUSE is an initiative by FSFE, which intends to make licensing easier with best practices to display legal information through comment headers on source files that can be easily human and machine readable.

Because these files are new and translation shall involve a lot of people as copyright holders, now is the best time to adopt REUSE. As a first implementation, this commit intentionally limits the scope to i18n directory.

Cherry-picked from c737ed0612 and a2445af6d0

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-12-20 19:08:12 +09:00

35 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev <slavi@devture.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# This script updates the translation files (locales/<language>/**/*.po) for a given language.
# It uses the translation templates (translation-templates/**/*.pot) to generate the translation files.
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/translation-templates/README.pot ]; then
echo "Translation templates not found. Please run the `extract-translation-templates.sh` script first."
exit 1
fi
# Create necessary directories to avoid race conditions caused by
# Sphinx potentially trying to concurrently create them from separate threads below.
mkdir -p ${base_path}/i18n/locales/${LANGUAGE}/LC_MESSAGES/docs
# Update the translation files
sphinx-intl update \
--pot-dir ${base_path}/i18n/translation-templates \
--locale-dir ${base_path}/i18n/locales \
--language ${LANGUAGE}