colobot-data/tools/patchLokalizeWrapping.sh

59 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Author : BCE - 1905 - 1906
#
# correction into i18n po files.
# restablish fake wrapping done by lokalize...
# checking non existing save
# preventively creating a save before eventual modifications
# and removing it if no alteration
#
# Histo
# V0.1
# base
# non treatment for po commented lines
# ...
# V1.0
# checking save don't exist => checking non existing save
# + trace only for modified files
# issue : sometimes to launch twice...
#
lg=fr # language digramme xx.po
# forcing a save name (v 0.2)
# sav=sav0 # permit indental saves use sav, sav1, sav2, ... (v 0.2)
# for fic in $(find . -name $lg.po |sort) ; do
# [[ -e $fic.$sav ]] &&
# echo -e "=== $fic.$sav preexist\n\t\t ABANDON" >&2 &&
# exit -1
# done
# autofinding a non used savename (v 1.0)
echo "Seeking for a non used save name..." >&2
i=0
while : ; do
j=$i
sav=sav$i # permit indental saves use sav1, sav2, ...
nb=$(find . -name $lg.po.$sav -print -quit 2> /dev/null | wc -l)
[[ $nb -eq 0 ]] && break
(( ++i ))
done
echo "OK, no save $sav preexist ! => processing saving $lg.po into $lg.po.$sav" >&2
sleep 1
# -exec echo " == restablishing {} ==" >&2 \; \
find . -name $lg.po -type f \
-exec sed -i.$sav \
-e '/^[^#]/ s/\\n\([^"]\)/\\n"\n"\1/g' \
-e '/^msgid "[^"]/ N;s/^msgid \("[^\n]\+"\)\n"/msgid ""\n\1\n"/' \
-e '/^msgstr "[^"]/ N;s/^msgstr \(".\+"\)\n"/msgstr ""\n\1\n"/' \
-e '/^[^#]/ s/\\n\([^"]\)/\\n"\n"\1/g' \
{} \; \
-exec bash -c '[[ $(diff {} {}.'$sav' 2>/dev/null | wc -l ) == 0 ]] && rm {}.'$sav' || echo " cleaning {} !!" >&2' \;
# note : doubling s/\\n\([^"]\)/../g to cover the case : ".*\\n\\n.*"
echo "!! END $0 !" >&2