diff --git a/scripts/i18n.sh b/scripts/i18n.sh new file mode 100755 index 00000000..4d6de690 --- /dev/null +++ b/scripts/i18n.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +folder="src/i18n/locales" +base_file="$folder/en.json" + +# Get all leaf keys from the English base file +base_keys=$(jq -r 'paths(scalars) | map(tostring) | join(".")' "$base_file") +total=$(echo "$base_keys" | wc -l) + +# Loop through all JSON files in the folder +for file in "$folder"/*.json; do + name=$(basename "$file" .json) + translated_keys=$(jq -r 'paths(scalars) | map(tostring) | join(".")' "$file") + done=$(comm -12 <(echo "$base_keys" | sort) <(echo "$translated_keys" | sort) | wc -l) + percent=$((100 * done / total)) + check="[ ]" + [ "$percent" -eq 100 ] && check="[x]" + printf "%s %s (%d%%)\n" "- $check" "$name" "$percent" +done \ No newline at end of file