Compile Horizon message catalogs during stack.sh

Recently compiled message catalogs (mo files) were removed
in Horizon and django_openstack_auth repositories.
We need to compile message catalogs to make translations
available for Horizon users. It is useful for developers too.

Change-Id: I0831e8308205c116d8e3bb8b43be7f0dd6fa0c0a
diff --git a/lib/horizon b/lib/horizon
index 755be18..0213948 100644
--- a/lib/horizon
+++ b/lib/horizon
@@ -84,6 +84,14 @@
 # configure_horizon() - Set config files, create data dirs, etc
 function configure_horizon {
     setup_develop $HORIZON_DIR
+
+    # Compile message catalogs.
+    # Horizon is installed as develop mode, so we can compile here.
+    # Message catalog compilation is handled by Django admin script,
+    # so compiling them after the installation avoids Django installation twice.
+    cd $HORIZON_DIR
+    ./run_tests.sh -N --compilemessages
+    cd -
 }
 
 # init_horizon() - Initialize databases, etc.
@@ -138,6 +146,13 @@
 # install_django_openstack_auth() - Collect source and prepare
 function install_django_openstack_auth {
     git_clone $HORIZONAUTH_REPO $HORIZONAUTH_DIR $HORIZONAUTH_BRANCH
+
+    # Compile message catalogs before installation
+    _prepare_message_catalog_compilation
+    cd $HORIZONAUTH_DIR
+    python setup.py compile_catalog
+    cd -
+
     setup_install $HORIZONAUTH_DIR
 }
 
@@ -160,6 +175,13 @@
     stop_apache_server
 }
 
+# NOTE: It can be moved to common functions, but it is only used by compilation
+# of django_openstack_auth catalogs at the moment.
+function _prepare_message_catalog_compilation {
+    local babel_package=$(grep ^Babel $REQUIREMENTS_DIR/global-requirements.txt)
+    pip_install "$babel_package"
+}
+
 
 # Restore xtrace
 $XTRACE