opengist/scripts/check-translations.sh
2024-05-11 21:02:57 +02:00

39 lines
1.2 KiB
Bash
Executable file

#!/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