This probably applies to all services, but let's start with Nova ... Firstly, we don't include compiled message catalogs in our packages (i.e. .mo files) - we should be able to do e.g. 'python setup.py compile_catalog' to help with this. To understand what's going on here, read docs about babel and look at setup.cfg. Secondly, at runtime, we do: gettext.install('nova', unicode=1) which means that gettext looks for message catalogs in e.g. /usr/share/locale/$LANG/LC_MESSAGES/nova.mo so, we either need to install them there or use the 'localedir' argument to gettext.install() to tell gettext where they are
Babel has merged a necessary patch upstream: https://github.com/python-babel/babel/pull/335 Waiting for next babel release.