hholzgra Wed Apr 3 16:04:09 2002 EDT Added files: /phpdoc/scripts file-entities.php
Modified files: /phpdoc configure.in Log: faster generation of file entities for translation support if php available (no big performance gain yet, but doing this with 3000+ splitted file justifies using php instead of shell) Index: phpdoc/configure.in diff -u phpdoc/configure.in:1.144 phpdoc/configure.in:1.145 --- phpdoc/configure.in:1.144 Mon Mar 11 19:57:46 2002 +++ phpdoc/configure.in Wed Apr 3 16:04:06 2002 @@ -1,4 +1,4 @@ -dnl $Id: configure.in,v 1.144 2002/03/12 00:57:46 torben Exp $ +dnl $Id: configure.in,v 1.145 2002/04/03 21:04:06 hholzgra Exp $ dnl autoconf initialisation AC_INIT() @@ -733,6 +733,9 @@ rm -f entities/chapters.ent DEPEND_FILES="" echo "<!-- DON'T TOUCH - AUTOGENERATED BY ./configure -->" > entities/chapters.ent + +dnl {{{ ZendAPI entities + if test -d "$ZENDAPI"; then echo >> entities/chapters.ent echo "<!-- begin ZendAPI integration -->" >> entities/chapters.ent @@ -749,6 +752,11 @@ echo >> entities/chapters.ent echo " Zend part not found" fi + +dnl }}} + +dnl {{{ .CHM entities + if test "$CHMENABLED" = "yes"; then echo "<!-- chmonly pages inclusion enabled -->" >> entities/chapters.ent echo "<!ENTITY chmonly SYSTEM 'chmonly.xml'>" >> entities/chapters.ent @@ -760,6 +768,11 @@ echo >> entities/chapters.ent echo " CHM inclusion disabled" fi + +dnl }}} + +dnl {{{ install already splitted? + if test -f "$srcdir/$LANGDIR/chapters/install.xml"; then echo "<!-- old install.xml found in language dir -->" >> entities/chapters.ent echo "<!ENTITY chapters.install SYSTEM '$srcdir/$LANGDIR/chapters/install.xml'>" >> entities/chapters.ent @@ -771,22 +784,37 @@ echo >> entities/chapters.ent echo " Using the install part from installpart.xml" fi + +dnl }}} + echo "<!-- Separated list of predefined constants. -->" >> entities/chapters.ent echo "<!ENTITY appendices.reserved.constants SYSTEM 'reserved.constants.xml'>" >> entities/chapters.ent echo >> entities/chapters.ent -for file in `find $srcdir/en -name "*.xml" | sed -e"s%^$srcdir\/en\/%%g" | sort` -do - name=`echo $file | sed -e"s/\//./g" -e"s/.xml$//g" -e "s/_/-/g"` - if test -f $srcdir/$LANGDIR/$file - then - file=$srcdir/$LANGDIR/$file - else - file=$srcdir/en/$file - echo " Untranslated $file (`wc -l <$file | tr -d ' '` lines)" - fi - DEPEND_FILES="$DEPEND_FILES $file" - echo "<!ENTITY $name SYSTEM \"$file\">" >> entities/chapters.ent -done + +dnl {{{ check configured language files against english tree + +if test $PHP != "no" +then + $PHP -q $srcdir/scripts/file-entities.php $srcdir $LANGDIR >> +entities/chapters.ent +else + for file in `find $srcdir/en -name "*.xml" | sed -e"s%^$srcdir\/en\/%%g" | sort` + do + name=`echo $file | sed -e"s/\//./g" -e"s/.xml$//g" -e "s/_/-/g"` + if test -f $srcdir/$LANGDIR/$file + then + file=$srcdir/$LANGDIR/$file + else + file=$srcdir/en/$file + echo " Untranslated $file (`wc -l <$file | tr -d ' '` lines)" + fi + DEPEND_FILES="$DEPEND_FILES $file" + echo "<!ENTITY $name SYSTEM \"$file\">" >> entities/chapters.ent + done +fi + +dnl }}} + + echo "<!ENTITY global.function-index SYSTEM \"./funcindex.xml\">" >> entities/chapters.ent chmod a-w entities/chapters.ent Index: phpdoc/scripts/file-entities.php +++ phpdoc/scripts/file-entities.php <?php /* Scan directory tree against original language tree and define file entities for translated files where present with original untranslated files as fallback where no translated version exists */ ob_end_clean(); ob_implicit_flush(); $base_dir = abs_path($argv[1]); if(php_sapi_name!="cli") $base_dir=ereg_replace("/scripts$","",$base_dir); $orig_dir = $base_dir."/en"; $trans_dir = $base_dir."/".$argv[2]; process($orig_dir,$trans_dir,$orig_dir); function abs_path($path) { if($path{0} == '/') return $path; $absdirs = explode("/",getcwd()); $dirs = explode("/",$path); foreach($dirs as $dir) { if(empty($dir) or $dir==".") continue; else if($dir=="..") array_pop($absdirs); else array_push($absdirs,$dir); } return join("/",$absdirs); } function process($work_dir, $trans_dir, $orig_dir) { $trans_path = str_replace($orig_dir,$trans_dir,$work_dir); $dh = opendir($work_dir); if(!$dh) return false; while(false !== ($file = readdir($dh))) { if($file=="."||$file==".."||$file=="CVS") continue; if(is_dir($work_dir."/".$file)) process($work_dir."/".$file, $trans_dir, $orig_dir); if(ereg("\\.xml$",$file)) { $name = str_replace("$orig_dir/","",$work_dir."/".ereg_replace("\\.xml$","",$file)); $name = str_replace("/",".",$name); $name = str_replace("_","-",$name); if(file_exists("$trans_path/$file")) { $path= "$trans_path/$file"; } else { $path= "$work_dir/$file"; } echo sprintf("<!ENTITY %-40s SYSTEM '$path'>\n",$name); } } closedir($dh); } ?>