diff --git a/lang/make_lang.sh b/lang/make_lang.sh index a068c773..74cffcd9 100644 --- a/lang/make_lang.sh +++ b/lang/make_lang.sh @@ -20,34 +20,26 @@ if [ -z "$LANG" ]; then LANG='cz'; fi # # -if [ "$LANG" == "all" ]; then - ./make_lang.sh cz - ./make_lang.sh de - ./make_lang.sh es - ./make_lang.sh it - ./make_lang.sh pl - exit 0 -fi - -function finish +finish() { - if [ "$1" == "0" ]; then + if [ $1 -eq 0 ]; then if [ -e lang_en.tmp ]; then rm lang_en.tmp; fi if [ -e lang_en_$LANG.tmp ]; then rm lang_en_$LANG.tmp; fi if [ -e lang_en_$LANG.dif ]; then rm lang_en_$LANG.dif; fi fi - echo - if [ "$1" == "0" ]; then +# echo >&2 + if [ $1 -eq 0 ]; then echo "make_lang.sh finished with success" >&2 else echo "make_lang.sh finished with errors!" >&2 fi - case "$-" in - *i*) echo "press enter key"; read ;; - esac exit $1 } +make_lang() +{ +LANG=$1 + echo "make_lang.sh started" >&2 echo "selected language=$LANG" >&2 @@ -84,7 +76,7 @@ echo -n " generating lang_$LANG.dat..." >&2 cat lang_$LANG.txt | sed "s/\\\\/\\\\\\\\/g" | while read s; do s=${s#\"} s=${s%\"} - echo -n -e "$s"'\x00' + /bin/echo -e -n "$s\x00" done >lang_$LANG.dat echo "OK" >&2 @@ -114,22 +106,22 @@ awk_ui16='{ h=int($1/256); printf("\\x%02x\\x%02x\n", int($1-256*h), h); }' #write data to binary file with dd echo -n " writing header (16 bytes)..." >&2 -echo -n -e "$lt_magic" |\ +/bin/echo -n -e "$lt_magic" |\ dd of=lang_$LANG.bin bs=1 count=4 seek=0 conv=notrunc 2>/dev/null -echo -n -e $(echo -n "$lt_size" | awk "$awk_ui16") |\ +/bin/echo -n -e $(echo -n "$lt_size" | awk "$awk_ui16") |\ dd of=lang_$LANG.bin bs=1 count=2 seek=4 conv=notrunc 2>/dev/null -echo -n -e $(echo -n "$lt_count" | awk "$awk_ui16") |\ +/bin/echo -n -e $(echo -n "$lt_count" | awk "$awk_ui16") |\ dd of=lang_$LANG.bin bs=1 count=2 seek=6 conv=notrunc 2>/dev/null -echo -n -e $(echo -n "$lt_chsum" | awk "$awk_ui16") |\ +/bin/echo -n -e $(echo -n "$lt_chsum" | awk "$awk_ui16") |\ dd of=lang_$LANG.bin bs=1 count=2 seek=8 conv=notrunc 2>/dev/null -echo -n -e "$lt_resv0" |\ +/bin/echo -n -e "$lt_resv0" |\ dd of=lang_$LANG.bin bs=1 count=2 seek=10 conv=notrunc 2>/dev/null -echo -n -e "$lt_resv1" |\ +/bin/echo -n -e "$lt_resv1" |\ dd of=lang_$LANG.bin bs=1 count=4 seek=12 conv=notrunc 2>/dev/null echo "OK" >&2 echo -n " writing offset table ($lt_offs_size bytes)..." >&2 -echo -n -e $(cat lang_$LANG.ofs | awk "$awk_ui16" | tr -d '\n'; echo) |\ +/bin/echo -n -e $(cat lang_$LANG.ofs | awk "$awk_ui16" | tr -d '\n'; echo) |\ dd of=./lang_$LANG.bin bs=1 count=$lt_offs_size seek=16 conv=notrunc 2>/dev/null echo "OK" >&2 @@ -141,8 +133,19 @@ echo " lang_table details:" >&2 echo " lt_count = $lt_count" >&2 echo " lt_size = $lt_size" >&2 echo " lt_chsum = $lt_chsum" >&2 +} + +echo $LANG + +if [ "$LANG" = "all" ]; then + make_lang cz + make_lang de + make_lang es + make_lang it + make_lang pl + exit 0 +else + make_lang $LANG +fi finish 0 - - - diff --git a/lang/po/make_po.sh b/lang/po/make_po.sh index 0576d8be..740a4183 100644 --- a/lang/po/make_po.sh +++ b/lang/po/make_po.sh @@ -81,19 +81,19 @@ cat ../lang_en_$LANG.txt | sed "s/\\\\/\\\\\\\\/g;s/^#/#: /" | while read -r s; if [ "$s" == "" ]; then echo " processing $num of $num_texts" >&2 if [ "$s0" == "\"\\\\x00\"" ]; then - search=$(echo -e "$s1") + search=$(/bin/echo -e "$s1") found=$(grep -m1 -n -F "$search" $files | head -n1 | cut -f1-2 -d':' | sed "s/^.*\///") echo "#: $found" echo "#, fuzzy" - echo -e "msgid $s1" + /bin/echo -e "msgid $s1" echo 'msgstr ""' echo else - search=$(echo -e "$s1") + search=$(/bin/echo -e "$s1") found=$(grep -m1 -n -F "$search" $files | head -n1 | cut -f1-2 -d':' | sed "s/^.*\///") echo "#: $found" - echo -e "msgid $s1" - echo -e "msgstr $s0" + /bin/echo -e "msgid $s1" + /bin/echo -e "msgstr $s0" echo fi num=$((num+1)) diff --git a/lang/progmem.sh b/lang/progmem.sh index d63a61b3..cfe62984 100644 --- a/lang/progmem.sh +++ b/lang/progmem.sh @@ -14,7 +14,7 @@ # $PROGMEM.hex - variables - hex # $PROGMEM.chr - variables - char escape # $PROGMEM.var - variables - strings -# $PROGMEM.txt - text data only +# $PROGMEM.txt - text data only (not used) # # # Config: @@ -86,7 +86,7 @@ echo " progmem.sh (5) - calculating start and stop address" >&2 #calculate start addres of section ".$PROGMEM" PROGMEM_BEG=$(head -n1 $PROGMEM.sym | while read offs size name; do echo "0x"$offs; done) #calculate stop addres of section ".$PROGMEM" -PROGMEM_END=$(tail -n1 $PROGMEM.sym | while read offs size name; do printf "0x%x" $(("0x"$offs + "0x"$size)); done) +PROGMEM_END=$(tail -n1 $PROGMEM.sym | while read offs size name; do printf "0x%x" $((0x$offs + 0x$size)); done) echo " START address = "$PROGMEM_BEG >&2 echo " STOP address = "$PROGMEM_END >&2 @@ -112,8 +112,9 @@ echo " progmem.sh (7) - preparing string data" >&2 # replace all tabs with spaces cat $PROGMEM.hex | sed 's/ /\t/;s/ /\t /;s/ /\\x/g;s/\t/ /g' > $PROGMEM.chr + # (8) -#convert $PROGMEM.chr to $PROGMEM.var (convert data to text) +#convert $PROGMEM.chr to $PROGMEM.var (convert data to text, TODO: rewrite as awk script) echo " progmem.sh (8) - converting string data" >&2 cat $PROGMEM.chr | \ sed 's/ \\xff\\xff/ /;' | \ @@ -121,8 +122,10 @@ cat $PROGMEM.chr | \ sed 's/\\x1b/\\\\\\x1b/g;' | \ sed 's/\\x01/\\\\\\x01/g;' | \ sed 's/\\xf8/\\\\\\xf8/g;' | \ - sed 's/\\x00$/\\x0a/;s/^/printf "/;s/$/"/' | sh > $PROGMEM.var -cat $PROGMEM.var | sed 's/\r/\n/g' |sed -E 's/^[0-9a-f]{8} [^ ]* //' >$PROGMEM.txt + sed 's/\\x00$//;s/^/echo -e "/;s/$/"/' | sh > $PROGMEM.var + +#this step can be omitted because .txt file is not used +#cat $PROGMEM.var | sed 's/\r/\n/g' |sed -E 's/^[0-9a-f]{8} [^ ]* //' >$PROGMEM.txt echo "progmem.sh finished" >&2