summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeill Cox <neill@ingenious.com.au>2015-06-05 15:00:04 +1000
committerThai Tran <tqtran@us.ibm.com>2015-06-22 09:44:12 -0700
commit4e0b09a357fe610a94ca1135b512c83a7202c1af (patch)
tree03f62ea30abf3b1cfea4fa06c67ac6e2a2505928
parentd4b96abfe0b5c07619f5d2361e0ea7d1d188c084 (diff)
downloadhorizon-4e0b09a357fe610a94ca1135b512c83a7202c1af.tar.gz
Replace makemessages with babel
Replace django's makemessages with babel and babel-django. This changes the makemessages command to use babel rather than Django's builtin makemessages. There is a follow on patch to add support for angular-gettext. Change-Id: If4352aba01ce0ca6337f590c0689d8fe9f0867c8 Depends-On: Iaa835b03af3929b7314b174210079c34de976755
-rw-r--r--babel-django.cfg5
-rw-r--r--babel-djangojs.cfg1
-rw-r--r--requirements.txt1
-rwxr-xr-xrun_tests.sh45
4 files changed, 43 insertions, 9 deletions
diff --git a/babel-django.cfg b/babel-django.cfg
new file mode 100644
index 000000000..ad09d34b6
--- /dev/null
+++ b/babel-django.cfg
@@ -0,0 +1,5 @@
+[extractors]
+django = django_babel.extract:extract_django
+
+[python: **.py]
+[django: templates/**.html]
diff --git a/babel-djangojs.cfg b/babel-djangojs.cfg
new file mode 100644
index 000000000..e5feb2058
--- /dev/null
+++ b/babel-djangojs.cfg
@@ -0,0 +1 @@
+[javascript: **.js]
diff --git a/requirements.txt b/requirements.txt
index 8b52fcdef..1400e07c4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,6 +12,7 @@ pbr<2.0,>=0.11
Babel>=1.3
Django<1.8,>=1.4.2
Pint>=0.5 # BSD
+django-babel>=0.3.4
django-compressor>=1.4
django-openstack-auth!=1.1.8,>=1.1.7
django-pyscss>=2.0.2 # BSD License (2 clause)
diff --git a/run_tests.sh b/run_tests.sh
index 7269684db..79ed4708c 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -15,7 +15,7 @@ function usage {
echo " environment. Useful when dependencies have"
echo " been added."
echo " -m, --manage Run a Django management command."
- echo " --makemessages Create/Update English translation files."
+ echo " --makemessages Create/Update English translation files using babel."
echo " --compilemessages Compile all translation files."
echo " --check-only Do not update translation files (--makemessages only)."
echo " --pseudo Pseudo translate a language."
@@ -319,7 +319,6 @@ function restore_environment {
fi
cp -r /tmp/.horizon_environment/$JOB_NAME/.venv ./ || true
-
echo "Environment restored successfully."
fi
}
@@ -434,28 +433,56 @@ function run_integration_tests {
exit 0
}
+function babel_extract {
+ DOMAIN=$1
+ KEYWORDS="-k gettext_noop -k gettext_lazy -k ngettext_lazy:1,2"
+ KEYWORDS+=" -k gettext_noop -k ugettext_lazy -k ungettext_lazy:1,2"
+ KEYWORDS+=" -k npgettext:1c,2,3 -k pgettext_lazy:1c,2 -k npgettext_lazy:1c,2,3"
+
+ ${command_wrapper} pybabel extract -F ../babel-${DOMAIN}.cfg -o locale/${DOMAIN}.pot $KEYWORDS .
+}
+
+function babel_update {
+ DOMAIN=$1
+ UPDATE_OPTS="-l en -d locale"
+
+ ${command_wrapper} pybabel update -D $DOMAIN -i locale/${DOMAIN}.pot $UPDATE_OPTS
+}
+
function run_makemessages {
- OPTS="-l en --no-obsolete --settings=openstack_dashboard.test.settings"
- DASHBOARD_OPTS="--extension=html,txt,csv --ignore=openstack"
+
echo -n "horizon: "
cd horizon
- ${command_wrapper} $root/manage.py makemessages $OPTS
+ babel_extract django
+ babel_update django
HORIZON_PY_RESULT=$?
+ rm locale/django.pot
+
echo -n "horizon javascript: "
- ${command_wrapper} $root/manage.py makemessages -d djangojs $OPTS
+ babel_extract djangojs
+ babel_update djangojs
HORIZON_JS_RESULT=$?
+ rm locale/djangojs.pot
+
echo -n "openstack_dashboard: "
cd ../openstack_dashboard
- ${command_wrapper} $root/manage.py makemessages $DASHBOARD_OPTS $OPTS
+ babel_extract django
+ babel_update django
DASHBOARD_RESULT=$?
+ rm locale/django.pot
+
echo -n "openstack_dashboard javascript: "
- ${command_wrapper} $root/manage.py makemessages -d djangojs $OPTS
+ babel_extract djangojs
+ babel_update djangojs
DASHBOARD_JS_RESULT=$?
+ rm locale/djangojs.pot
+
cd ..
if [ $check_only -eq 1 ]; then
git checkout -- horizon/locale/en/LC_MESSAGES/django*.po
- git checkout -- openstack_dashboard/locale/en/LC_MESSAGES/django.po
+ git checkout -- openstack_dashboard/locale/en/LC_MESSAGES/django*.po
fi
+
exit $(($HORIZON_PY_RESULT || $HORIZON_JS_RESULT || $DASHBOARD_RESULT || $DASHBOARD_JS_RESULT))
}