Simplify gen_levels_xml for increased resistance
parent
526a7d2a77
commit
507e7d0530
|
@ -9,8 +9,7 @@ if [ -z "$outdir" ] || [ "$outdir" = "." ] || [ ! -d $outdir ]; then
|
|||
return 1;
|
||||
fi
|
||||
|
||||
linguas="en fr" # pl"
|
||||
linguas_onechar="E F" # P"
|
||||
linguas="en fr"
|
||||
|
||||
categories="defi free lost perso proto"
|
||||
for sc_i in $(seq 1 9); do
|
||||
|
@ -35,31 +34,20 @@ fi
|
|||
|
||||
levelfile=$(echo $levelfileorig | sed -e "s/\.txt$//g")
|
||||
|
||||
for lang in $linguas_onechar; do
|
||||
dot="."
|
||||
langcode=""
|
||||
src_dotlang=".$lang"
|
||||
case $lang in
|
||||
E) dot="";;
|
||||
F) langcode=fr;;
|
||||
P) langcode=pl;;
|
||||
esac
|
||||
dest_dotlang="$dot$langcode"
|
||||
destfile=$levelfile$dest_dotlang.xml;
|
||||
allsfile=$common_i18n_file$dest_dotlang.$common_i18n_ext;
|
||||
destfile=$levelfile.xml;
|
||||
allsfile=$common_i18n_file.$common_i18n_ext;
|
||||
|
||||
echo "<$levelfile>" > $destfile
|
||||
echo "<h1><!-- Level: $levelfile --></h1>" >> $allsfile
|
||||
for key in Title Resume ScriptName; do
|
||||
for subkey in text resume; do
|
||||
subval=$(grep "^$key$src_dotlang.*$subkey" $levelfileorig | sed -e "s/^.*$subkey=\"\([^\"]*\)\".*$/\1/")
|
||||
# Always write entries, even when empty, otherwise breaks po4a-gettextize
|
||||
echo "<${key}_$subkey>$levelfile:$subval</${key}_$subkey>" >> $destfile
|
||||
echo "<p type=\"$key $subkey\">$levelfile:$subval</p>" >> $allsfile
|
||||
done
|
||||
echo "<$levelfile>" > $destfile
|
||||
echo "<h1><!-- Level: $levelfile --></h1>" >> $allsfile
|
||||
for key in Title Resume ScriptName; do
|
||||
for subkey in text resume; do
|
||||
subval=$(grep "^$key\.E.*$subkey" $levelfileorig | sed -e "s/^.*$subkey=\"\([^\"]*\)\".*$/\1/")
|
||||
# Always write entries, even when empty, otherwise breaks po4a-gettextize
|
||||
echo "<${key}_$subkey>$levelfile:$subval</${key}_$subkey>" >> $destfile
|
||||
echo "<p type=\"$key $subkey\">$levelfile:$subval</p>" >> $allsfile
|
||||
done
|
||||
echo "</$levelfile>" >> $destfile
|
||||
done
|
||||
echo "</$levelfile>" >> $destfile
|
||||
|
||||
echo "[type:xml] $levelfile.xml \$lang:$levelfile.\$lang.xml" >> $common_i18n_file-po4a.cfg
|
||||
|
||||
|
@ -68,12 +56,13 @@ echo -n "."
|
|||
|
||||
echo "* Cleanup"
|
||||
|
||||
rm -f *.xml
|
||||
rm -f *po4a.cfg
|
||||
|
||||
for category in $categories; do
|
||||
echo "* Category: $category "
|
||||
|
||||
rm -f $category*.xml
|
||||
rm -f $category-po4a.cfg
|
||||
|
||||
echo " 0 - Create initial files"
|
||||
|
||||
echo "[po_directory] $category-po/" > $category-po4a.cfg
|
||||
|
@ -105,11 +94,9 @@ echo "* Category: $category "
|
|||
echo "</body></html>" >> $category.$lang.$common_i18n_ext
|
||||
pofile=$category-po/$lang.po
|
||||
if [ ! -f $pofile ]; then
|
||||
po4a-gettextize -M UTF-8 -L UTF-8 -f xhtml -m $category.$common_i18n_ext -l $category.$lang.$common_i18n_ext > $pofile
|
||||
sed -e 's/, fuzzy//g' -i $pofile
|
||||
else
|
||||
po4a-updatepo -M UTF-8 -f xhtml -m $category.$common_i18n_ext -p $pofile 2>/dev/null
|
||||
sed -e 's/charset=CHARSET/charset=UTF-8/g' $category-po/$category.pot > $pofile
|
||||
fi
|
||||
po4a-updatepo -M UTF-8 -f xhtml -m $category.$common_i18n_ext -p $pofile 2>/dev/null
|
||||
done
|
||||
echo " done"
|
||||
|
||||
|
@ -117,38 +104,39 @@ echo "* Category: $category "
|
|||
po4a -f $category-po4a.cfg 2>/dev/null 1>&2
|
||||
echo "done"
|
||||
|
||||
done
|
||||
echo -n " 6 - Inject translation in level files: "
|
||||
|
||||
for levelfile in $(ls $category*.txt); do
|
||||
# Always start afresh
|
||||
rm -f $outdir/$levelfile
|
||||
|
||||
echo -n "* Inject translation in level files: "
|
||||
|
||||
for levelfile in $(ls *.txt); do
|
||||
rootfilename=$(echo $levelfile | sed 's/\.txt$//g')
|
||||
for lang in $linguas; do
|
||||
dotlang=".$lang"
|
||||
langcode="";
|
||||
case $lang in
|
||||
en) dotlang=""; langcode=".E";;
|
||||
fr) langcode=".F";;
|
||||
pl) langcode=".P";;
|
||||
esac
|
||||
xmlfile=$rootfilename$dotlang.xml
|
||||
echo -n "."
|
||||
if [ -f $xmlfile ]; then
|
||||
for key in Title Resume ScriptName; do
|
||||
lineend=""
|
||||
for subkey in text resume; do
|
||||
keyval=$(grep "^<${key}_${subkey}>" $xmlfile | sed -e "s|^<${key}\_${subkey}>${rootfilename}:\(.*\)<\/${key}\_${subkey}>$|\1|g")
|
||||
if [ -n "$keyval" ]; then
|
||||
lineend="$lineend $subkey=\"$keyval\""
|
||||
rootfilename=$(echo $levelfile | sed 's/\.txt$//g')
|
||||
for lang in $linguas; do
|
||||
dotlang=".$lang"
|
||||
langcode="";
|
||||
case $lang in
|
||||
en) dotlang=""; langcode=".E";;
|
||||
fr) langcode=".F";;
|
||||
pl) langcode=".P";;
|
||||
esac
|
||||
xmlfile=$rootfilename$dotlang.xml
|
||||
echo -n "."
|
||||
if [ -f $xmlfile ]; then
|
||||
for key in Title Resume ScriptName; do
|
||||
lineend=""
|
||||
for subkey in text resume; do
|
||||
keyval=$(grep "^<${key}_${subkey}>" $xmlfile | sed -e "s|^<${key}\_${subkey}>${rootfilename}:\(.*\)<\/${key}\_${subkey}>$|\1|g")
|
||||
if [ -n "$keyval" ]; then
|
||||
lineend="$lineend $subkey=\"$keyval\""
|
||||
fi
|
||||
done
|
||||
if [ -n "$lineend" ]; then
|
||||
echo "$key$langcode$lineend" >> $outdir/$levelfile
|
||||
fi
|
||||
done
|
||||
if [ -n "$lineend" ]; then
|
||||
echo "$key$langcode$lineend" >> $outdir/$levelfile
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
done
|
||||
sed -e '/^Title/d;/^Resume/d;/^ScriptName/d' $levelfile >> $outdir/$levelfile
|
||||
done
|
||||
sed -e '/^Title/d;/^Resume/d;/^ScriptName/d' $levelfile >> $outdir/$levelfile
|
||||
echo "done."
|
||||
done
|
||||
|
||||
echo "done."
|
||||
|
|
Loading…
Reference in New Issue