Ground-Zerro / Phobos Public
Code Issues Pull requests Actions Releases View on GitHub ↗
655 B bash
#!/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