Translated responses

The Keystone server can provide error responses translated into the language in the Accept-Language header of the request. In order to test this in your development environment, there’s a couple of things you need to do.

  1. Build the message files. Run the following command in your keystone directory:

$ python compile_catalog

This will generate .mo files like keystone/locale/[lang]/LC_MESSAGES/[lang].mo

  1. When running Keystone, set the KEYSTONE_LOCALEDIR environment variable to the keystone/locale directory. For example:

$ KEYSTONE_LOCALEDIR=/opt/stack/keystone/keystone/locale uwsgi --http --wsgi-file $(which keystone-wsgi-public)

Now you can get a translated error response:

$ curl -s -H "Accept-Language: zh" http://localhost:5000/notapath | python -mjson.tool
    "error": {
        "code": 404,
        "message": "\u627e\u4e0d\u5230\u8cc7\u6e90\u3002",
        "title": "Not Found"