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/files/apts/general b/files/apts/general
index c308c46..3fe7863 100644
--- a/files/apts/general
+++ b/files/apts/general
@@ -27,3 +27,4 @@
libyaml-dev
libffi-dev
libssl-dev # for pyOpenSSL
+gettext # used for compiling message catalogs
diff --git a/files/rpms/general b/files/rpms/general
index 7a35961..d4a9fcb 100644
--- a/files/rpms/general
+++ b/files/rpms/general
@@ -26,6 +26,7 @@
which
bc
libyaml-devel
+gettext # used for compiling message catalogs
# [1] : some of installed tools have unversioned dependencies on this,
# but others have versioned (<=0.7). So if a later version (0.7.1)
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