summaryrefslogtreecommitdiffstats
path: root/po/check_for_tutorial_problems.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:24:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:24:48 +0000
commitcca66b9ec4e494c1d919bff0f71a820d8afab1fa (patch)
tree146f39ded1c938019e1ed42d30923c2ac9e86789 /po/check_for_tutorial_problems.sh
parentInitial commit. (diff)
downloadinkscape-cca66b9ec4e494c1d919bff0f71a820d8afab1fa.tar.xz
inkscape-cca66b9ec4e494c1d919bff0f71a820d8afab1fa.zip
Adding upstream version 1.2.2.upstream/1.2.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/check_for_tutorial_problems.sh')
-rwxr-xr-xpo/check_for_tutorial_problems.sh113
1 files changed, 113 insertions, 0 deletions
diff --git a/po/check_for_tutorial_problems.sh b/po/check_for_tutorial_problems.sh
new file mode 100755
index 0000000..f38442a
--- /dev/null
+++ b/po/check_for_tutorial_problems.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+# check the main Inkscape tree for tutorial-related problems
+
+#
+# usage() : short help
+#
+usage() { cat <<EOF
+Usage :
+ $0 [--help] [--base-dir] languages
+EOF
+}
+
+LANG=C
+LC_ALL=C
+user_lang=
+base_dir="$(pwd)/.."
+
+# Command line options
+while test $# -gt 0
+do
+ case $1 in
+ -h | --help)
+ usage
+ exit 0
+ ;;
+ -b | --base-dir)
+ shift
+ base_dir=$1
+ ;;
+ -*) echo "$0 : invalid option $1" >&2
+ usage
+ exit 1
+ ;;
+ *)
+ user_lang="$@"
+ break
+ ;;
+ esac
+ shift
+done
+
+echo $base_dir
+if [ ! -e "$base_dir/po" ]
+ then
+ echo "$base_dir is not a valid inkscape base"
+ exit 0
+fi
+
+# First pass to detect invalid links to installed tutorials (trailing
+# space, typo...).
+echo "===== Checking tutorials links in PO files ======"
+
+if [ "$user_lang" ]
+ then PO_FILE_LIST="$user_lang"
+ else PO_FILE_LIST=`ls -1 "$base_dir/po/" | grep "\.po$" | sort`
+fi
+
+echo "$PO_FILE_LIST" |\
+while read PO_FILENAME; do
+ echo "----- $PO_FILENAME -----------------------------------"
+ TRANSLATIONS_IN_CURRENT_PO=`cat "$base_dir/po/$PO_FILENAME" | grep -A 1 "^msgid\ \"tutorial-[^.]*\.svg\""`
+ UNTRANSLATED_COUNT=`echo "$TRANSLATIONS_IN_CURRENT_PO" | grep -c "^msgstr \"\""`
+ if [ $UNTRANSLATED_COUNT -gt 0 ]; then
+ echo "$PO_FILENAME has $UNTRANSLATED_COUNT untranslated tutorial filenames"
+ fi
+ echo "$TRANSLATIONS_IN_CURRENT_PO" | grep -v "^msgstr \"\"" |\
+ grep "^msgstr \"" |\
+ while read TUTORIAL_FILENAME_TRANSLATION_LINE; do
+ TUTORIAL_FILENAME_TRANSLATION=`echo "$TUTORIAL_FILENAME_TRANSLATION_LINE" |\
+ sed 's/^msgstr \"\(.*\)\"[ ]*$/\1/'`
+ if [ ! -e "$base_dir/share/tutorials/$TUTORIAL_FILENAME_TRANSLATION" ]; then
+ echo -n "$PO_FILENAME references \"$TUTORIAL_FILENAME_TRANSLATION\""
+ echo " ERROR: THE REFERENCED FILE DOESN'T EXIST, PLEASE CHECK"
+ fi
+ done
+ echo
+done
+
+# Second pass to check if a tutorial for a language exists but is not
+# linked in the PO file.
+echo
+echo "===== Checking tutorials not referenced in PO files ======"
+TUTORIAL_FILE_LIST=`ls -1 "$base_dir/share/tutorials/" | grep "^tutorial-[^.]*\...\.svg$" | sort`
+
+echo "$TUTORIAL_FILE_LIST" |\
+while read TUTORIAL_FILENAME; do
+ LANGUAGE_CODE=`echo "$TUTORIAL_FILENAME" | sed 's/^tutorial-[^.]*\.\(..\)\.svg$/\1/'`
+ if [ -e "$base_dir/po/$LANGUAGE_CODE.po" ]; then
+ TRANSLATIONS_IN_CURRENT_PO=`cat "$base_dir/po/$LANGUAGE_CODE.po" | grep -A 1 "^msgid\ \"tutorial-[^.]*\.svg\""`
+ echo "$TRANSLATIONS_IN_CURRENT_PO" | grep -q "^msgstr \"$TUTORIAL_FILENAME\""
+ if [ $? -ne 0 ]; then
+ echo "WARNING: $TUTORIAL_FILENAME IS NOT REFERENCED IN $LANGUAGE_CODE.po"
+ fi
+ else
+ echo "WARNING: \"$LANGUAGE_CODE.po\" FILE NOT FOUND"
+ fi
+done
+
+# Last pass to check if tutorials are correctly added in Makefile.am
+echo
+echo "===== Checking Makefile.am ======"
+TUTORIAL_DIRECTORY_FILELIST=`ls -1 "$base_dir/share/tutorials/" | grep -v "^Makefile.am$" | sort`
+
+echo "$TUTORIAL_DIRECTORY_FILELIST" |\
+while read TUTORIAL_DIRECTORY_FILENAME; do
+ cat "$base_dir/share/tutorials/Makefile.am" | grep -q "^ $TUTORIAL_DIRECTORY_FILENAME "
+ if [ $? -ne 0 ]; then
+ cat "$base_dir/share/tutorials/Makefile.am" | grep -q "^ $TUTORIAL_DIRECTORY_FILENAME$"
+ if [ $? -ne 0 ]; then
+ echo "WARNING: $TUTORIAL_DIRECTORY_FILENAME IS NOT IN Makefile.am"
+ fi
+ fi
+done