Fix up locale generator to exit on error instead of ignoring it, handle filenames better (#2422)

Don't mix tabs and spaces, use tabs, just like the main script
This commit is contained in:
Martin 2024-04-16 11:05:50 +02:00 committed by GitHub
parent 3f4fbed7b7
commit 7011ac095f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 25 additions and 26 deletions

View File

@ -1,49 +1,48 @@
#!/bin/bash
#!/usr/bin/env bash
set -euo pipefail
cd $(dirname "$0")/..
function update_lang() {
file=$1
file=${1}
echo "Updating: $file"
path=$(dirname $file)
msgmerge --quiet --no-location --width 512 --backup none --update $file locales/base.pot
msgfmt -o $path/base.mo $file
echo "Updating: ${file}"
path=$(dirname "${file}")
msgmerge --quiet --no-location --width 512 --backup none --update "${file}" locales/base.pot
msgfmt -o "${path}/base.mo" "${file}"
}
function generate_all() {
for file in $(find locales/ -name "base.po"); do
update_lang "$file"
done
for file in $(find locales/ -name "base.po"); do
update_lang "${file}"
done
}
function generate_single_lang() {
lang_file="locales/$1/LC_MESSAGES/base.po"
lang_file="locales/${1}/LC_MESSAGES/base.po"
if [ ! -f "$lang_file" ]; then
echo "Language files not found: $lang_file"
exit 1
fi
if [ ! -f "${lang_file}" ]; then
echo "Language files not found: ${lang_file}"
exit 1
fi
update_lang "$lang_file"
update_lang "${lang_file}"
}
if [ $# -eq 0 ]
then
echo "Usage: locales_generator.sh <language_abbr>"
exit 1
if [ $# -eq 0 ]; then
echo "Usage: ${0} <language_abbr>"
echo "Special case 'all' for <language_abbr> builds all languages."
exit 1
fi
lang=$1
lang=${1}
# Update the base file containing all translatable string
# Update the base file containing all translatable strings
find . -type f -iname "*.py" | xargs xgettext --join-existing --no-location --omit-header -d base -o locales/base.pot
case "$lang" in
"all") generate_all
;;
*) generate_single_lang "$lang"
case "${lang}" in
"all") generate_all;;
*) generate_single_lang "${lang}"
esac