seems to be the last RC - this app is done - so am I

This commit is contained in:
nocci 2025-05-09 14:34:33 +02:00
parent 1506201913
commit f5b184fe54
37 changed files with 1932 additions and 661 deletions

View file

@ -5,37 +5,34 @@ APP_DIR="steam-gift-manager"
TRANSLATION_DIR="$APP_DIR/translations"
LANGS=("de" "en")
# Prüfe jq
# check jq
if ! command -v jq &>/dev/null; then
echo "❌ jq is required. Install with: sudo apt-get install jq"
exit 1
fi
# 1. Lege JSON-Dateien an, falls sie fehlen
echo -e "\n\033[1;32m✅ Extracting translations...\033[0m"
# 1. create json files
mkdir -p "$TRANSLATION_DIR"
for lang in "${LANGS[@]}"; do
file="$TRANSLATION_DIR/$lang.json"
if [ ! -f "$file" ]; then
echo "{}" > "$file"
echo "Created $file"
fi
[ -f "$file" ] || echo "{}" > "$file"
done
# 2. Extrahiere alle zu übersetzenden Strings
STRINGS=$(grep -rhoP "_\(\s*['\"](.+?)['\"]\s*\)" \
# 2. extract all strings
STRINGS=$(grep -rhoP "_\(\s*['\"]((?:[^']|'[^'])*?)['\"]\s*[,)]" \
"$APP_DIR/templates" "$APP_DIR/app.py" | \
sed -E "s/_\(\s*['\"](.+?)['\"]\s*\)/\1/" | sort | uniq)
sed -E "s/_\(\s*['\"](.+?)['\"]\s*[,)]/\1/" | sort | uniq)
# 3. Ergänze neue Keys in die JSON-Dateien
# 3. put da keys in da json
for lang in "${LANGS[@]}"; do
file="$TRANSLATION_DIR/$lang.json"
tmp="$file.tmp"
cp "$file" "$tmp"
while IFS= read -r key; do
if ! jq -e --arg k "$key" 'has($k)' "$tmp" >/dev/null; then
jq --arg k "$key" '. + {($k): ""}' "$tmp" > "$tmp.new" && mv "$tmp.new" "$tmp"
fi
done <<< "$STRINGS"
jq --argjson keys "$(echo "$STRINGS" | jq -R . | jq -s .)" \
'reduce $keys[] as $k (.; .[$k] = (.[$k] // ""))' "$file" > "$tmp"
mv "$tmp" "$file"
echo "Updated $file"
done
echo "✅ JSON translation files updated. Please enter your translations!"
echo -e "\n\033[1;32m✅ Done! Translation keys added.\033[0m"