Remplace all occurences of my_browse_rec.product_id.product_tmpl_id.field to my_brows...
[odoo/odoo.git] / gen_translations.sh
index 364503e..996ff17 100755 (executable)
@@ -2,12 +2,13 @@
 
 usage() {
 cat << EOF
-usage: $0 -a
-usage: $0 DIR OUTPUT_FILE
+usage: $0 -a [DIR]
+usage: $0 <ADDON_DIR> <OUTPUT_FILE>
 
 OPTIONS:
-   -a    recreate the .pot file for all addons
-   -h    print this message
+   -a [DIR]  export the .pot files for all web addons found
+             at target path (default: ./addons) 
+   -h        print this message
 EOF
 exit 0
 }
@@ -30,24 +31,36 @@ shift $((OPTIND-1))
 
 if [ -n "$do_all" ]
 then
-    echo "Extracting all the translations"
+    if [ "x$(which msgcat)" = "x" ]
+    then
+        echo "The msgcat command from the gettext tools is required in the PATH."
+        echo "On a Debian/Ubuntu system you may install gettext via 'sudo apt-get install gettext'"
+        exit 1
+    fi
+
+    echo "Extracting all web addons translations"
     executable=$0
-    extract_module() {
-       $executable addons/$1 addons/$1/po/$1.pot 
-    }
-    extract_module base
-    extract_module base_calendar
-    extract_module base_dashboard
-    extract_module base_default_home
-    extract_module base_diagram
-    extract_module base_gantt
-    extract_module base_graph
-    extract_module base_hello
-    extract_module web_chat
-    extract_module web_mobile
+    target_dir=${1:-./addons}
+    echo "Using target dir: ${target_dir}"
+    for mod in $(find ${target_dir} -type d -name 'static' -exec sh -c 'basename $(dirname {})' \;); do
+       echo ${mod}
+       mod_pot=${target_dir}/${mod}/i18n/${mod}.pot
+       web_pot=${mod_pot}.web 
+       mkdir -p $(dirname ${web_pot})
+       $executable ${target_dir}/${mod} ${web_pot} 
+       if [ -f "${mod_pot}" ]; then
+         echo "Merging with existing PO file: ${mod_pot}"
+         msgcat --force-po -o "${mod_pot}.tmp" ${mod_pot} ${web_pot}
+         mv ${mod_pot}.tmp ${mod_pot}
+         rm ${web_pot}
+       else
+         echo "Renaming to final PO file: ${mod_pot}"
+         mv ${web_pot} ${mod_pot}
+       fi
+    done
 elif [ -n "$2" ]
 then
-    ./npybabel.py extract -F babel.cfg -o $2 -k _t --no-default-keywords $1
+    ./npybabel.py extract -F babel.cfg -o $2 -k _t -k _lt --no-default-keywords $1
 else
     usage
 fi