Check translations keys in CI (#279)

This commit is contained in:
Thomas Miceli
2024-05-11 21:02:57 +02:00
committed by GitHub
parent f705e879a1
commit 97636b23f5
7 changed files with 47 additions and 10 deletions

39
scripts/check-translations.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/bash
differences_found=0
# Extract keys from the reference file and sort them
sort <(awk -F':' '{print $1}' internal/i18n/locales/en-US.yml) > sorted_reference_keys.txt
sed -i '/^\s*$/d' sorted_reference_keys.txt
for new_file in internal/i18n/locales/*.yml; do
filename=$(basename $new_file)
echo ""
echo "Checking $filename..."
# Extract keys from the current file and sort them
sort <(awk -F':' '{print $1}' $new_file) > sorted_new_keys.txt
sed -i '/^\s*$/d' sorted_new_keys.txt
comm -3 sorted_reference_keys.txt sorted_new_keys.txt > differences.txt
if [ -s differences.txt ]; then
echo "Error in $filename: The YAML file has differences in keys."
while IFS= read -r line; do
if [[ $line == $'\t'* ]]; then
echo "+ Additional key in $filename: $(echo $line | awk '{$1=$1; print}')"
else
echo "- Missing key in $filename: $(echo $line | awk '{$1=$1; print}')"
fi
done < differences.txt
differences_found=1
else
echo "All keys in $filename match perfectly."
fi
rm sorted_new_keys.txt
done
rm sorted_reference_keys.txt differences.txt
exit $differences_found