diff -r c9cdbf630447 -r 3f3ad415d849 tools/update_lua_locale_files.sh --- a/tools/update_lua_locale_files.sh Wed Mar 07 15:09:31 2018 +0100 +++ b/tools/update_lua_locale_files.sh Wed Mar 07 15:47:03 2018 +0100 @@ -30,12 +30,18 @@ cd ../share/hedgewars/Data/Locale; +# Temporary files +TEMP_LOC=$(mktemp); +TEMP_HEAD=$(mktemp); +TEMP_TAIL=$(mktemp); +TEMP_LUA=$(mktemp); + # Collect strings echo "Step 1: Collect strings"; -echo -n "" > __temp_loc; +echo -n "" > $TEMP_LOC; for F in loc loc_noop; do - grep -F "$F(\"" $LUAFILES | sed 's/")/")\n/g' | sed "s/.*$F(\"/loc(\"/;s/\").*/\")/" | grep loc | sort | uniq >> __temp_loc; + grep -F "$F(\"" $LUAFILES | sed 's/")/")\n/g' | sed "s/.*$F(\"/loc(\"/;s/\").*/\")/" | grep loc | sort | uniq >> $TEMP_LOC; done # Update locale files @@ -44,7 +50,7 @@ for i in $LOCALEFILES; do echo $i; - cat __temp_loc | while read f + cat $TEMP_LOC | while read f do STR=$(echo "$f" | sed 's/loc("//;s/")\s*$//;s/"/\\"/g'); MAPS=$(grep -F -l -- "loc(\"${STR}\")" $LUAFILES | sed 's/.*\/\([^\/]*\)\/map.lua/\1/;s/.*Campaign\/\([^\/]*\)\//\1:/;s/.*\///;s/.lua//;s/ /_/g' | xargs | sed 's/ /, /g'); @@ -67,11 +73,11 @@ for i in $LOCALEFILES; do echo $i; - rm -f __temp_head __temp_tail __temp_lua; - cat $i | grep -Ev "}|{" | grep -Ev "^[[:space:]]*$" | sort | uniq > __temp_lua; - echo "locale = {" > __temp_head; - echo "}" > __temp_tail; - cat __temp_head __temp_lua __temp_tail > $i; + rm -f $TEMP_HEAD $TEMP_TAIL $TEMP_LUA; + cat $i | grep -Ev "}|{" | grep -Ev "^[[:space:]]*$" | sort | uniq > $TEMP_LUA; + echo "locale = {" > $TEMP_HEAD; + echo "}" > $TEMP_TAIL; + cat $TEMP_HEAD $TEMP_LUA $TEMP_TAIL > $i; done # Drop unused @@ -79,7 +85,7 @@ cat stub.lua | grep '"] =' | while read f; do PHRASE=$(echo "$f" | sed 's/[^[]*\["//;s/"] =.*//;s/"/\\"/g'); - CNT=$(grep -Frc "loc(\"$PHRASE\")" __temp_loc); + CNT=$(grep -Frc "loc(\"$PHRASE\")" $TEMP_LOC); if (($CNT==0)); then echo "|$PHRASE|"; @@ -89,6 +95,6 @@ done # Delete temporary files -rm __temp_head __temp_tail __temp_lua __temp_loc; +rm $TEMP_HEAD $TEMP_TAIL $TEMP_LUA $TEMP_LOC; echo "Done."