12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/sh
- #
- # make_po.sh - multi-language support script
- # for generating lang_xx.po
- #
- SRCDIR="../../Firmware"
- #
- LANG=$1
- if [ -z "$LANG" ]; then LANG=cz; fi
- #
- echo "make_po.sh started" >&2
- #remove output file if exists
- if [ -e lang_$LANG.po ]; then rm lang_$LANG.po; fi
- langname=$(\
- case "$LANG" in
- *en*) echo "English" ;;
- *cz*) echo "Czech" ;;
- *de*) echo "German" ;;
- *it*) echo "Italian" ;;
- *es*) echo "Spanish" ;;
- *pl*) echo "Polish" ;;
- esac)
- #write po header
- echo "# Translation into $langname." > lang_$LANG.po
- echo "#" >> lang_$LANG.po
- echo 'msgid ""' >> lang_$LANG.po
- echo 'msgstr ""' >> lang_$LANG.po
- echo '"MIME-Version: 1.0\n"' >> lang_$LANG.po
- echo '"Content-Type: text/plain; charset=UTF-8\n"' >> lang_$LANG.po
- echo '"Content-Transfer-Encoding: 8bit\n"' >> lang_$LANG.po
- echo >> lang_$LANG.po
- #list .cpp, .c and .h files
- files=$(ls "$SRCDIR"/*.cpp "$SRCDIR"/*.c "$SRCDIR"/*.h)
- #loop over all messages, print only untranslated (=="\x00")
- s0=''
- s1=''
- s2=''
- cat ../lang_en_$LANG.txt | sed "s/\\\\/\\\\\\\\/g;s/^#/#: /" | while read -r s; do
- if [ "$s" == "" ]; then
- if [ "$s0" == "\"\\\\x00\"" ]; then
- search=$(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 'msgstr ""'
- echo
- fi
- fi
- s2=$s1
- s1=$s0
- s0=$s
- done >> lang_$LANG.po
- echo "make_po.sh finished" >&2
- exit 0
|