Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2777 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
34 lines
No EOL
1.2 KiB
Bash
Executable file
34 lines
No EOL
1.2 KiB
Bash
Executable file
#!/bin/sh -e
|
|
|
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
ANDROID=src/android/app/src/main
|
|
STRINGS=$ANDROID/res/values/strings.xml
|
|
|
|
TMP_DIR=$(mktemp -d)
|
|
|
|
SRC="$TMP_DIR"/src
|
|
LOCALES="$TMP_DIR"/locales
|
|
TRANSLATED="$TMP_DIR"/translated
|
|
COMBINED="$TMP_DIR"/combined
|
|
|
|
# We start out by getting the list of source strings so we can compare all locale strings to this
|
|
grep -e "string name" $STRINGS | grep -v 'translatable="false"' | cut -d'"' -f2 > "$SRC"
|
|
|
|
# ... then we determine what locales to check
|
|
find $ANDROID/res/values-* -name 'strings.xml' > "$LOCALES"
|
|
|
|
while IFS= read -r locale; do
|
|
echo "Locale $(echo "$locale" | cut -d"-" -f2- | cut -d"/" -f1)"
|
|
grep -e "string name" "$locale" | cut -d'"' -f2 > "$TRANSLATED"
|
|
cat "$TRANSLATED" "$SRC" | sort | uniq -u > "$COMBINED"
|
|
|
|
# This will also include strings that are present in the source but NOT translated, so we filter those out now:
|
|
while IFS= read -r unused; do
|
|
{ grep -e "string name=\"$unused\"" "$STRINGS" >/dev/null; } || \
|
|
{ echo "-- Removing unused translation $unused" && sed "/string name=\"$unused\"/d" "$locale" > "$locale.new" && mv "$locale.new" "$locale"; }
|
|
done < "$COMBINED"
|
|
|
|
echo "-- done"
|
|
done < "$LOCALES" |