From 679730c9ed1d419ba96e95ada30de599330fe74f Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 30 Jun 2021 15:49:50 +0200 Subject: [PATCH 1/3] lang-add: avoid repetition for supported languages --- lang/lang-add.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lang/lang-add.sh b/lang/lang-add.sh index 9bd702b4..9439ae89 100755 --- a/lang/lang-add.sh +++ b/lang/lang-add.sh @@ -7,7 +7,12 @@ # lang_add.txt # Updated files: # lang_en.txt and all lang_en_xx.txt -# + +# List of supported languages +LANGUAGES="cz de es fr it pl" + +# Community languages +LANGUAGES+=" nl" #Dutch # Config: if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi @@ -68,14 +73,11 @@ cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do echo "adding text:" echo "$new_s" echo - #insert_en "$new_s" - for lang in $LANGUAGES; do - insert_xx "$new_s" "$lang" - done -#Use the 2 lines below as a template and replace 'qr' -##New language -# insert_xx "$new_s" 'qr' + insert_en "$new_s" + for lang in $LANGUAGES; do + insert_xx "$new_s" "$lang" + done fi done From a07b7291b49d4314ff7d497894aa9c00db283a54 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 30 Jun 2021 16:10:26 +0200 Subject: [PATCH 2/3] lang-add: handle duplicate translations and empty files --- lang/lang-add.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lang/lang-add.sh b/lang/lang-add.sh index 9439ae89..e4a67d66 100755 --- a/lang/lang-add.sh +++ b/lang/lang-add.sh @@ -31,9 +31,10 @@ insert_en() #replace '[' and ']' in string with '\[' and '\]' str=$(echo "$1" | sed "s/\[/\\\[/g;s/\]/\\\]/g") # extract english texts, merge new text, grep line number - ln=$((cat lang_en.txt; echo "$1") | sed "/^$/d;/^#/d" | sort | grep -n "$str" | sed "s/:.*//") + ln=$((cat lang_en.txt; echo "$1") | sed "/^$/d;/^#/d" | sort | grep -n "$str" | sed "s/:.*//;q") # calculate position for insertion ln=$((3*(ln-2)+1)) + [ "$ln" -lt 1 ] && ln=1 # insert new text sed -i "$ln"'i\\' lang_en.txt sed -i "$ln"'i\'"$1"'\' lang_en.txt @@ -48,9 +49,10 @@ insert_xx() #replace '[' and ']' in string with '\[' and '\]' str=$(echo "$1" | sed "s/\[/\\\[/g;s/\]/\\\]/g") # extract english texts, merge new text, grep line number - ln=$((cat lang_en_$2.txt; echo "$1") | sed "/^$/d;/^#/d" | sed -n 'p;n' | sort | grep -n "$str" | sed "s/:.*//") + ln=$((cat lang_en_$2.txt; echo "$1") | sed "/^$/d;/^#/d" | sed -n 'p;n' | sort | grep -n "$str" | sed "s/:.*//;q") # calculate position for insertion ln=$((4*(ln-2)+1)) + [ "$ln" -lt 1 ] && ln=1 # insert new text sed -i "$ln"'i\\' lang_en_$2.txt sed -i "$ln"'i\"\x00"\' lang_en_$2.txt From b9ca45fea1f4f602bc335c28f73004a71b4b04d8 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 30 Jun 2021 16:13:26 +0200 Subject: [PATCH 3/3] lang-add: add a *crude* metadata extractor --- lang/lang-add.sh | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lang/lang-add.sh b/lang/lang-add.sh index e4a67d66..3d26a2d9 100755 --- a/lang/lang-add.sh +++ b/lang/lang-add.sh @@ -26,6 +26,7 @@ echo "fw-clean languages:$LANGUAGES" >&2 # insert single text to english dictionary # $1 - text to insert +# $2 - metadata insert_en() { #replace '[' and ']' in string with '\[' and '\]' @@ -38,12 +39,13 @@ insert_en() # insert new text sed -i "$ln"'i\\' lang_en.txt sed -i "$ln"'i\'"$1"'\' lang_en.txt - sed -i "$ln"'i\#\' lang_en.txt + sed -i "${ln}i\\#$2" lang_en.txt } # insert single text to translated dictionary # $1 - text to insert -# $2 - sufix +# $2 - suffix +# $3 - metadata insert_xx() { #replace '[' and ']' in string with '\[' and '\]' @@ -57,7 +59,15 @@ insert_xx() sed -i "$ln"'i\\' lang_en_$2.txt sed -i "$ln"'i\"\x00"\' lang_en_$2.txt sed -i "$ln"'i\'"$1"'\' lang_en_$2.txt - sed -i "$ln"'i\#\' lang_en_$2.txt + sed -i "${ln}i\\#$3" lang_en_$2.txt +} + +# find the metadata for the specified string +# TODO: this is unbeliveably crude +# $1 - text to search for +find_metadata() +{ + sed -ne "s^.*\(_[iI]\|ISTR\)($1).*////\(.*\)^\2^p" ../Firmware/*.[ch]* | head -1 } # check if input file exists @@ -72,13 +82,14 @@ cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do echo "$new_s" echo else + meta=$(find_metadata "$new_s") echo "adding text:" - echo "$new_s" + echo "$new_s ($meta)" echo - insert_en "$new_s" + insert_en "$new_s" "$meta" for lang in $LANGUAGES; do - insert_xx "$new_s" "$lang" + insert_xx "$new_s" "$lang" "$meta" done fi done