Localization: also localize demos and tests
[scilab.git] / scilab / tools / localization / updateLocalizationModule.sh
index 233f970..4fd6d6f 100755 (executable)
 # and continues to be available under such terms.
 # For more information, see the COPYING file which you should have received
 # along with this program.
-#
+
 # This script goes into a module and updates the localization file by checking
 # the _( and gettext( calls in the code
-
-# TODO :
-# * Write Small documentation
+# 
+# This script process all source files as "C" like language and perform extra 
+# conversion of scilab code.
 #
 
 if test $# -ne 1; then
     echo "This script goes into a module and updates the localization file "
     echo "by checking the _(xxx), _W() and gettext(xxx) calls in the code"
-    echo "It creates the locales directory for C, C++ and Java and"
-    echo "locales_macros for Scilab code"
+    echo "It creates the locales directory for C, C++, Java and Scilab script"
     echo
     echo "Syntax : $0 <module>"
     echo "If <module> is equal to 'process_all', it will parse all Scilab module"
@@ -50,7 +49,7 @@ fi
 XGETTEXT=/usr/bin/xgettext
 FROM_CODE=UTF-8
 EXTENSIONS=( 'c' 'h' 'cpp' 'hxx' 'java' )
-EXTENSIONS_MACROS=( sci sce start quit )
+EXTENSIONS_SCILAB=( sci sce start quit )
 TARGETDIR=locales
 HEADER_TEMPLATE=$SCI/modules/localization/data/header.pot
 TIMEZONE="+0100"
@@ -113,15 +112,16 @@ function process_src() {
     # It is Scilab code... xgettext does not how to process it
     XGETTEXT_OPTIONS="$XGETTEXT_OPTIONS --language=C"
 
-    echo "..... Source files in $*"
+    echo "..... Source files in"
+    printf "....... %s\n" $*
     $XGETTEXT $XGETTEXT_OPTIONS -p $PATHTOPROCESS/$TARGETDIR -o ${MODULE}_src.pot $FILES >/dev/null 2>>xgettext_errors.log
 }
 
-function process_macros() {
+function process_scilab_code() {
     PATHS=$(ls -d $* 2>/dev/null)
     [ -z "$PATHS" ] && return
 
-    generate_find_command EXTENSIONS_MACROS
+    generate_find_command EXTENSIONS_SCILAB
     FILES=`eval $FILESCMD|sort |tr "\n" " "`
 
     # It is Scilab code... xgettext does not how to process it
@@ -132,11 +132,12 @@ function process_macros() {
         FILES="$FILES `ls $SCI/etc/scilab.*`"
     fi
 
-    echo "..... Scilab macros in $*"
-    $XGETTEXT $XGETTEXT_OPTIONS -p $PATHTOPROCESS/$TARGETDIR -o ${MODULE}_macros.pot $FILES >/dev/null 2>>xgettext_errors.log
+    echo "..... Scilab scripts in"
+    printf "....... %s\n" $*
+    $XGETTEXT $XGETTEXT_OPTIONS -p $PATHTOPROCESS/$TARGETDIR -o ${MODULE}_scilab.pot $FILES >/dev/null 2>>xgettext_errors.log
 
     # Post-process
-    if test -f $PATHTOPROCESS/$TARGETDIR/${MODULE}_macros.pot; then
+    if test -f $PATHTOPROCESS/$TARGETDIR/${MODULE}_scilab.pot; then
         # Empty file => no string found
         # We are modifing on the fly Scilab localization files
         #
@@ -145,10 +146,10 @@ function process_macros() {
         # '' -> '
         # '" -> \"
         # "' -> '
-        sed -i -e "s/\"\"/\\\"/g" -e "s/''/'/g" -e "s/'\"/\\\"/g" $PATHTOPROCESS/$TARGETDIR/${MODULE}_macros.pot
+        sed -i -e "s/\"\"/\\\"/g" -e "s/''/'/g" -e "s/'\"/\\\"/g" $PATHTOPROCESS/$TARGETDIR/${MODULE}_scilab.pot
         # We introduced invalid tag [msgstr "] and [msgid "]
         # restore them [msgstr ""] and [msgid ""]
-        sed -i -e "s/msgstr \"$/msgstr \"\"/" -e "s/msgid \"$/msgid \"\"/" $PATHTOPROCESS/$TARGETDIR/${MODULE}_macros.pot
+        sed -i -e "s/msgstr \"$/msgstr \"\"/" -e "s/msgid \"$/msgid \"\"/" $PATHTOPROCESS/$TARGETDIR/${MODULE}_scilab.pot
     fi
 }
 
@@ -161,7 +162,7 @@ function merge_pot() {
         sed -e "s/MODULE/$MODULE/" -e "s/CREATION-DATE/$CreationDate/" -e "s/REVISION-DATE/`date +'%Y-%m-%d %H:%M'`$TIMEZONE/" $HEADER_TEMPLATE > $LOCALIZATION_FILE_US
     fi
 
-    for f in $PATHTOPROCESS/$TARGETDIR/${MODULE}_{src,macros}.pot; do
+    for f in $PATHTOPROCESS/$TARGETDIR/${MODULE}_{src,scilab}.pot; do
         [ -f $f ] && msgcat $f >> $LOCALIZATION_FILE_US.tmp
         [ $? -eq 0 ] && rm -f $f
     done
@@ -209,7 +210,7 @@ for MODULE in $MODULES; do
     fi
  
     preprocess_xml $PATHTOPROCESS/etc/*.x*l $PATHTOPROCESS/etc/*.x*l
-    process_macros $PATHTOPROCESS/macros $PATHTOPROCESS/etc
+    process_scilab_code $PATHTOPROCESS/macros $PATHTOPROCESS/etc $PATHTOPROCESS/demos $PATHTOPROCESS/tests
     process_src $PATHTOPROCESS/sci_gateway $PATHTOPROCESS/src
     rm -f $PATHTOPROCESS/src/${MODULE}_fake_xml.c
     merge_pot $PATHTOPROCESS/locales/*.pot