From 61d0c4d88fc96614523b6099605c374c1e35f976 Mon Sep 17 00:00:00 2001 From: Htylol Date: Wed, 18 Sep 2024 03:44:12 +0500 Subject: [PATCH] po_file for LANGUAGE en now use .pot file --- data_from_portwine/scripts/functions_helper | 46 ++++++++++++--------- data_from_portwine/scripts/start.sh | 3 +- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index a149d5a..d112f30 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -103,9 +103,11 @@ generate_pot () { sed 's/{translations\[/(gettext \"/g' setup.sh > setup.sh_tmp sed -i 's/]}/")/g' setup.sh_tmp - #fixes когда присходит предупреждение: синтаксис $"..." запрещен по соображениям безопасности; используйте eval_gettext + + #Когда присходит предупреждение: синтаксис $"..." запрещен по соображениям безопасности; используйте eval_gettext #удаляется строка без переводов и этим предупреждением (сейчас их всего 3) sed -i '/basename_portwine_exe/d' functions_helper_tmp + for lang in $LANGUAGES_LIST do echo "${lang}" @@ -146,40 +148,48 @@ TRANSLATIONS_VER=$scripts_install_ver declare -A translations=( EOF if [[ $LANGUAGE == "en" ]] ; then - po_file="${PORT_WINE_PATH}/data/locales/ru/LC_MESSAGES/PortProton.po" + po_file="${PORT_WINE_PATH}/data/locales/PortProton.pot" else po_file="${PORT_WINE_PATH}/data/locales/$LANGUAGE/LC_MESSAGES/PortProton.po" fi while IFS= read -r line ; do - while [[ "$line" =~ msgid ]] ; do + while [[ $line =~ msgid ]] ; do unset msgid msgid="$line" read -r line - while [[ ! "$line" =~ msgstr ]] ; do + while [[ ! $line =~ msgstr ]] ; do msgid+="$line" read -r line done - if [[ "$line" =~ msgstr ]]; then + if [[ $line =~ msgstr ]]; then if [[ $LANGUAGE == "en" ]] ; then + if [[ $msgid == "msgid \"\"" ]] ; then + continue + fi msgstr="$msgid" else unset msgstr msgstr="$line" read -r line - while [[ ! "$line" =~ msgid ]] ; do - msgstr+="$line" + while [[ ! $line =~ msgid ]] ; do + msgstr+=$line read -r line + if [[ $line == "" ]] ; then + break + fi done fi fi - msgstr=${msgstr//"msgstr "/} + if [[ $LANGUAGE != "en" ]] ; then + msgstr=${msgstr//"msgstr "/} + msgid=${msgid//"msgid "/} + fi msgstr=${msgstr//" "/-_-} msgstr=${msgstr//"\n"\"\"/+_+} msgstr=${msgstr//\"\"/} msgstr=${msgstr//#*/} msgstr=${msgstr//"*"/#_#} - msgid=${msgid//"msgid "/} msgid=${msgid//" "/-_-} msgid=${msgid//"\n"\"\"/+_+} msgid=${msgid//\"\"/} @@ -192,19 +202,17 @@ EOF echo \["$msgid"\]="$msgid" >> "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" fi fi - if [[ -z $msgid ]] && [[ -z $msgstr ]] ; then - echo ")" >> "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" - sed -i 's/+_+/\n/g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" - sed -i 's/#_#/\*/g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" - sed -i 's/-_-/ /g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" - if [[ $LANGUAGE == "en" ]] ; then - sed -i 's/msgid //g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" - fi - return 0 - fi done done < "$po_file" + IFS="$orig_IFS" + echo ")" >> "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" + sed -i 's/+_+/\n/g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" + sed -i 's/#_#/\*/g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" + sed -i 's/-_-/ /g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" + if [[ $LANGUAGE == "en" ]] ; then + sed -i 's/msgid //g' "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" + fi } export -f create_translations diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index c2392c4..951a3be 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -172,10 +172,9 @@ unset translations # shellcheck source=/dev/null source "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" -if [[ "$TRANSLATIONS_VER" != "$scripts_install_ver" ]] ; then +if [[ $TRANSLATIONS_VER != "$scripts_install_ver" ]] ; then try_remove_dir "${PORT_SCRIPTS_PATH}/translations" create_translations - unset translations # shellcheck source=/dev/null source "${PORT_SCRIPTS_PATH}/translations/$LANGUAGE" fi