diff --git a/levels/gen_levels_xml.sh b/levels/gen_levels_xml.sh index 7dd4c4b5..6cd7cf3c 100755 --- a/levels/gen_levels_xml.sh +++ b/levels/gen_levels_xml.sh @@ -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 "

" >> $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" >> $destfile - echo "

$levelfile:$subval

" >> $allsfile - done +echo "<$levelfile>" > $destfile +echo "

" >> $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" >> $destfile + echo "

$levelfile:$subval

" >> $allsfile done - echo "" >> $destfile done +echo "" >> $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 "" >> $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."