forked from MarlinFirmware/Marlin
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extend findMissingTranslations, reformat output
- Loading branch information
1 parent
1dfe39f
commit b44f06a
Showing
1 changed file
with
35 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,42 @@ | ||
#!/bin/bash | ||
#!/usr/bin/env bash | ||
# | ||
# findMissingTranslations.sh | ||
# | ||
# Locate all language strings needing an update based on English | ||
# | ||
# Usage: findMissingTranslations.sh [language codes] | ||
# | ||
# If no language codes are specified then all languages will be checked | ||
# | ||
IGNORE_DEFINES="LANGUAGE_EN_H MAPPER_NON SIMULATE_ROMFONT DISPLAY_CHARSET_ISO10646_1 MSG_X MSG_Y MSG_Z MSG_E MSG_H1 MSG_H2 MSG_H3 MSG_H4 MSG_MOVE_E1 MSG_MOVE_E2 MSG_MOVE_E3 MSG_MOVE_E4 MSG_N1 MSG_N2 MSG_N3 MSG_N4 MSG_DIAM_E1 MSG_DIAM_E2 MSG_DIAM_E3 MSG_DIAM_E4 MSG_E1 MSG_E2 MSG_E3 MSG_E4" | ||
|
||
for i in `awk '/#define/{print $2}' language_en.h`; do | ||
for j in `ls language_*.h | grep -v language_en.h`; do | ||
t=$(grep -c "${i}" ${j}) | ||
if [ "$t" -eq 0 ]; then | ||
[ -d "Marlin" ] && cd "Marlin" | ||
|
||
LANG="$@" | ||
FILES=$(ls language_*.h | grep -v language_en.h | sed -E 's/language_([^\.]+)\.h/\1/') | ||
declare -A STRING_MAP | ||
|
||
echo -n "Building list of missing strings..." | ||
|
||
for i in $(awk '/#define/{print $2}' language_en.h); do | ||
LANG_LIST="" | ||
for j in $FILES; do | ||
[[ $j == "test" ]] && continue | ||
[[ -n $LANG && ! "${j}" =~ $LANG ]] && continue | ||
t=$(grep -c "define ${i} " language_${j}.h) | ||
if [[ $t -eq 0 ]]; then | ||
for k in ${IGNORE_DEFINES}; do | ||
[ "${k}" == "${i}" ] && continue 2; | ||
[[ $k == $i ]] && continue 2 | ||
done | ||
echo "${j},${i}" | ||
LANG_LIST="$LANG_LIST $j" | ||
fi | ||
done | ||
[[ -z $LANG_LIST ]] && continue | ||
STRING_MAP["$i"]="$LANG_LIST" | ||
done | ||
|
||
echo | ||
|
||
for K in $( printf "%s\n" "${!STRING_MAP[@]}" | sort ); do | ||
printf "%-35s :%s\n" "$K" "${STRING_MAP[$K]}" | ||
done |