From 853fced969e6b5f5b9e35f5a7a983791e519313d Mon Sep 17 00:00:00 2001 From: Robert Pelnar <robert.pelnar@seznam.cz> Date: Thu, 1 Nov 2018 17:29:26 +0100 Subject: [PATCH] lang - script for adding new texts to dictionaries --- lang/lang-add.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 lang/lang-add.sh diff --git a/lang/lang-add.sh b/lang/lang-add.sh new file mode 100644 index 00000000..913b6eee --- /dev/null +++ b/lang/lang-add.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# +# lang-add.sh - multi-language support script +# add new texts from list (lang_add.txt) to all dictionary files +# +# Input files: +# lang_add.txt +# Updated files: +# lang_en.txt and all lang_en_xx.txt +# + +# insert single text to english dictionary +# $1 - text to insert +insert_en() +{ + # extract english texts, merge new text, grep line number + ln=$((cat lang_en.txt; echo $1) | sed "/^$/d;/^#/d" | sort | grep -n "$1" | sed "s/:.*//") + # calculate position for insertion + ln=$((3*(ln-2)+1)) + # 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 +} + +# insert single text to translated dictionary +# $1 - text to insert +# $2 - sufix +insert_xx() +{ + ln=$((cat lang_en_$2.txt; echo $1) | sed "/^$/d;/^#/d" | sed -n 'p;n' | sort | grep -n "$1" | sed "s/:.*//") + ln=$((4*(ln-2)+1)) + 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 +} + +# check if input file exists +if ![ -e lang_add.txt ]; then + echo "file lang_add.txt not found" + exit 1 +fi + +cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do + if grep "$new_s" lang_en.txt >/dev/nul; then + echo "text already exist:" + echo "$new_s" + echo + else + echo "adding text:" + echo "$new_s" + echo + insert_en "$new_s" + insert_xx "$new_s" 'cz' + fi +done + +exit 0 \ No newline at end of file